String内存的分配问题

xiaoxiao2021-02-28  72

 

 

如下代码:

 

 

 

String a="a"; String b="b"; String ab="ab"; String ab2=a+b; String ab3="a"+"b"; System.out.println(a=="a");//true System.out.println(ab=="ab");//true System.out.println(ab==ab2);//false System.out.println(ab==ab3);//true

 

Q: 为什么ab==ab2结果是false?

A:因为ab2是变量a和b相加之后赋值给ab2,所以在编译的时候不能确定ab2的内容,而ab3的是“a”和”b“相加之后赋值给ab3的,所以在编译的时候就知道ab3的值。

因此ab==ab2是false而ab==ab3是true。

转载请注明原文地址: https://www.6miu.com/read-52157.html

最新回复(0)