
java虚拟机
ThreeOO
这个作者很懒,什么都没留下…
展开
-
JVM的内存区域划分,对象实例化分析
由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载原创 2014-10-21 18:49:44 · 2528 阅读 · 1 评论 -
JVM内存结构以及GC原理学习
学Java三年有余,对自己来说JVM一直以来都是黑匣子,看不懂,摸不透。作为一个有技术情节、略带些许完美主义情节的攻城狮,不了解JVM似乎有时候夜不能寐,总觉得有一个未知的世界自己需要探索。理论为实践服务,学习JVM不是因为它好玩,其实一点都不好玩,只是因为它有用罢了。实用主义者总比快餐主义让人踏实。 好吧,好奇心害死猫(Curiosity kills the cat),中秋佳节还面对电脑,真原创 2014-09-13 19:26:36 · 1042 阅读 · 0 评论 -
JVM组成部分以及内存模型
一、JVM的组成部分 我们先把JVM这个虚拟机画出来,如下图所示: 从这个图中可以看到,JVM是运行在操作系统之上的,它与硬件没有直接的交互。我们再来看下JVM有哪些组 成部分,如下图所示: 1、 Class Loader 类加载器 类加载器的作用是加载类文件到内存,比如编写一个HelloWord.java程序,然后通过javac编译成class文件, 那怎么才能加载到内原创 2014-10-17 13:58:45 · 2182 阅读 · 0 评论 -
jvm住内存与工作内存,内存模型反映的java多线程问题
找了多篇文章,自己将重点以及可以让人深入理解jvm以及多线程的知识做总结,作为自己的学习笔记: 一、jvm主内存与工作内存 首先,JVM将内存组织为主内存和工作内存两个部分。主内存中主要包括本地方法区和堆。每个线程都有一个工作内存,工作内存中主要包括两个部分,一个是属于该线程的栈和对主存部分变量拷贝的寄存器。 1.所有的变量都存储在主内存中(虚拟机内存原创 2014-10-19 19:32:54 · 4476 阅读 · 0 评论 -
深入理解JVM : Java堆中对象创建、布局、访问全过程
一、对象的创建new Animal();1.类加载检查:检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类的加载过程。2.为对象分配内存对象所需内存的大小在类加载完成后便完全确定,为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。2.1根据Java堆中是否规整有两种内存的分配方式:(J转载 2016-03-07 15:32:08 · 3229 阅读 · 1 评论