zoukankan      html  css  js  c++  java
  • 70 String(一)——字面量与new以及一个重要的面试题

    字面量就是123 'a' "fff"等如此的直接量。

    在创建变量初始化值推荐使用字面量,因为使用字面量可以实现复用。而使用new则必定在内存在开辟新的空间。

    字面量示例

    String str1 = "123";
    String str2 = "123";
    String str3 = "12";
    str3 = str3 +"3";
    System.out.println(str1==str2);//比较的是地址,此时为true
    System.out.println(str1==str3);//false,因为str3指向的不是内存中第一个被创建的“123”
    

      

    new与字符串内容比较

    使用new必然在内存中开辟空间。

    String str1 = “123”;
    String str2 = new String("123");
    System.out.println(str1==str2);//false,因为new开辟了新空间,没有重用第一个“123”
    

      

    一个重要的面试题

    String str1 = "123abc";
    String str2 = "123"+"abc";
    String str3 = "123";
    String str4 = str3+"abc";
    System.out.println(str1==str2);//true
    System.out.println(str1==str4);//false
    

      

    第一个结果为true,是因为java在编译时,发现它这行的“123”与“abc”都是永恒不变的,所以在编译时直接把这一行(第2行)看做String str2 = "123abc";了,所以它与str1指向的是同一个地址。

    第二个结果为false,因为str4是拼接了一个变量,它先开辟一个空间,把拼接的变量的值放过来,在拼接上后续的内容,所以str4指向的不是第一个“123abc”对象。

  • 相关阅读:
    JMeter之录制脚本
    好的软件测试人员简历是什么样子的?
    好的软件测试人员简历是什么样子的?
    luogu P2002 消息扩散
    luogu P1726 上白泽慧音
    luogu P1038 神经网络
    luogu P1418 选点问题
    luogu P1824 进击的奶牛
    luogu P1330 封锁阳光大学
    luogu P1546 最短网络 Agri-Net
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12083764.html
Copyright © 2011-2022 走看看