您的位置:首页 > 其它

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()方法,比较的是内容是否相同

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(),只能比较引用类型,默认请情况下,比较的是地址值是否相同,但是

我们可以重写该方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐