例题如下:
public static void main(String[] args) {
String s1 = “abc”;
String s2 = new String(“abc”);
String s3 = “a”;
String s4 = “bc”;
String s5 = s3 + s4;
boolean b1 = s1s2;
boolean b2 = s1.equals(s2);
boolean b3 = s1s5;
boolean b4 = s1.equals(s5);
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
System.out.println(b4);
}
求出 b1,b2,b3,b4的值?
解题思想:
栈:用来存储基本类型的数据和引用类型的地址。
堆:用来存储引用类型的数据。
大家应该熟知,在String中,String s1 = “abc”;是创建了一个对象,数据存储在字符串常量池。而String s2 = new String(“abc”);是创建了两个对象,地址存储在栈中,数据存储在堆中。
==是用来比较两个对象的地址。equals是用来比较两个对象的数据。
在String中equals与==的区别
最新推荐文章于 2021-11-01 21:58:04 发布