jvm内存区域和内存异常:
内存区域:方法区(类的信息,静态变量,常量的存放位置),java堆(垃圾堆,因为这是垃圾回收器主要作用的区域),虚拟机栈(存放局部变量栈,还负责对某些方法.class文件的调用),本地方法栈(对native方法的调用),程序计数器(当前程序执行的字节码的行号指示器)。
对象的创建:指针碰撞(将空闲和已用的内存的指针下移),空闲列表(列表记录内存的使用情况)。new ,init
对象的内存:对象头(存储对象自身的运行时的数据,如哈希码,类型指针),实例数据,对齐填充。
对象的访问定位:通过句柄,直接指针。hotspot是第二种方式。JRockit也是一个性能非常好的jvm。