String类中关于"=="号和equals区别的问题(五)
2021/8/31 23:06:22
本文主要是介绍String类中关于"=="号和equals区别的问题(五),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
String s1="ab"; String s2="abc"; String s3=a1+"c"; System.out.println(s3==s2); 判断输出的是true还是false 答案是false
这是原理图
这是API原话
-
Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。 字符串连接是通过
StringBuilder
(或StringBuffer
)类及其append
方法实现的。 字符串转换是通过方法来实现toString
,
一旦出现+ 就会调用底层的StringBuffer或者StringBulider类中的apand方法实现连接,然后用toString方法显示出来,所以他是堆区的; 但是排除常量优先机制(就是多个常量用+号连接,例如String s4="a"+"b"+"c",它在编译的时候就是abc了,然后再把abc赋值给s4)那么这样如果输出 System.out.print(s4==s2)显示的是ture
这篇关于String类中关于"=="号和equals区别的问题(五)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-12百万架构师第十五课:源码分析:Spring 源码分析:SpringMVC核心原理及源码分析|JavaGuide
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide