摘要: 对象实例化 在实例化对象的过程中,JVM发生了什么化学反应? (1)下面从最简单的 Object ref = new Object(); 进行分析,查看字节码如下: NEW:如果找不到Class对象,则进行类加载。加载成功之后,在堆中分配内存,从Object开始到本类路径上的所有属性值都要分配内存。 阅读全文
posted @ 2018-04-24 19:15 yn_huang 阅读(875) 评论(0) 推荐(0)
摘要: 在JDK1.2之前,Java中的引用的定义很传统:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。这种定义很纯粹,但是太过狭隘,一个对象在这种情况下只有被引用或者没有被引用两种状态,对于如何描述一些"食之无味,弃之可惜"的对象就显得无能为力。我 阅读全文
posted @ 2018-04-23 23:41 yn_huang 阅读(533) 评论(0) 推荐(0)
摘要: JVM内存布局规定了Java在运行过程中内存申请、分配和管理的策略,保证了JVM的高效稳定运行。 结合JVM规范,来探讨一下经典的JVM内存布局,下面的内存布局基于Jdk1.8,JVM是HotSpot 1.Heap(堆区) Heap是OOM故障主要的发源地,它存储几乎所有的实例对象,堆由垃圾回收器自 阅读全文
posted @ 2018-04-23 22:05 yn_huang 阅读(381) 评论(1) 推荐(0)
摘要: 在冯诺依曼的计算机模型中,任何程序都要加载到内存才能与CPU进行交流。字节码.class文件同样需要加载到内存中,才可以实例化。 其中,类加载器ClassLoader的使命就是加载.class文件到内存中。 在加载类时,使用的是Parents Delegation Model,即双亲委派模型。 Ja 阅读全文
posted @ 2018-04-20 17:10 yn_huang 阅读(194) 评论(0) 推荐(0)