jvm
文章平均质量分 76
weixin_44021967
这个作者很懒,什么都没留下…
展开
-
JVM-字符串常量池与String.intern()方法
文章目录1、字符串常量池在堆区还是在运行时常量池呢?2.String.intern()方法创建了几个对象?JDK6和JDK7下intern的区别3.使用intern 1、字符串常量池在堆区还是在运行时常量池呢? (1)首先介绍 运行时常量池在永久代(Permanent Generation)还是在元空间(meta-space)? 参考《深入理解Java虚拟机》 在JDK1.6(包含)之前,方法区(包含类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据,运行时常量池是方法区的一部分,包含了编译器生成的原创 2021-08-17 15:20:46 · 189 阅读 · 0 评论 -
JVM学习之强引用、弱引用、软引用、虚引用
JVM学习之强引用、弱引用、软引用、虚引用:https://www.cnblogs.com/sunfie/p/5156370.html 1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,要通过如下方式来弱化引用, o=null; // 帮助垃圾收集器回收此对象 显式地设转载 2021-08-16 12:05:25 · 105 阅读 · 0 评论 -
JVM垃圾回收
文章目录1.堆空间的基本结构:2.空间分配担保机制3.如何判断一个对象已经无效4 不可达的对象并非“非死不可”5 如何判断一个常量是废弃常量?6 如何判断一个类是无用的类7.垃圾回收算法 如何判断对象是否死亡(两种方法)。 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。 如何判断一个常量是废弃常量 如何判断一个类是无用的类 垃圾收集有哪些算法,各自的特点? HotSpot 为什么要分为新生代和老年代? 常见的垃圾回收器有哪些? 介绍一下 CMS,G1原创 2021-08-14 21:17:30 · 415 阅读 · 7 评论 -
JVM类加载、双亲委派模型
JVM类加载 加载 (1)通过一个类的全限定名来获取此类的二进制字节流; (2)将这个字节流所代表的静态存储结构转换为方法区的运行时数据结构; (3)在内存中生成一个该类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。 验证 目的是确保Class文件的字节流中国包含的信息符合《Java虚拟机规范》的全部约束要求,被当作当妈运行后不会危害虚拟机自身安全。 准备 正式的为类中定义的变量(静态变量,被static修饰的变量)分配内存并设置类变量初始值。 解析 Java虚拟机将常量池内的原创 2021-08-14 20:59:56 · 63 阅读 · 0 评论 -
JVM之运行时数据区、对象的创建、对象的内存布局(对象头、实例数据、对齐填充)、对象的访问定位(句柄、直接指针)
文章目录1.运行时数据区⭐运行时常量池第六章中关于常量池的解释:知乎:JVM详解之:运行时常量池:[https://zhuanlan.zhihu.com/p/160770086](https://zhuanlan.zhihu.com/p/160770086)字符串常量池2.3 对象的创建4.对象的访问定位 1.运行时数据区 虚拟机栈 本地方法栈 程序计数器 堆 方法区:存储已被JVM加载的类型信息、常量、静态变量、即时编辑器编译后的代码缓存等数据。 方法区与永久代的关系: 方法区是Java虚拟机规范中的内容原创 2021-08-14 17:06:04 · 215 阅读 · 0 评论 -
JVM之字符串常量池、装箱拆箱
文章目录1.创建字符串2、字符串拼接 1.创建字符串 String str1 = "abcd";//先检查字符串常量池中有没有"abcd",如果字符串常量池中没有,则创建一个,然后 str1 指向字符串常量池中的对象,如果有,则直接将 str1 指向"abcd""; String str2 = new String("abcd");//堆中创建一个新的对象 String str3 = new String("abcd");//堆中创建一个新的对象 System.out.println(str1==str2)原创 2021-08-14 17:05:22 · 112 阅读 · 0 评论 -
JVM之关于运行时常量池的理解
文章目录⭐运行时常量池《深入理解Java虚拟机》第六章 类文件结构 中关于常量池的解释:运行时常量池与Class文件常量池的关系运行时常量池与Class文件常量池区别String.intern()字符串常量池 ⭐运行时常量池 运行时常量池:是方法区的一部分,存放编译器生成的各种字面量和符号引用。 原文: 运行时常量池是方法区的一部分。Class 文件中除了有类的版本、字段、方法、接口等描述信息外,还有常量池表,常量池表A用于存放编译期生成的各种字面量和符号引用,而在类加载,常量池表A中的字面量和符号引用将原创 2021-08-14 16:30:41 · 408 阅读 · 0 评论 -
JVM-尚硅谷-上篇-第一章 JVM和Java体系架构
0. JVM学习资源和笔记链接 JVM_01 简介 :https://juejin.cn/post/6844904095937986567 JVM笔记:https://imlql.cn/post/7706d61d.html 特立独行ベ猫字节码文件查看器 链接:https://pan.baidu.com/s/1ABTu0ya0gFC3M_8nRAA–w 提取码:uaf3 第一章 JVM和Java体系架构:https://blog.csdn.net/sj15814963053/article/details/1原创 2021-01-19 17:06:20 · 207 阅读 · 1 评论