JVM核心知识点梳理以及JVM面试题总结

前言

关于[JVM]系列面试知识点[总结]了一个思维导图,分享给大家

图片.png

内存结构

[线程]共享区域

堆(用于存放对象[实例])

1、新生代

(1)Eden区

(2)Survivor(from)区(设置Survivor是为了减少送到老年代的对象 )

(3)Survivor(to)区 (设置两个Survivor区是为了解决碎片化的问题)

(4)eden:survivor:survivor = 8:1:1

2、老年代

老年代:新生代=2:1

方法区

1、运行时常量池

(1)Class 文件中的常量池([编译]器生成的各种字面量和符号引用)会在类加载后被放入这个区域。

(2)存储信息

符号引用

1)符号引用包含的常量

  • 类符号引用

  • 方法符号引用

  • 字段符号引用

2)概念解释

一个[java]类(假设为People类)被编译成一个class文件时,如果People类引用了Tool类,但是在编译时People类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。而在类装载器装载People类时,此时可以通过虚拟机获取Tool类的实际内存地址,因此便可以既将符号org.simple.Tool替换为Tool类的实际内存地址,及直接引用地址。 即在编译时用符号引用来代替引用类,在加载时再通过虚拟机获取该引用类的实际地址。以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能无歧义地定位到目标即可。符号引用与虚拟机实现的内存布局是无关的,引用的目标不一定已经加载到内存中。

字面量

  • 文本字符串(String a = “abc”,这个abc就是字面量)

  • 八种基本类型(int a = 1; 这个1就是字面量)

  • 声明为[final]的常量

2、静态变量

3、final类型常量

4、类信息

  • 类的完整有效名

  • [返回值类型]

  • 修饰符(public,private…)

  • 变量名

  • 方法名

  • 方法[代码]

  • 这个类型直接父类的完整有效名(除非这个类型是interface或

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值