随笔分类 -  JVM系列

JVM内存模型; 垃圾回收; classloader; 监控; 调优。
JVM系列(七)jdk工具介绍、监控等
摘要:安装java的时候一般会安装JDK而不是JRE。其中一个原因就是JDK/bin目录下附送很多的工具,有助于定位java相关问题。visualVM 非常好的工具!可以看到分代内存的使用情况、线程的CPU使用率、类的内存使用情况。基本上做性能测试必须这个软件的。另外,安装visual gc插件后可... 阅读全文

posted @ 2015-08-18 20:44 Emmerich.Luang 阅读(223) 评论(0) 推荐(0)

JVM系列(六)编译器优化
摘要:早期(编译期)优化开始——生成字节码为止;解析与填充符号表过程;插入式注解处理器的注解处理过程;语义分析与字节码生成过程。java的语法糖:泛型——java的泛型是“伪泛型”,在编译期优化中变成强制转换的。变长参数——foo(Stringstr,Object...args)boxing/unboxi... 阅读全文

posted @ 2015-08-18 20:44 Emmerich.Luang 阅读(159) 评论(0) 推荐(0)

JVM系列(五)并发相关
摘要:并发概率下的内存模型 java定义了一个内存模型,从硬件/操作系统中抽象出来。对比C/C++直接用操作系统的内存是不同的。 工作内存(working memory):线程自己独占的内存。线程的工作内存是主内存的一份拷贝。 主内存(main memory):实际上存放所有线程的数据的地方。工作内... 阅读全文

posted @ 2015-08-17 20:02 Emmerich.Luang 阅读(507) 评论(0) 推荐(0)

JVM系列(四)生命周期和classloader
摘要:大体上,class的生命周期是这样子的:加载相关内容classLoader是什么?通过一个类的全限定名,获取这个类的二进制字节码。区分两种classLoader:1、bootStrap,C++实现,是虚拟机的一部分;2、其他,java实现,虚拟机外部,继承自java.lang.ClassLoad... 阅读全文

posted @ 2015-07-31 20:14 Emmerich.Luang 阅读(529) 评论(0) 推荐(0)

jvm面试题解答
摘要:网上找到的一些jvm面试题,现整理并且把答案搞出来。JVM内存模型?如图所示:写一段代码实现堆溢出(heap 对象太大)?栈溢出(死循环,死递归)?常量池溢出(intern)?方法区溢出?链接说明:http://www.cnblogs.com/ELMND/p/4630070.html类的生命周期... 阅读全文

posted @ 2015-07-27 18:02 Emmerich.Luang 阅读(1209) 评论(0) 推荐(1)

JVM系列(三)垃圾回收
摘要:什么对象需要被回收?? 没有被引用的对象要被回收。怎么判定对象已经没有被引用???1、引用计数算法。(因为循环引用问题,java没有使用这种方法)2、可达性分析法。(主流实现。判定对象是否被引用。从GC ROOTS节点找引用链。)gc roots是?Class- class loaded by s... 阅读全文

posted @ 2015-07-08 19:36 Emmerich.Luang 阅读(199) 评论(0) 推荐(0)

JVM系列(二)各区域的OOM
摘要:stack的内存溢出demo,无限递归:public class StackOOM { private static void fun(){ fun(); } /** * VM arg -Xss128K * @param args ... 阅读全文

posted @ 2015-07-08 14:23 Emmerich.Luang 阅读(626) 评论(0) 推荐(0)

JVM系列(一)内存模型
摘要:好久没有整理这方面的东西了。现在整理一下JVM相关的东西。这是第一篇,JVM内存模型。进程&JVM 首先,何谓JVM?为什么要有JVM的存在? JVM就是java virtual machine的简称。当然了,除了java的VM以外还会有好多别的虚拟机。java的VM模型有好几个,其中最常见... 阅读全文

posted @ 2015-07-07 17:01 Emmerich.Luang 阅读(226) 评论(0) 推荐(0)

导航