
JVM深入理解
Hammond_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
内存屏障和volatile
内存屏障存在的原因: 为了提高CPU的IO速度,除了主存以外设有高速缓存,CPU读取和写入的时候不能够获取到“最新的信息”(与主存交互),而多线程模式下方法区和堆中的变量有可能缓存从而导致“”脏数据“ 内存屏障作用: 阻止屏障两边reOrder 强制把写缓冲区/高速缓存中的脏数据等写回主内存,让缓存中相应的数据失效 对于Load Barrier(读屏障):在指令前加入的话,会强制从主存中读...原创 2020-01-15 22:16:20 · 304 阅读 · 0 评论 -
逃逸分析
逃逸分析是JIT即时编译器中的一个重要的优化手段,动态的编译热点代码并进行逃逸分析,标量替换,锁消除优化代码,JDK1.8默认全部开启 逃逸分析: 分析对象动态的作用域,当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他地方中,称为方法逃逸 public static StringBuffer createStringBuffer1(String s1, String ...原创 2020-01-15 22:17:27 · 194 阅读 · 0 评论 -
反射机制
反射就是把java类中的各种成分映射成一个个的Java对象 一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。 每一个对象都只有一个Class对象存放对象类的一些信息,多的只是对象空间 下面来点实例: 1、获取class对象的三种方法 obj.getClass() obj.class Class.forName(“obj”) ...原创 2020-01-15 22:17:16 · 174 阅读 · 0 评论 -
类加载机制
类加载机制: JVM将class文件读取进内存,进行加载-验证-准备-解析-初始化-使用的一系列生命周期过程,将class文件解析成可被JVM识别的Java类型,不用的时候就卸载对应的class对象 1、加载 “加载”是“类加载”(Class Loading)过程的一个阶段。在加载阶段,虚拟机需要完成以下3件事情: 1)通过一个类的全限定名来获取定义此类的二进制字节流。 2)将这个字节流所...原创 2020-01-15 22:09:38 · 307 阅读 · 0 评论 -
类加载器
类加载器 类加载器负责加载所有的类,其为所有被载入内存中的类生成一个java.lang.Class实例对象。一旦一个类被加载如JVM中,同一个类就不会被再次载入了。正如一个对象有一个唯一的标识一样,一个载入JVM的类也有一个唯一的标识。在Java中,一个类用其全限定类名(包括包名和类名)作为标识;但在JVM中,一个类用其全限定类名和其类加载器作为其唯一标识。例如,如果在pg的包中有一个名为Pers...原创 2020-01-15 22:18:51 · 636 阅读 · 0 评论 -
强软弱虚,用到的场景
强引用 内存不足时,垃圾回收器也绝不会回收具有强引用的对象,然后内存溢出并报错OOM 经典的强引用 Object oj=new Object(); 这时不管Object对象是否被使用,垃圾回收器永远都不会回收这个强引用所指向在堆中的Object对象,以防内存不足时造成的困扰,我们可以将它设置为null oj=null;//变成弱引用 方便GC算法查找未被使用的对象 软引用 内存不...原创 2020-01-15 22:18:42 · 279 阅读 · 0 评论 -
JVM内存模型
JVM逻辑分区主要分为5个主要的模块 线程私有:本地方法栈,程序计数器,虚拟机栈 线程共享:堆,方法区 程序计数器: 很小的一部分空间,给每一个线程单独分配的行指示器,唯一一个不会OOM的内存空间 由于多个cpu与主存交互时会有多个cpu私有的高速cache,因为只有一个主存,所以需要一个内存屏障(读写锁)来管理这些高速缓存,那么写的时候有可能会有线程切换的情况,这时候程序计数器就能记录切换之前...原创 2020-01-15 22:18:31 · 168 阅读 · 0 评论 -
分代回收算法
Java中所有在堆中的新建的对象都需要经历garbage collect过程 1、新生代 新建的对象此时此刻还是一个初出茅庐的小伙子,踏进堆中发现一个8:1:1的空间,最大的空间我们把它叫做Eden,两个小的空间我们都叫Survice,他发现这里的垃圾是这样回收的 这就是标记复制算法 2、年老代 经历过多次标记复制还存活下来的对象,由于一个Survice区已经容不下这么对象了,所以把它们放到年...原创 2020-01-15 22:18:31 · 826 阅读 · 0 评论