![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 84
每天都得进步
一个小学生
展开
-
六、jvm中常量池
在java文件中定义的数字或者字符串都成为字面量int a = 1;int b = 2;上述代码中,1、2、“hello” 都是字面量。对应着常量池中Integer_info和String_info。符号引用主要包含以下几种:1、类和节点的符号引用2、字段符号引用3、方法符号引用int a = 1;上述代码中a、b、 sayHello都是符号应用。原创 2023-12-12 20:47:58 · 27 阅读 · 0 评论 -
五、Jvm常用的工具使用
jmap -dump:format=b,file= :生成堆转储快照。其中, 是你想要保存快照的文件名, 是 Java 进程的 ID。在 Java 9 及更高版本中,jmap 命令已被 jhsdb jmap 命令取代。- jmap -histo[:live] :打印出堆中对象的统计信息,包括类、对象数量和字节数。- jmap -heap :打印出堆的概要信息,包括使用的 GC 算法、堆配置信息和 GC 统计信息等。原创 2023-12-12 11:41:04 · 26 阅读 · 0 评论 -
四、垃圾回收器
我们主要看 parnew+cms 和 g1。cms应用在老年代,并且采用标记-清除算法。原创 2023-11-28 16:07:25 · 37 阅读 · 0 评论 -
三、Class文件结构
4、常量的个数,2个字节,00----最大2的16次方。默认第一个常量为null,这个jvm的规范。3、主版本号,2个字节,00 34 ==》 54 ==》 jdk1.8。1、前4个字节为 CA FE BA BE。2、次版本号,2个字节, 00 00。原创 2023-11-27 18:28:09 · 27 阅读 · 0 评论 -
二、jvm对象创建及内存分配
当我们去new Object()的时候,首先先判断当前的类的父类是否被加载过,如果没有则先加载父类。将类的信息放入元空间。不管是那种内存分配方式,都会存在并发的问题,例如有多个线程同时new对象,那么就会有并发的问题。如果想要查看当前对象的头数据,可以引入jol包。原创 2023-11-16 21:52:36 · 56 阅读 · 0 评论 -
一、jvm内存模型的剖析
那么我们编写的一个helloworld.java文件如何成功运行的呢?线程执行会开辟栈空间,当每个线程执行方法的时候,会在栈中开辟栈帧。栈,又叫虚拟机栈,又可以叫线程栈。因为其与对应的线程相互依赖。那么栈帧中都包含什么呢?原创 2023-11-15 09:53:26 · 29 阅读 · 0 评论