String字符串的拼接问题
来源:互联网 发布:软件架构设计实例 编辑:程序博客网 时间:2024/04/29 13:37
今天同事发了一个关于String类的拼接问题,值得学习就记录下来。
public static void main(String[] args) { String str=""; String str1=str; str1+=""; System.out.println(str == str1);
结果是:false
至于为什么是false,这就要说一下String类了。
String类是一个不可变类,所以当我们创建了一个String对象之后,其属性是不可改变的!
当我们可以的去更改这个字符串(比如连接别的字符串),其真正的结果是创建了新的字符串,并不是原来的字符串了。
所以此时的str和str1已经是两个不同的对象了。
这时候又要涉及到==和equals 的区别了
==是判断两个对象是否同一,即两个对象引用的是否是同一块内存。而equals比较的是两个对象的值是否同一,与地址无关。
综上解释,就可以明白结果为什么是false了。
参考文章:
Java空字符串、字符串空对象与null的区别
Java中的String类
下面再提一个华为的面试题:
先著名文章出处表示对作者的尊重:剖析java中的String之__拼接
String s = null;s += "abc";System.out.println(s);
这个结果是nullabc
结果确实让很多人生疑,但是结果确实如此,想知道详细,请点击上面的连接,看原作者解释!
阅读全文
0 0
- String字符串的拼接问题
- 关于String 拼接字符串的性能问题
- String中的字符串拼接问题
- String拼接的问题
- 拼接字符串的效率问题(String,StringBuffer,StringBuilder对比)
- java的string字符串拼接
- 减号拼接字符串的问题
- [java]字符串的拼接问题
- JS字符串拼接的问题
- IOS 字符串的拼接问题
- 关于字符串拼接的问题
- String面试题--字符串的拼接
- 玩玩String的字符串拼接底层原理
- String字符串拼接陷阱
- String拼接字符串
- sql拼接,String和Stringbuffer的问题
- android端上传后台数据 string字符串拼接问题
- String拼接问题
- <%@ taglib uri="" prefix=""%> 使用
- 了解log4j
- 域名来路判断
- List
- java redirect跳转
- String字符串的拼接问题
- java static
- CodeForces
- 新浪初见
- 从 ECMAScript 规范来看 JS 的 this 绑定规则
- 基于opencv的身份证识别系统
- JVM参数优化JAVA_OPTS
- android studio 快捷键(eclipse版)--部分
- JAVA三大框架的各自作用