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

浙公网安备 33010602011771号