java
解释执行,即时编译(编译成本地代码,效率高,内存占用多,C1,C2)
编译优化技术:方法内联,复写传播,无用代码删除
字节码就是虚拟机所使用的指令集
类加载:加载(获取类的二进制流文件,方法区的数据结构,内存生成这个类的class对象),链接(验证,准备(类变量初始化),解析(符号引用替换为直接引用)),初始化(常量初始化)
栈帧主要是局部变量区和操作数栈,方法返回地址,对象头的mark word;关系是通常将局部变量区加载到操作数栈,运算结束后放回局部变量区
对象组成:对象头(运行时的数据,即(mark word,hashcode,锁状态,gc分代年龄 ,重量级锁指向的monitor对象的指针 ) ,类型指针(方法区的类信息)),实例数据,填充数据
虚拟机优化:方法内联,逃逸分析(对象被外部访问(标量替换,将对象的创建替换成为多个成员变量的创建)或其他线程访问(同步省略,锁消除)),本地方法调用,代码优化(循环)
动态绑定和静态绑定:编译期和运行期,动态绑定运行时根据具体对象的类型进行绑定,多态继承等使用,用到了方法表
线程 -> 栈帧的局部变量区 -> 指向堆中对象



