博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于字符串的拼接
阅读量:6893 次
发布时间:2019-06-27

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

hot3.png

可能有人对字符串的拼接存在疑问。如下面的:

String a = "test";String b="3";String c=a+b;String d="test"+"3";c和d是否指向的是同一个对象"test3"?
不是指向同一个对象的。假设再有个语句,String e = "test3";因为String是final的,不可修改,所以可以把e看成常量。当再遇到String d="test"+"3"时,编译器在这里做了优化,把这条语句优化为String d="test3",由于存在一个相同的对象e,所以d也指向了e.所以d、e是同一个对象。而编译器在处理String c=a+b时,认为是两个变量相加,不会做优化。所以c,d不是同一个对象。如果将a,b定义为final String a = "test";final String b="3"; 这时String c=a+b就变成了常量相加,所以编译器会对其进行优化,即这时c,d就相等了。

转载于:https://my.oschina.net/pangzhuzhu/blog/318065

你可能感兴趣的文章
POJ 2262
查看>>
crossplaform---Nodejs in Visual Studio Code 04.Swig模版
查看>>
SpringMVC中的/*和/的区别
查看>>
mysql数据库查询pdo的用法
查看>>
使用元件类 Shape 在 XNA 中显示缩放图形,WPXNA(三)(带视频)
查看>>
WdatePicker.js开始日期和结束日期比较
查看>>
2018年全国多校算法寒假训练营练习比赛(第二场) B TaoTao要吃鸡 01背包变形题...
查看>>
mongorc.js文件
查看>>
服务器监控客户端系统状态4.0
查看>>
zz STL系列之十 全排列(百度迅雷笔试题)
查看>>
python --- 面向对象编程
查看>>
TensorFlow --- 01初识
查看>>
shell编程-变量
查看>>
[转帖]c头文件(.h)的作用
查看>>
中文乱码问题解决方法总结
查看>>
渗透测试
查看>>
详解如何使用Docker Hub官方的MySQL镜像生成容器
查看>>
Perl 输出颜色
查看>>
docker疑难解答 -- 设置远程服务监听
查看>>
mysql grant 用户权限总结
查看>>