如下这段代码输出结果, 创建几个对象以及内存分布
equals()与“==”区别
**字符串比较的方法:
(1)equals()比较两个字符串的内容是否相同
(2)== 比较字符串内存地址是否相等,比较两个字符串是否是同一对象**
如下这几段代码输出结果, 创建几个对象以及内存分布
//创建一个对象
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1==s2);//s1和s2都指向字符串池中的"Hello"对象,结果为true
System.out.println(s1.equals(s2));
如下代码创建了2个对象
String s1 = "Hello";
String s2 = nwe String("Hello");
System.out.println(s1==s2);//s1指向字符串池内的"Hello",s2指向堆内的"Hello",结果为false
System.out.println(s1.equals(s2));
//如下代码创建了3个对象
String s1 = "Hello"; // s1指向字符串池内的"Hello"
String s2 = nwe String("hello"); //S2s2指向堆内的"hello",但该行创建了两个对象,一个是堆内 的"hello",一个是字符串池内的"hello"
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
//如下代码创建了4个对象
String s1 = new String("Hello"); // //s1指向堆内的"Hello"对象,但该行创建了两个对象,一个是字 符串内池内的"Hello",一个是堆中的"Hello"
String s2 = new String("Hello"); //S2s2指向堆内的"hello",但该行创建了两个对象,一个是字符串池内 的"hello",一个是堆内的"hello"
System.out.println(s1==s2);
System.out.println(s1.equals(s2));