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

来源:2-1 什么是 Java 中的字符串

尤克里里丶

2018-08-22 15:08

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

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


String hobby ="爱慕课";         

String url = "www.imooc.com";  

 


写回答 关注

5回答

  • 慕函数3663653
    2018-08-22 16:05:21
    已采纳

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

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

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

    尤克里里丶

    了解

    2018-08-22 16:25:44

    共 1 条回复 >

  • 慕标5588573
    2019-02-23 15:11:23

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

  • 渐大
    2019-02-08 06:31:25
    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  );	}}


  • 伊万诺维奇
    2018-08-25 20:23:06

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

  • 慕圣4395315
    2018-08-22 16:22:15

    这个我不懂

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409772 学习 · 4341 问题

查看课程

相似问题