![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java虚拟机篇
文章平均质量分 86
_铁树开花
这个作者很懒,什么都没留下…
展开
-
深度解析String s=new String(“abc“)创建了几个对象?
对象内存分配的几个问题解析String s=new String("abc")如何证明新创建的字符串是参数字符串的副本?拓展:运行时常量和编译时常量解析String s=new String(“abc”)我们知道想知道两个对象是不是同一个对象,直接用等号比较就可以 public static void main(String[] args) { String strABC = new String("abc"); String abc = "abc";原创 2021-02-09 14:04:38 · 735 阅读 · 1 评论 -
JVM之方法区
JVM之方法区方法区内容分类三级目录方法区先说特点1、方法区(Method Area)与 Java 堆一样,是所有线程共享的内存区域。2、Java 虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做 Non-Heap(非堆),目的应该是与 Java 堆区分开来。其实也好理解,就是一些class类型的对象;比如Object.class,这也是个对象;只是个对象不是要用的对象,是模具对象,用来制造真正需要的对象的对象;就比如制作月饼需要模子,月饼是对象,模子也是对象;这是模子不是存放在仓库原创 2020-12-29 22:33:59 · 104 阅读 · 0 评论 -
jvm的堆内存
jvm的堆内存堆空间的内存划分对象的分配过程逃逸分析GCMinor GC/Young GC触发Full GCStop-The-World堆空间的内存划分这部分过多描述,直接上图比例划分图上很明确了,一目了然;新生代(年轻代):Eden区、from、to区;比例是8:1:1;新生代顾名思义就是存放新产生的对象的地方;老年代占用三分之二的内存空间;打印对象空间分配的工具类 implementation ‘org.openjdk.jol:jol-core:0.14’分代年龄: 一个对象的内存划原创 2020-12-26 15:05:21 · 720 阅读 · 4 评论 -
jvm:深入浅出教你理解虚拟机结构
前言结构图怎么去理解?大部分技术文章感觉过于晦涩难懂,我写文章的目的和初衷是教大家如何去理解和运用这些基础知识,只有理解了才记得住,只有理解了才会运用。结构图首先是jvm结构图,这个老生常谈,不需要多做解释。上图怎么去理解?首先我们想象一个这样的场景,有一块刚从政府手里买的空地,可以在空地上建房子,但是房子比较特殊,要建的房子结构都是一样的;这个结构都一样的房子内部又可以划分成5个房间,然后里面有个人**(此人就是线程)开始干活,重点在于这个人如何装修这个房子,这个人还分灵魂和肉体**。第一个房原创 2020-12-21 23:27:17 · 245 阅读 · 0 评论