java__常量池

java的常量池分为两种型态:静态常量池和运行常量池

静态常量池:

即class文件中的常量池,这种常量池主要用于两大类常量,字面量和符号引用量。
字面量相当于java语言层面的常量,如文本字符串,声明为final的常量值等
符号引用量则属于编译方面的概念,包含如下三种类型的常量:

  • 类和接口的全限定名
  • 字段名称和描述名称
  • 方法名称和描述符
运行时常量池

则是JVM虚拟机加载完class文字内的常量载入到内存中,并保存在方法中,这就是常说的常量池
string.intern()方法就是使在非编译器的常量保存到常量池中,String.intern()会查找常量池是否存在一份equal相等的字符串,有则返回引用,没有则添加进常量池中。
相同的字符串,系统不会申请两个空间,只会保留一个,其他返回第一个地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线,存放一些跳转指令。 本地方法栈是jvm调用操作系统方法所...
    dlihasa阅读 1,162评论 0 1
  • 原文作者:梦工厂 原文出处:https://www.jianshu.com/p/c7f47de2ee80 此篇文章...
    Tune_G阅读 285评论 0 0
  • 一、概述 常量池:编译期被确定,*.class文件中的一部分,包含字面量(Literal)和符号引用(Symbol...
    高稷阅读 1,954评论 0 2
  • 一.相关概念 什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态...
    梦工厂阅读 58,312评论 38 277
  • 自选 导图亮点 分支清晰,图标形象。 导图解说 所谓效率其实是个相对模糊的概念,而何时能达到所谓「高效」、或者说处...
    有菜阅读 533评论 0 2