为了账号安全,请及时绑定邮箱和手机立即绑定

两种定义出来的结果一样,这中间的具体区别在哪儿?

String hobby = new String("爱慕课");         

String url =   new String("www.imooc.com");    


String hobby ="爱慕课";         

String url = "www.imooc.com";  

 


正在回答

5 回答

就单独这两行代码来说最终的结果是没有区别的,但如果你在这段逻辑之前还有一段比如说,String hobby1 = "爱慕课";  就有区别了。

按你的第一种初始化方式就是另外选一个内存地址,然后这个对象指向这个地址;

第二种方式是hobby对象与hobby1指向同一个内存地址。

4 回复 有任何疑惑可以回复我~
#1

尤克里里丶 提问者

了解
2018-08-22 回复 有任何疑惑可以回复我~

一个是常亮,一个是引用对象,一个可以直接用类名+hobby的形式调用,一个必须new的对象带调用

0 回复 有任何疑惑可以回复我~
public class HelloWorld {    public static void main(String[] args) {        //定义字符串		String hobby = "爱慕课";		int hashCode = System.identityHashCode(hobby);		System.out.println( hashCode );		System.out.println("hobby:" +  hobby );		String hobby1 = "爱慕课";		int hashCode1 = System.identityHashCode(hobby1);		System.out.println( hashCode1 );		System.out.println("hobby1:" +  hobby1 );		String hobby2 = new String("爱慕课");		int hashCode2 = System.identityHashCode(hobby2);		System.out.println( hashCode2 );		System.out.println("hobby2:" +  hobby2 );		//String url = "www.imooc.com";                    //String url1 = new String("www.imooc.com");        //输出字符串		//System.out.println("url:" +  url  );	}}


0 回复 有任何疑惑可以回复我~

就楼主举例来看,使用new会创建2个对象,一个是“爱慕课”,一个是new出来给hobby引用的对象;使用操作符只是创建一个。

1 回复 有任何疑惑可以回复我~

这个我不懂

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

两种定义出来的结果一样,这中间的具体区别在哪儿?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信