![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
Jiang锋时刻
这个作者很懒,什么都没留下…
展开
-
JVM学习笔记——07垃圾回收(二)垃圾回收器
1. GC分类于性能指标 1. 说明 垃圾收集器没有在规范中进行过多的规定, 可以由不同的厂商, 不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中, 因此java发展至今已经衍生了众多的GC版本 从不同角度分析垃圾收集器, 可以将GC分为不同的类型. 2. 分类 按线程数分, 可以分为串行回收器和并行回收器 按工作模式分, 可以分为并发式垃圾回收器和独占式垃圾回收器 按碎片处理方式分, 可以分为压缩式垃圾回收器和非压缩式垃圾回收器 按工作的内存区间分, 又可分为年轻代垃原创 2020-12-01 20:19:22 · 157 阅读 · 0 评论 -
JVM学习笔记——06垃圾回收(一)
一. 垃圾回收概述 1. 什么是垃圾 垃圾是指在运行程序中没有任何指针指向的对象, 这个对象就像是需要被回收的垃圾. 2. 为什么需要垃圾 如果不能及时对内存中的垃圾进行处理, 那么, 这些垃圾对象所占据的内存空间会一直保留到应用程序结束, 被保留的空间无法被其他对象使用, 甚至可能导致内存溢出. 除了释放没有的对象, 垃圾回收也可以清楚内存里的记录碎片. 碎片整理将所占用的堆内存以到堆的一端, 以便JVM将整理出的内存分配给新的对象 随着应用程序所应付的业务也来越庞大, 复杂, 用户越来越多, 没有GC原创 2020-11-29 11:43:22 · 205 阅读 · 0 评论 -
JVM学习笔记——05对象, 执行引擎, String
一. HotSpot虚拟机对象探秘 1. 对象的创建 1. 创建对象的方式 new: 最常见的方式 变形1: Xxx的静态方法 变形2: XxxBuilder/XxxFactory的静态方法 Class的newInstance(): 反射的方式, 只能调用空参的构造器, 权限必须是public Constructor的newInstance(Xxx): 反射的方式, 可以调用空参, 带参的构造器, 权限没有要求 使用clone(): 不调用任何构造器, 当前类需要实现Cloneable接口, 实现c原创 2020-11-28 09:13:38 · 192 阅读 · 0 评论 -
JVM学习笔记——04运行时数据区域(二)
五. Java堆 1. 堆的核心概述 1. 说明 一个jvm实例只存在一个堆内存, 堆也是java内存管理的核心区域. Java堆区在jvm启动的时候即被创建, 其空间大小也就确定了. 是jvm管理的最大一块内存空间. 堆内存的大小是可以调节的 Java堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的,这点就像我们用磁盘空间去存储文件一样,并不要求每个文件都连续存放。此内存区域的唯一目的就是==存放对象实例== 所有的线程共享java堆, 堆中可以划分出多个线程私有的分配缓冲区 (Thre原创 2020-11-26 19:28:03 · 154 阅读 · 0 评论 -
JVM学习笔记——03运行时数据区域(一)
一. 概念 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。 二. 程序计数器(PC寄存器) 1. 概述 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的 字节码的行号指示器。在Java虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器 的值来选取下一条需要执原创 2020-11-24 21:45:09 · 148 阅读 · 2 评论 -
JVM学习笔记——02类加载子系统
一. 类的加载器 1. 类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载Class文件, class文件在文件开头有特定的文件标识 ClassLoader只负责class文件的加载, 至于它是否可以运行, 则由Execution Engine决定. 加载的类信息存放于一块称为方法区的内存空间. 除了类的信息外, 方法区中还会存放运行时常量池信息, 可能还包括字符串字面量和数字常量. 2. 类加载器ClassLoader角色 class file存在于本地磁盘上 class file加载到原创 2020-11-21 21:37:05 · 128 阅读 · 0 评论 -
JVM学习笔记——01JVM与Java体系结构
一. Java发展史 1. JDK 1.0版 1996年1月23日,JDK 1.0发布,Java语言有了第一个正式版本的运行环境。 JDK 1.0提供了一个纯 解释执行的Java虚拟机实现(Sun Classic VM) JDK 1.0版本的代表技术包括:Java虚拟机、Applet、 AWT等。 2. JDK 1.1版 JDK 1.1版的技术代表有: JAR文件格式、JDBC、JavaBeans、RMI等。 Java语 言的语法也有了一定的增强,如内部类(Inner Class)和反射(原创 2020-11-21 21:36:31 · 128 阅读 · 0 评论