String字面值对象和构造方法创建对象的区别:String s = new String("hello")和String s = "hello";的区别
2015-05-12 16:43
831 查看
* String s = new String("hello")和String s = "hello";的区别
* 前者会创建2个或者1个对象,后者会创建1个或者0个对象。(因为前者去方法区找如果找到了"hello"就不用创建了)
* ==:比较引用类型比较的是地址值是否相同
* equals:比较引用类型默认也是比较地址值是否相同,
* 而String类重写了equals()方法,比较的是内容是否相同
总结:==和equals的区别?
A:==,基本类型:比较的是值是否相同你个;
引用类型:比较的是地址值是否相同
B:equals(),只能比较引用类型,默认请情况下,比较的是地址值是否相同,但是
我们可以重写该方法
* 前者会创建2个或者1个对象,后者会创建1个或者0个对象。(因为前者去方法区找如果找到了"hello"就不用创建了)
* ==:比较引用类型比较的是地址值是否相同
* equals:比较引用类型默认也是比较地址值是否相同,
* 而String类重写了equals()方法,比较的是内容是否相同
package 常见对象_String; public class StringDemo3 { public static void main(String[] args) { String s2 = new String("hello");//创建2个对象 在方法区创建"hello",在堆里面创建new s2对象 String s1 = "hello"; System.out.println(s1==s2);//false System.out.println(s1.equals(s2));//true } }内存图:
总结:==和equals的区别?
A:==,基本类型:比较的是值是否相同你个;
引用类型:比较的是地址值是否相同
B:equals(),只能比较引用类型,默认请情况下,比较的是地址值是否相同,但是
我们可以重写该方法
相关文章推荐
- String字面值对象和构造方法创建对象的区别的两个有关==和equals的面试题。
- java语言基础(53)——String 字面值对象和构造方法创建对象的区别
- String字面值对象和构造方法创建对象的区别的两个有关==和equals的面试题。
- 1105 Java中String字面值对象和构造方法创建对象的区别
- 常见对象_String字面值对象和构造方法创建对象的区别
- java面试题:String字面值对象和构造方法创建对象的区别
- javascript中""和new创建String对象的区别
- 面试题--String s=new String("xyz"); 创建了几个对象
- String s=new String("abc")创建了几个对象?
- Java中String str = new String("abc")创建了几个对象
- String s=new String("abc")创建了几个对象?
- String a=new String("b","c")会创建几个对象?
- 自己来试着笔记(zhongjie)一下面试大题之一(String s = new String("xyz");创建了几个对象? )
- 关于String s = new String("xyz"); 创建几个对象的问题
- Java基础:创建String对象时,String s=new String("abc")和String s="abc"的区别
- String str=newString("abc")创建了多少个对象
- String s=new String("abc")创建了几个对象?
- String s=new String("abc")创建了几个对象?
- String str = new String("xyz") 会创建几个对象
- String str = "hello"; 与 String str = new String("hello"); 有什么区别?