
JVM
JVM
烟雨星空
公众号:「烟雨星空」,关注免费领取1000G学习资料
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
你还在为怎么查看字节码指令而担忧吗?
前言我们平时编码过程中,可能很少去查看 Java 文件编译后的字节码指令。但是,不管你是因为对技术非常热爱,喜欢刨根问底,还是想在别人面前装X 。我认为,都非常有必要了解一下常见的字节码指令。这对于我们理解代码的运行原理也会很有帮助。注释会被执行吗?比如,最近我就看到了二哥(沉默王二)的一篇文章,非常有意思,也让我涨了见识了。且看代码,可能会让你怀疑人生~public class Test...原创 2020-05-08 09:49:11 · 577 阅读 · 0 评论 -
JVM垃圾回收详解
通常,我们在写java程序的时候,似乎很少关注内存分配和垃圾回收的问题。因为,这部分工作,JVM已经帮我们自动实现了。这样看起来,好像很美好,但是任何事情都有两面性。虽然JVM会自动的进行垃圾回收,但是,如果遇到有些问题,JVM自己也处理不了呢?因此,我们需要了解一下JVM垃圾回收是怎样运作的,这样才能在遇到问题的时候,有的放矢。所以,今天就来聊一聊JVM的垃圾回收吧。首先,思考一下,为什么...原创 2020-02-16 21:53:11 · 1859 阅读 · 0 评论 -
JVM内存模型
如果想了解JVM内存模型,首先我们要知道JVM是什么?JVM全称 Java Virtual Machine ,即Java虚拟机,是用于运行Java程序编译后的字节码文件。JVM最常见的三种有:1.Sun公司的 HotSpot,是目前使用最广泛的Java虚拟机。2.BEA公司的 JRockit,后来被 Oracle收购。3.IBM公司的 J9VM。我们知道,Java的口号是: “Write on...原创 2020-02-07 21:38:15 · 1293 阅读 · 0 评论 -
字符串常量池理解
在JVM中,为了减少字符串对象的重复创建,维护了一块特殊的内存空间,这块内存就被称为字符串常量池。在JDK1.6及之前,字符串常量池存放在方法区中。到JDK1.7之后,就从方法区中移除了,而存放在堆中。以下是《深入理解Java虚拟机》第二版原文:对于HotSpot虚拟机,根据官方发布的路线图信息,现在也有放弃永久代并逐步改为采用Native Memory来实现方法区的规划了,在目前已经发布的...原创 2020-02-08 23:23:42 · 542 阅读 · 5 评论 -
Java类加载器和双亲委派机制
前言之前详细介绍了Java类的整个加载过程(类加载机制详解)。虽然,篇幅较长,但是也不要被内容吓到了,其实每个阶段都可以用一句话来概括。1)加载:查找并加载类的二进制字节流数据。2)验证:保证被加载的类的正确性。3)准备:为类的静态变量分配内存,并设置默认初始值。4)解析:把类中的符号引用转换为直接引用。5)初始化:为类的静态变量赋予正确的初始值。当然,要想掌握类加载机制,还是需要去...原创 2020-02-12 17:18:21 · 1142 阅读 · 0 评论 -
类加载机制详解
之前在介绍JVM内存模型的时候(参看:JVM内存模型),提到了在运行时数据区之前,有个Class Loader,这个就是类加载器。用以把Class文件中的描述信息加载到内存中运行和使用。以下是《深入理解Java虚拟机第二版》对类加载器机制的定义原文:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加...原创 2020-02-11 20:07:41 · 3641 阅读 · 0 评论