
jvm
文章平均质量分 87
腹黑大壁花
这个作者很懒,什么都没留下…
展开
-
Java类加载过程中的一点小陷阱
Java类加载过程中的一点小陷阱类加载的过程1.加载:查找并加载类的二进制数据2.连接① 验证:确保被加载的类的正确性② 准备:为类的静态变量分配内存,并将其初始化为默认值③ 解析:把类中的符号引用转换为直接引用3.初始化:为类的静态变量赋予正确的初始值(这个不是默认值)类的使用方式主动使用被动使用原创 2016-10-21 11:21:02 · 806 阅读 · 1 评论 -
自定义类加载器(实现加密和解密)
0. 前言在学习Java的类加载器的时候,我们都会看到类加载器的体系结构 上图红色框住的就是jvm提供的三个类加载器,而除了这三个外还有一个自定义类加载器。我们学习一门技术,一定要先知道为什么要学习这门技术,这门技术有什么用,比如说自定义类加载器,我们为什么要自定义类加载器。加密:加密class文件解密:用自定义的类加载器去解密并加载加密过的class文件原创 2016-10-21 16:07:26 · 5777 阅读 · 1 评论 -
Java类加载器体系探究
最近在学习java类加载器,发现网上很多文章都是给出介绍,并没有实验过,所以在此我就依照他们的介绍去实验一番。 先贴上类加载器之间的父子关系和加载范围,注意,类加载器之间的父子关系并不是java类中的继承关系原创 2016-10-22 15:25:49 · 1096 阅读 · 0 评论 -
Java类加载器的父委托机制探究
0. 前言类加载器是Java中重要的知识,关于类加载器的介绍网上有很多文章,大家可以去找找,我也写了一篇关于类加载器的博客,大家也可以去看看http://blog.youkuaiyun.com/TimHeath/article/details/52892531 在讲父委托机制之前先把类加载器体系图贴上来 注意,自定义类加载器的父加载器未必是系统类加载器。可以看见,系统类加载器的父加载器是扩展类加载器,扩展类原创 2016-10-22 15:39:04 · 1267 阅读 · 0 评论 -
GC日志查看分析
0. 前言GC(Garbage Collection)是Java虚拟机中一个很重要的组成部分,在很多情况下我们都需要查看它的日志,下面内容就是介绍如何查看GC日志。1. GET GC日志1.1 输出日志参数要查看GC日志,需要设置一下jvm的参数。关于输出GC日志的参数有以下几种 -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -原创 2016-11-06 09:59:15 · 22690 阅读 · 11 评论 -
判断Java对象是否存活的方法
0. 前言本文参考于《深入理解Java虚拟机:JVM高级特性与最佳实践》堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆回收之前,第一件事情就是要确定这些对象哪些还“存活”着,哪些对象已经“死去”(即不可能再被任何途径使用的对象),哪用什么办法去确认这些对象存活与否。在主流的商用程序语言中(Java和C#等),都是使用可达性分析算法(Reachability Analysis)来判断对象原创 2016-11-06 16:59:17 · 3353 阅读 · 0 评论 -
Java锁的膨胀过程和优化
首先说一下锁的优化策略。1,自旋锁自选锁其实就是在拿锁时发现已经有线程拿了锁,自己如果去拿会阻塞自己,这个时候会选择进行一次忙循环尝试。也就是不停循环看是否能等到上个线程自己释放锁。这个问题是基于一个现实考量的:很多拿了锁的线程会很快释放锁。因为一般敏感的操作不会很多。当然这个是一个不能完全确定的情况,只能说总体上是一种优化。举个例子就好比一个人要上厕所发现厕所里面有人,他可以:1,等一小会。转载 2017-05-08 22:50:36 · 1513 阅读 · 0 评论