您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

是什么使引用比较(==)对Java中的某些字符串有效?

是什么使引用比较(==)对Java中的某些字符串有效?

字符串常量池实际上将缓存所有字符串文字,因此它们是下面的同一对象,这就是为什么你看到要执行输出的原因s1==s2。本质上,这是对VM的一种优化,可以避免每次声明文字时都创建新的字符串对象,这可能会很快变得非常昂贵!在你的str1==str2示例中,你明确地告诉VM创建新的字符串对象,因此为什么它是错误的。

顺便说一句,intern()在任何字符串上调用方法都会将其添加到常量池中(并返回添加到该池中的String。)但这不一定是一个好主意,但是除非你确定要处理绝对将用作常量的字符串,否则你可能最终难以跟踪内存泄漏。

java 2022/1/1 18:16:35 有508人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶