文章插图
补充:字面量和常量池初探
字符串对象内部是用字符数组存储的,那么看下面的例子:
文章插图
1、会分配一个11长度的char数组,并在常量池分配一个由这个char数组组成的字符串,然后由m去引用这个字符串 。
2、用n去引用常量池里边的字符串,所以和n引用的是同一个对象 。
3、生成一个新的字符串,但内部的字符数组引用着m内部的字符数组 。
4、同样会生成一个新的字符串,但内部的字符数组引用常量池里边的字符串内部的字符数组,意思是和u是同样的字符数组 。
使用图来表示的话,情况就大概是这样的(使用虚线只是表示两者其实没什么特别的关系):
文章插图
测试demo:
文章插图
结论:
1、m和n是同一个对象;
2、m,u,v都是不同的对象;
3、m,u,v,n但都使用了同样的字符数组,并且用equal判断的话也会返回true 。
【彻底搞懂String:字符串常量池】
推荐阅读
- ARM|彻底分家!ARM卖掉ARM中国全部股份 只为上市
- 彻底搞懂MySQL分区
- 一文搞懂SQL中的所有JOIN
- 一口气搞懂“质量”
- 怎样才能安装和彻底卸载Mac软件?
- 抑郁症能否彻底治好 抑郁症有什么办法可以治好
- 家里的厕所为什么会出现蚂蟥,厕所有蚂蝗该怎样彻底消灭
- 抑郁症能彻底治愈吗?患者性格可能会发生这些变化
- 一文搞懂转子发动机的工作原理!不懂你找我
- Java 字符串常量池介绍,String Pool 的实现