jvm内存分布

1. 虚拟机的构成

虚拟机主要由 运行时数据区、 执行引擎、 类加载器 三者构成。

1.1 运行时数据区

  • 方法区

方法区存放着class文件的信息,还包括存储class常量的常量池
常量池主要用来存放两大类常量:字面量符号引用量


  • 字面量
    • 文本字符串
    • final常量
  • 符号引用量
    • 类和接口的全限定名
    • 字段名称和描述符
    • 方法名称和描述符

  • class文件中的常量池中的内容会在类加载后进入方法区的运行时常量池。相对于常量池,运行时常量池的重要特征是具有动态性,java并不要求常量只有在编译器才会产生,运行期间也可以将新的常量存放入池中,这种特性用的最多的String类中的intern()方法。
  • 对于byte、short、long、char、boolean对应的包装器类都有对应的常量池,这五种包装器类默认创建在-128到127的对象会存放在在缓存中。对于两种浮点数没有实现常量池技术。

  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • © 2020 Zhang-Ke
  • Powered by Hexo Theme Ayer
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信