
JVM
文章平均质量分 81
jgroup
出发之前,永远都是梦想;上路了,才是挑战。
展开
-
深入理解Java虚拟机笔记(一)——Java发展史
1991年4月 Oak(橡塑) 1995年5月23日,Oak改名为Java,SunWorld 大会发布Java1.0。Write Once,Run Anywhere. 1996年1月23日,JDK1.0发布。代表技术:JVM、Applet、AWT。第一个Java虚拟机实现Sun Classic VM(纯解释执行)。 1996年5月底,首届JavaOne大会。从此每年一度技术盛会。 1997...原创 2014-11-07 09:48:13 · 366 阅读 · 0 评论 -
深入理解Java虚拟机笔记(二)——JVM发展史
世界上第一款商用Java虚拟机-Sun Classic VM 第一个Java虚拟机实现Sun Classic VM(纯解释执行),如果要使用JIT编译器,就必须外挂。但是如果外挂了JIT编译器,JIT编译器就完全接管虚拟机执行系统,解释器就不工作了。 由于解释器和编译器不能同时工作,这就意味着如果要使用编译器,就不得不对每个方法的每一行代码编译,而无论执行的频率是否具有编译价值。--“JAVA...原创 2014-11-05 09:27:20 · 285 阅读 · 0 评论 -
深入理解Java虚拟机笔记(四)——JVM对象
对象的创建(五步) 类加载检查 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 分配内存 根据java堆是否完整,分为两种: 1,指针碰撞,标记-整理,复制 2,空闲列表,标记-清除 分配线程安全: 1,CAS+失败重试:CAS ...原创 2014-10-27 11:44:24 · 254 阅读 · 0 评论 -
深入理解Java虚拟机笔记(三)——运行时数据区域
内存控制权利交给JVM-自动内存管理机制(内存分配、垃圾回收 内存泄漏、内存溢出) 堆Heap 线程共享 存放几乎所有对象实例以及数组,内存中最大的一块、JVM启动时创建 分代收集算法:Eden空间、From Survivor空间、To Survivor空间 内存分配:TLAB(Thread Local Allocation Buffer) JVM规范:不需要物理上连续,逻辑上连续...原创 2014-10-31 13:49:00 · 134 阅读 · 0 评论