关于String! String str="hello" 于 String str=new String("hello") 有什么不同,产生的效果各是怎么样? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String str="hello"是将str指向了String类实例池中的常量"hello"(Java考虑到效率问题专门维持了一个String的实例池)String str=new String("hello") 是new了一个实实在在的String对象,它的值为"hello" 大家看看这段代码,可能会有帮助class EqualsTest{ public static void main(String[] arguments){ String str1, str2; str1 = "Free the bound periodicals."; str2 = str1; //值相等,且为同一个对象 System.out.println("String1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); //通过“==”运算符可以判断两个“对象”是否相同 System.out.println("Same value? " + str1.equals(str2)); str1 = "Free the bound periodicals."; str2 = new String(str1); //值相等,但非同一个对象 System.out.println("\nString1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); System.out.println("Same value? " + str1.equals(str2)); str1 = "Free the bound periodicals."; str2 = str1; str1 = "I'v changed it."; //并非修改str1的值。看似修改str1的值,其实是创建一个新对象,然后修改str1的引用 //不同值,不同对象 System.out.println("\nString1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); System.out.println("Same value? " + str1.equals(str2)); }} String str = new String("hello")是创建一个"hello"字符串对象的副本 String str="hello"是将str指向了String类实例池中的常量"hello"(Java考虑到效率问题专门维持了一个String的实例池)String str=new String("hello") 是new了一个实实在在的String对象,它的值为"hello"str 只是一个指向"hello"的引用 大家看看这段代码,可能会有帮助class EqualsTest{ public static void main(String[] arguments){ String str1, str2; str1 = "Free the bound periodicals."; str2 = str1; //值相等,且为同一个对象 System.out.println("String1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); //通过“==”运算符可以判断两个“对象”是否相同 System.out.println("Same value? " + str1.equals(str2)); str1 = "Free the bound periodicals."; str2 = new String(str1); //值相等,但非同一个对象 System.out.println("\nString1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); System.out.println("Same value? " + str1.equals(str2)); str1 = "Free the bound periodicals."; str2 = str1; str1 = "I'v changed it."; //并非修改str1的值。看似修改str1的值,其实是创建一个新对象,然后修改str1的引用 //不同值,不同对象 System.out.println("\nString1: " + str1); System.out.println("String2: " + str2); System.out.println("Same object? " + (str1 == str2)); System.out.println("Same value? " + str1.equals(str2)); }}他问的不是这个你说明的是引用的不同 使用如下格式将a.txt复制到b.txt结果发现字节数不一样,为什么类? [转贴] 论J2EE程序员武功修为(有点意识哈!) java怎么打开FTP服务器上的文件? 请问一个字符串分割的问题 程序查不出问题 高手帮帮忙 一道华为面试题目. 100分咨询,这样的程序你们怎么开发???????????? 有没有Together for Eclipse 6.2的注册机 ***外企的JAVA试题,谁会做,请给答案****** 关于数据类型的问题 请帮忙调试一个小毛病关于setHorizontalScrollBarPolicy的! 怎么把整型变量转成0bject
是将str指向了String类实例池中的常量"hello"(Java考虑到效率问题专门维持了一个String的实例池)
String str=new String("hello")
是new了一个实实在在的String对象,它的值为"hello"
public static void main(String[] arguments){
String str1, str2;
str1 = "Free the bound periodicals.";
str2 = str1; //值相等,且为同一个对象
System.out.println("String1: " + str1);
System.out.println("String2: " + str2);
System.out.println("Same object? " + (str1 == str2)); //通过“==”运算符可以判断两个“对象”是否相同
System.out.println("Same value? " + str1.equals(str2)); str1 = "Free the bound periodicals.";
str2 = new String(str1); //值相等,但非同一个对象
System.out.println("\nString1: " + str1);
System.out.println("String2: " + str2);
System.out.println("Same object? " + (str1 == str2));
System.out.println("Same value? " + str1.equals(str2)); str1 = "Free the bound periodicals.";
str2 = str1;
str1 = "I'v changed it."; //并非修改str1的值。看似修改str1的值,其实是创建一个新对象,然后修改str1的引用 //不同值,不同对象
System.out.println("\nString1: " + str1);
System.out.println("String2: " + str2);
System.out.println("Same object? " + (str1 == str2));
System.out.println("Same value? " + str1.equals(str2));
}
}
是创建一个"hello"字符串对象的副本
是将str指向了String类实例池中的常量"hello"(Java考虑到效率问题专门维持了一个String的实例池)String str=new String("hello")
是new了一个实实在在的String对象,它的值为"hello"
str 只是一个指向"hello"的引用
public static void main(String[] arguments){
String str1, str2;
str1 = "Free the bound periodicals.";
str2 = str1; //值相等,且为同一个对象
System.out.println("String1: " + str1);
System.out.println("String2: " + str2);
System.out.println("Same object? " + (str1 == str2)); //通过“==”运算符可以判断两个“对象”是否相同
System.out.println("Same value? " + str1.equals(str2)); str1 = "Free the bound periodicals.";
str2 = new String(str1); //值相等,但非同一个对象
System.out.println("\nString1: " + str1);
System.out.println("String2: " + str2);
System.out.println("Same object? " + (str1 == str2));
System.out.println("Same value? " + str1.equals(str2)); str1 = "Free the bound periodicals.";
str2 = str1;
str1 = "I'v changed it."; //并非修改str1的值。看似修改str1的值,其实是创建一个新对象,然后修改str1的引用 //不同值,不同对象
System.out.println("\nString1: " + str1);
System.out.println("String2: " + str2);
System.out.println("Same object? " + (str1 == str2));
System.out.println("Same value? " + str1.equals(str2));
}
}他问的不是这个
你说明的是引用的不同