随笔分类 - Jvm
摘要:java 详解类加载器的双亲委派及打破双亲委派 https://blog.csdn.net/chang_ge/article/details/80262115 /www.jb51.net/article/102920.htm https://www.cnblogs.com/wxd0108/p/668
阅读全文
摘要:jvm内存溢出区域和排查方法 https://blog.csdn.net/jiangtongcn/article/details/8222685 1.堆溢出 2.栈溢出 3.方法区和运行时常量池溢出 4.本机直接内存溢出 首先我们需要掌握什么是内存溢出和内存泄漏 内存泄漏:即声明的对象无法被回收,一
阅读全文
摘要:JVM中的新生代和老年代(Eden空间、两个Survior空间) 为什么不是1个 Survivor 空间? 回答这个问题有一个前提,就是新生代一般都采用复制算法进行垃圾收集。原始的复制算法是把一块内存一分为二, gc 时把存活的对象从一块空间(From space)复制到另外一块空间(To spac
阅读全文
摘要:什么情况下会发生堆内存溢出,栈内存溢出,结合实例说明 、 栈溢出(StackOverflowError)栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口灯信息。局部变量表又包含基本数据类型,对象引用类型(局部变量表编译器完
阅读全文
摘要:浅析JVM类加载机制 浅析类加载机制 类加载器简单来说是用来加载 Java 类到 Java 虚拟机中的。Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java
阅读全文
摘要:JVM中的新生代和老年代(Eden空间、两个Survior空间) https://blog.csdn.net/jisuanjiguoba/article/details/80156781 现有的主流JVM分别是HotSpot和JRockit,主要研究对象也是这两个。这篇文章里,我们只研究HotSpo
阅读全文
摘要:深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写
阅读全文
摘要:JVM原理讲解和调优 https://www.cnblogs.com/zhangpan1244/p/6197832.html 一、什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿
阅读全文
摘要:原码,反码,补码 计算机里面只有加法,那减法怎么表示了,用加法来表示例如;5-3在计算机的表示为5 + (-3) 为什么要有源码,反码,补码这些东西,有源码就够了不是吗、 因为计算机最终的计算就是拿补码来计算的,从源码转为反码最后在转为补码才能计算出正确的结果 源码不方便计算,原因是第一位作为符号位
阅读全文
摘要:深入理解JVM(二)——内存模型、可见性、指令重排序 上一篇我们介绍了JVM的基本运行流程以及内存结构,对JVM有了初步的认识,这篇文章我们将根据JVM的内存模型探索java当中变量的可见性以及不同的java指令在并发时可能发生的指令重排序的情况。 内存模型 首先我们思考一下一个java线程要向另外
阅读全文
摘要:深入理解JVM(一)——基本原理 前言 JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。 运行流程 我们都知道java一直宣传的口号是:一次编译,到处运行。那么它如何实现的
阅读全文