- class Test{
- public static void main(String[] args)
- {
- String s1 = new String("abc");
- String s2 = new String("abc");
- System.out.println("s1 == s2 ? "+s1 == s2);
- }
- }
- 在String和Boolean类型中,打印的false,"s1 == s2 ? " 在哪?why?
复制代码 在JAVA中, String 不属于基本数据类型,而是引用数据类型,事实上,
String s1 s2 的值,不是一个字符串,而是字符串在内存中的地址, String 变量
名s1 s2只是引用了一个地址 而new 的意思是在内存中分别分配一个新的存储地址给
s1 s2 , s1 s2 所存内存地址中所指向的内存中都各自存了"abc".但这里==比的不是
那里面的值,而是 ,s1 s2的所存储的内存地址值,所以 如果要比,s1 s2各自存的内存
地址指向的内存空间的内容,可以用 equals 进行比较
|