博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串常量是在类加载还是在实际执行代码时才加载入运行时常量池?
阅读量:4350 次
发布时间:2019-06-07

本文共 692 字,大约阅读时间需要 2 分钟。

今天纠结了一个问题,就是字符串常量是在类加载还是在实际执行代码时才加载入运行时常量池?

 

以下面的具体例子为例,环境为jdk1.8

public class Demo {        public static void main(String[] args) {        String s1= "a"+ "a";        s1.intern();        String s2= "aa";        System.out.println(s1 == s2);    }    }

运行结果时true,说明类加载时并没有加载方法体内的字符串常量aa

 

public class Demo {        public String s = "aa";        public static void main(String[] args) {        String s1= "a"+ "a";        s1.intern();        String s2= "aa";        System.out.println(s1 == s2);    }    }

运行结果同样是时true,说明类加载时并没有加载类变量的字符串常量aa

 

深入理解Java虚拟机的P42页讲到Class文件中的各种字面量和符号引用将在类加载后进入方法区的运行时常量池中存放。

这句话和我写的例子不符合,网上查找了很多博客也没有找到类似的问题和解释。

 

和共同探讨

 

转载于:https://www.cnblogs.com/lzxin/p/10389304.html

你可能感兴趣的文章
Web应用安全审计工具WATOBO
查看>>
人工智能03 状态机
查看>>
(转)Mysql 安装与卸载
查看>>
JS Post 传参
查看>>
PowerMockRunner和ActiveObjectsJUnitRunner
查看>>
Linux_jdk
查看>>
HTML入门1—HTML基础学习
查看>>
在vs2005中使用SVN进行版本管理
查看>>
实现类似百度文库效果,防止用户下载。
查看>>
mysql的数据存储
查看>>
[转载] Activiti Tenant Id 字段释疑
查看>>
[Java 8] (8) Lambda表达式对递归的优化(上) - 使用尾递归 .
查看>>
SQL Server-聚焦移除Bookmark Lookup、RID Lookup、Key Lookup提高SQL查询性能
查看>>
最小权限的挑战
查看>>
jquery 视觉特效(水平滚动图片)
查看>>
SVG笔记
查看>>
go web framework gin group api 设计
查看>>
linux下使用dd命令写入镜像文件到u盘
查看>>
001---进程
查看>>
视频人脸检测——OpenCV版(三)
查看>>