
虚拟机
雨雨季
滴滴滴哒哒哒`
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java内存区域与内存溢出异常
一、运行时数据区域程序计数器:当前线程执行的字节码的行号计数器。字节码解释器工作就是通过改变计数器的值来选选取下一条需要执行的指令。线程私有!虚拟机栈:Java方法执行的内存模型。每个方法就是一个栈帧,在虚拟机中出栈入栈。线程私有!线程请求的栈深度大于虚拟机允许的栈深度,则抛出StackOverflowError;动态扩展时无法申请到足够的内存,则抛出OutOfMemoryError本...原创 2019-04-11 22:39:12 · 133 阅读 · 0 评论 -
垃圾收集器与内存分配策略
一、判断对象是否死亡1.引用计数算法:给对象中添加一个引用计数器。当对象实例每被引用一次计数器+1,每一个引用失效计数器-1;当计数器为0时,对象可被回收;缺点:对象相互引用时,计数器的值永不为0;2.可达性分析算法通过一系列的"GC Roots"对象作为起点,从这些节点开始向下搜索,所走过的路程称为引用链,当一个对象没有与任何引用链相连,则证明对象不可用;Java中可以作为GC Ro...原创 2019-04-12 20:19:08 · 162 阅读 · 0 评论 -
虚拟机性能监控与故障处理工具
写在前面:明白了虚拟机的内存划分,内存的分配回收,这些理论指导知识。实际开发中对于数据利用现在学的工具进行监控与孤战处理。这就是工具的作用。一、JDK命令行工具jps:虚拟机进程状况工具jps -l :输出主类名和LVMID;jstat:虚拟机统计信息监视工具jstat -gc 2764 250 20 :监视Java堆状况,GC时间等信息jinfo:Java配置信息工...原创 2019-04-13 14:08:52 · 135 阅读 · 0 评论 -
虚拟机类加载机制
一、类加载的时机类加载过程的第第一阶段:“加载” 对于 “加载” 的这个过程开始的情况虚拟机并没有进行约束,而是由虚拟机进行自由把握的。但是对于以下五种情况立即进行对类 "初始化” 的过程:使用new实例化对象,读取或调用静态对象,调用静态方法。使用Java.lang.reflect包下的方法对类进行反射调用初始化一个类时,先对其父类进行初始化虚拟机启动时先初始化主函数所在的类...原创 2019-04-16 20:37:40 · 153 阅读 · 0 评论 -
调优案例分析与实战
一、案例分析高性能硬件上的程序部署策略64位的JDK,缺点:内存回收导致长时间停顿。性能低于32位JDK。内存消耗大,例如类型对齐补白。=====================对于CUP资源敏感度高的场景,选择"吞吐量优先"收集器。对于追求低停顿的场景,选择CMS收集器。集群间同步导致的内存溢出堆外内存导致的溢出错误当JVM运行时抛出OutOfMemoryError...原创 2019-04-13 21:04:00 · 157 阅读 · 0 评论