String 定义的问题? 效率差别不是非常大,但是意义不一样,第一个是定义一个新的字符串,第二个是将str指向"dd"这个字符串 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 "dd"本身是一个String对象则String str = "dd";仅仅是将"dd"这个对象的引用赋给了str而String str = new String("dd");是根据"dd"这个String对象再次构造一个String对象,将新构造出来的String对象的引用赋给str所以当然是不一样的了 java 中只有定义String能不用new String()方法,两句没有区别 String str= new String("dd");这个会生成一个新的对象String str="dd";这个只是一个引用,内存中如果有“dd"的话,str就指向它,如果没有才创建 依现在的CPU和内存来讲根本看不出任何差别。但两者确实有着本质上的差距。你可以自己想一下是传一个应用给String快,还是创建一个对象后再将这个对象的引用赋给String快呢? public class Str { public static void main(String[] args) { String str1 = new String("dd"); String str2 = "dd"; System.out.println(str1 == str2); //这里是比较引用,输出为false System.out.println(str1.equals(str2)); // 这里比较的是引用指向的对象的值,都是'dd',输出为true }} dancingflyer() 说的完全正确 javaCandelaboy(java初学着):public class Str { public static void main(String[] args) { String str1 = new String("dd"); String str2 = "dd"; System.out.println(str1 == str2); //这里是比较引用,输出为false System.out.println(str1.equals(str2)); // 这里比较的是引用指向的对象的值,都是'dd',输出为true }}问:当中str1自然是对象了,那么str2是否也是一个String 对象?还是,只是一个指向"dd"字符串的引用而儿?就像C++中的指针? String 对象和String变量怎么能一样那?建议你好好看看基础其实这也是面向对象的特点 紧急的基础问题:java中的socket对象会不会自动将字节序转化为网络字节序。 又是正则表达式问题 关于父类的父类方法的调用 100分的问题! 一个方法中出现的异常什么时候应该抛出来,什么时候应该在方法里处理? 各位大侠,小弟想做一串口异步通信协议,不知道用java能不能做啊 关于int和String类型间的强制转换 有种声音格式AMR后缀的文件,问AMR的Content-Type是什么? 请问哪里有JB6下载? 谁知道textpad的注册码呀? 问System.err.*的用法 还是我还是java打印问题 文本图片打印如何分页(对不起!我只有10分了)
则String str = "dd";
仅仅是将"dd"这个对象的引用赋给了str
而String str = new String("dd");
是根据"dd"这个String对象再次构造一个String对象,将新构造出来的String对象的引用赋给str所以当然是不一样的了
String str="dd";这个只是一个引用,内存中如果有“dd"的话,str就指向它,如果没有才创建
但两者确实有着本质上的差距。
你可以自己想一下是传一个应用给String快,还是创建一个对象后再将这个对象的引用赋给String快呢?
public static void main(String[] args) {
String str1 = new String("dd");
String str2 = "dd"; System.out.println(str1 == str2);
//这里是比较引用,输出为false System.out.println(str1.equals(str2));
// 这里比较的是引用指向的对象的值,都是'dd',输出为true
}
}
public static void main(String[] args) {
String str1 = new String("dd");
String str2 = "dd"; System.out.println(str1 == str2);
//这里是比较引用,输出为false System.out.println(str1.equals(str2));
// 这里比较的是引用指向的对象的值,都是'dd',输出为true
}
}
问:当中str1自然是对象了,那么str2是否也是一个String 对象?还是,只是一个指向"dd"字符串的引用而儿?
就像C++中的指针?
其实这也是面向对象的特点