![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
有梦想的咸鱼xx
仅仅是分享的个人知识总结,希望也能帮助到陌生的你!
展开
-
Java 8的元空间
本文我们将会介绍JVM的一个更新,这就是持久代的移除。我们会介绍为什么需要移除持久代,以及它的替代者,元空间(metaspace)。这是上一篇文章内存管理之垃圾回收的续集。Java 6中的堆结构是这样的:持久代持久代中包含了虚拟机中所有可通过反射获取到的数据,比如Class和Method对象。不同的Java虚拟机之间可能会进行类共享,因此持久代又分为只读区和读写区。转载 2017-11-12 18:19:12 · 458 阅读 · 0 评论 -
java内存分区 jdk1.7之前
1、堆基本所有对象都在堆上被创建,而对象的声明在栈中,它存着堆上的引用。例如 Object object = new Object();object为对象的声明,存在虚拟机栈里面,新建的object对象存在于堆上面,包括类的成员变量。2、虚拟机栈虚拟机栈是线程私有的,不会出现线程安全问题,在sun公司提供的hotspot中和本地方法栈为一个栈,每次调用方法需要执行一个Frame(帧栈)的入栈到出栈...原创 2017-11-11 23:13:28 · 1054 阅读 · 0 评论 -
java类加载机制
1、Java的类加载需要经过7个过程,包括 加载、验证、准备、解析、初始化、使用、卸载。图例如下:2、加载:java虚拟机加载类的二进制字节流,然后在内存中生成一个java.lang.Class对象,作为方法区中访问该类各种元数据的入口3、验证:java虚拟机会验证字节码文件,确保Class文件的二进制字节流符合当前虚拟机的要求,不会危害到虚拟机的安全,主要包括字节码验证,元数据验证,文件格式验证...原创 2018-03-25 19:17:56 · 129 阅读 · 0 评论 -
java类加载的类加载器
1、系统提供的类加载器有三种1)启动类加载器(Bootstrap ClassLoader)在我们使用的hotspot版本java虚拟机中使用c++实现,无法被java程序员直接使用2)扩展类加载器(Extention ClassLoader)放在<JAVA_HOME>\lib\ext目录下,用来加载扩展的类3)应用程序类加载器(Application ClassLoader)负责加载用...原创 2018-03-25 19:53:06 · 223 阅读 · 0 评论