关于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)); }}他问的不是这个你说明的是引用的不同 求助 javabean的打包问题 我很迷茫,思想很乱! 为什么有的类种声明一个变量后,在这个类中不去使用.大概声明的目的是什么啊 关于applet的问题! 求一个基于http的文件传输工具,500分 我有一个byte数组,编码格式是UNICODE的,想转化成GB 一个数值三种表达方式的不同在哪里? 怎样才能不让JTextArea组件接受键盘的输入 关于RMI 请帮忙调试一个小毛病关于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));
}
}他问的不是这个
你说明的是引用的不同