摘要:
1、使用句柄访问 2、使用直接指针访问 各自的优势: 句柄访问:reference中存储的是稳定的句柄地址,在对象被移动(垃圾收集时移动对象是非常普遍的行为)时只会改变句柄中的实例数据指针,而reference本身不需要修改。 直接指针访问:速度快,它节省了一次指针定位的时间开销,由于对象的访问在J 阅读全文
摘要:
虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符合引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 在类加载完成后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定,为对象分配 阅读全文
摘要:
对于java虚拟机默认参数,栈深度在大多数情况下(因为每个方法压入栈的甄大小并不一样),达到1000~2000完全没有问题,对于正常的方法调用(包括递归),这个深度应该完全够了。但是,如果是建立的过多的线程导致的内存溢出,在不能减少线程数或者更换64位虚拟机的情况下(假如当前虚拟机是32位),可通过 阅读全文