随笔分类 - JVM虚拟机
摘要:#类加载器 JAVA虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。 类加载器虽然只用于实现类的加载动作,但它在Jav
阅读全文
摘要:之前介绍了Java内存运行时区域的各个部分,其中程序计数器,虚拟机栈,本地方法栈这3个区域随线程而生随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊的执行着出栈和入栈操作,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑如何回收的问题,当方法结束或线程结束的时候,内存就
阅读全文
摘要:#对象的创建 ##1.类加载检查 虚拟机遇到⼀条 new 指令时,⾸先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引⽤,并且检查这个符号引⽤代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执⾏相应的类加载过程。 ##2.分配内存 假设Java堆中内存是绝对规整的,所有被使用过的
阅读全文
摘要:线程私有:虚拟机栈,本地方法栈,程序计数器 线程共享:方法区,堆 #程序计数器 当前线程所执行的字节码的行号指示器。 如果线程执行的是Java方法,则这个计数器记录的是正在执行的虚拟机字节码指令的地址,如果执行的是Native方法,这个计数器值应为空(Undefined) #虚拟机栈 虚拟机栈描述的
阅读全文