Java虚拟机
Java 虚拟机(JVM)相关知识讨论
ppaaaaaaa
这个作者很懒,什么都没留下…
展开
-
JVM —— 类加载器子系统
类加载的过程 加载 通过一个类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法去运行时的数据结构 在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的访问入口; 链接 验证 目的在于确保 Class 文件的字节流中包含信息符合当前虚拟机的要求,保证被加载类的正确性,不会危害虚拟机自身安全 准备 为类变量分配内存并且设置该类变量的默认初始值,即零值。这里不包含用 final 修...原创 2020-06-21 11:27:36 · 203 阅读 · 0 评论 -
类加载机制
1、阶段划分 JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。 a、加载 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个 Class 文件获取,这里既可以从 ZIP 包中读取(比如从 jar 包和 war 包中读取),也...原创 2020-04-29 20:14:54 · 131 阅读 · 0 评论 -
Java IO/NIO
1、阻塞IO模型 最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内 核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用 户线程交出 CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除 block 状态。典型的阻塞 IO 模型的例子为:data = socket.read();如果...原创 2020-04-29 20:11:31 · 207 阅读 · 0 评论 -
GC垃圾回收器
Java 堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法; 年老代主要使用标记-整理垃圾回收算法,因此 java 虚拟中针对新生代和年老代分别提供了多种不 同的垃圾收集器,JDK1.6 中 Sun HotSpot 虚拟机的垃圾收集器如图 1、Serial 垃圾收集器(单线程、复制算法) Serial(英文连续)是最基本垃圾收集器,使用复制算法,曾经是JDK1....原创 2020-04-29 09:37:49 · 103 阅读 · 0 评论 -
Java四种引用类型
1、强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即 使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之 一。 2、软应用 软引用需要用 SoftReference 类来实现,对于只有软引用的对象来说,当系统内存足够...原创 2020-04-26 14:46:35 · 119 阅读 · 0 评论 -
Java虚拟机垃圾回收与算法
1、如何确定垃圾 引用计数法:在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。 可达性分析:为了解决引用计数法的循环引用问题,Java 使用了可达性分析的方法。通过一系列的“GC ...原创 2020-04-26 14:43:01 · 110 阅读 · 0 评论 -
Java虚拟机运行时内存
1、新生代 是用来存放新生的对象。一般占据堆的 1/3 空间。由于频繁创建对象,所以新生代会频繁触发 MinorGC 进行垃圾回收。新生代又分为 Eden 区、ServivorFrom、ServivorTo 三个区 Eden区 Java 新对象的出生地(如果新创建的对象占用内存很大,则直接分配到老年代)。当 Eden 区内存不够的时候就会触发 MinorGC,对新生代区进行一次垃圾回收...原创 2020-04-26 10:11:01 · 154 阅读 · 0 评论 -
Java虚拟机的内存区域
1、程序计数器(线程私有) 一块较小的内存空间, 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的 程序计数器,这类内存也称为“线程私有”的内存。 正在执行 java 方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果还是 Native 方法,则为空。 这个内存区域是唯一一个在虚拟机中没有规定任何 OutOfMemoryError (内存溢出)情况的区域...原创 2020-04-26 10:06:35 · 158 阅读 · 0 评论