教妹学Java:学弟学妹都必须掌握的字符串常量池

Posted 沉默王二

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教妹学Java:学弟学妹都必须掌握的字符串常量池相关的知识,希望对你有一定的参考价值。

字符串常量池

“三妹,今天我们来学习一下字符串常量池吧,这是字符串非常中关键的一个知识点。”我话音未落,青岛路小学那边传来了嘹亮的歌声就钻进了我的耳朵,“唱 ~ 山 ~ 歌 ~”

三妹说,“好呀,开始吧,哥。”

“先从这道面试题开始吧!”

String s = new String("二哥");

“这行代码创建了几个对象?”

“不就一个吗?”三妹不假思索地回答。

“不,两个!”我直接否定了三妹的答案,“使用 new 关键字创建一个字符串对象时,Java 虚拟机会先在字符串常量池中查找有没有‘二哥’这个字符串对象,如果有,就不会在字符串常量池中创建‘二哥’这个对象了,直接在堆中创建一个‘二哥’的字符串对象,然后将堆中这个‘二哥’的对象地址返回赋值给变量 s。”

“如果没有,先在字符串常量池中创建一个‘二哥’的字符串对象,然后再在堆中创建一个‘二哥’的字符串对象,然后将堆中这个‘二哥’的字符串对象地址返回赋值给变量 s

以上是关于教妹学Java:学弟学妹都必须掌握的字符串常量池的主要内容,如果未能解决你的问题,请参考以下文章

教妹学Java:学妹必须学会的static 关键字

教妹学Java:抽象类,子类复用的基石

教妹学Java:从源码来看字符串的不可变性

教妹学Java:Java 的 8 种数据类型

教妹学 Java:字符串拼接

教妹学 Java:字符串拆分