面试可用)
这个中秋连着国庆主包也是给自己放了一个大大的假今天回来继续更新学习如果其中讲解的有问题希望大家多多指正。JVM是什么java程序的运行环境java二进制字节码的运行环境好处一次编写到处运行自动内存管理垃圾回收机制首先我先自己理解一下最底层一定是计算机硬件包括了计算机cpu和内存条。然后上方是操作系统window或linux... 最后是JVMJVM的组成1.什么是程序计数器程序计数器是私有的每个线程一份私有的就没有安全问题内部保存的字节码的行号用于记录正在执行的字节码指令地址2.介绍一下什么是JAVA堆java堆线程共享的资源共享就有安全问题用来保存对象实例数组当内存不够时抛出OOM异常java堆的组成年轻代老年代年轻代分为Eden区 两个大小完全相同的Servivor区老年代是主要保存生命周期长的对象我想讲一下对象从eden中垃圾回收后如果还存活会进入下一个块最后到达老年代这个后期会详细讲解。jdk1.7和jdk1.8的区别jdk1.7有一个永久代是用于存储类信息静态变量常量变以后代码jdk1.8后移除了永久代把数据存储到了本地内存的元空间中这么做是为了防止OOM内存溢出元空间中包括了保存类的信息静态变量常量编译后代理。最后我想总结一下JVM的内存结构——————————————————————————————————虚拟机栈 本地方法栈 堆年轻代老年代程序计数器本地内存直接内存元空间——————————————————————————————————好的那么今天的分享就先这样啦希望有帮助到大家