
JVM学习笔记
文章平均质量分 92
参考JVM经典书籍《深入理解Java虚拟机》
我姓弓长那个张
Present is a present.
展开
-
【JVM学习笔记07】对象实例化与访问定位
七、对象实例化与访问定位7.1 创建对象的方式new:最常见的方式、单例类中调用 getInstance 的静态类方法,XXXFactory 的静态方法Class 的 newInstance 方法:反射的方式,在 JDK 9 里面被标记为过时的方法,因为只能调用空参构造器,权限必须是 publicConstructor 的 newInstance(XXX):反射的方式,可以调用空参的,或者带参的构造器,权限没有要求使用 clone():不调用任何的构造器,但是要求当前的类实现 Cloneabl原创 2021-11-23 11:02:12 · 837 阅读 · 0 评论 -
【JVM学习笔记06】堆
七、堆Java堆是Java虚拟机所管理的内存中最大的一块,其唯一的目的是存放对象实例。java堆是被所有线程所共享的一块内存区域(TLAB区除外),在虚拟机启动时创建,几乎所有对象的实例都存储在堆中,所有的对象和数组都要在堆上分配内存。堆和方法区针对一个 JVM 进程来说是唯一的,也就是一个进程只有一个 JVM ,但是进程包含多个线程,他们是共享同一堆和方法区空间的,每个线程各自包含一套程序计数器、本地方法栈和虚拟机栈。一个 JVM 实例只存在一个堆内存,堆也是 Java 内存管理的核心区原创 2021-11-19 20:05:40 · 862 阅读 · 0 评论 -
【JVM学习笔记05】虚拟机栈
六、虚拟机栈虚拟机栈描述的是 Java 方法执行的内存模型,方法的执行的同时会创建一个栈帧用于存储方法中的局部变量表、操作数栈、动态链接、方法的出口等信息。每个方法从调用直到执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。栈也叫栈内存,主管Java程序的运行,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束该栈就Over,生命周期和线程一致,是线程私有的。6.1 栈帧栈中的数据都是以栈帧(Stack Frame)原创 2021-11-17 20:53:16 · 904 阅读 · 0 评论 -
【JVM学习笔记04】类加载子系统
五、类加载器子系统Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制。类加载器的作用是负责加载Class文件,Class文件在文件开头有特定的文件标示,将Class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构并且类加载器只负责Class文件的加载,至于它是否可以运行,则由Execution Engine决定5.1 类的生命周期一个类型(类或接口)从被加载原创 2021-11-16 09:56:48 · 229 阅读 · 0 评论 -
【JVM学习笔记03】类文件结构
【该章节主要总结了比较重要的部分,没有概述全面,后续将结合实际情况再继续补充完善】四、类文件结构我们平时说的 Java 字节码,指的是用 Java 语言编译成的字节码。准确的说任何能在 JVM 平台上执行的字节码格式都是一样的。所以应该统称为:JVM 字节码。不同的编译器,可以编译出相同的字节码文件,字节码文件也可以在不同的 JVM 上运行。Java 虚拟机与 Java 语言并没有必然的联系,它只与特定的二进制文件格式— Class 文件格式所关联,Class 文件中包含了 Java 虚拟机指令.原创 2021-11-14 13:42:04 · 791 阅读 · 0 评论 -
【JVM学习笔记02】运行时内存区域
JVM运行时内存区域三、运行时内存区域内存是非常重要的系统资源,是硬盘和 CPU 的中间仓库及桥梁,承载着操作系统和应用程序的实时运行 JVM 内存布局规定了 Java 在运行过程中内存申请、分配、管理的策略,保证了 JVM 的高效稳定运行。不同的 JVM 对于内存的划分方式和管理机制存在着部分差异。比如HotSpot有方法区,而其他虚拟机就没有方法区这个分区。Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随原创 2021-11-12 21:19:49 · 1399 阅读 · 0 评论 -
【JVM学习笔记01】概述
JVM概述JVM 体系结构概览:一、概述1.1 Java:跨平台的语言Java 是目前应用最为广泛的软件开发平台之一。随着 Java 以及 Java 社区的不断壮大 Java 也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。作为一个平台,Java 虚拟机扮演着举足轻重的作用Groovy、Scala、JRuby、Kotlin等都是Java平台的一部分作为一种文化,Java 几乎成为了“开源”的代名词。第三方开源软件和框架。如Tomcat、Struts,MyBat原创 2021-11-11 20:49:51 · 1206 阅读 · 0 评论