zoukankan      html  css  js  c++  java
  • 下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"?

    对于如下代码:

    String s1 = "a";

    String s2 = s1 + "b";

    String s3 = "a" + "b";

    System.out.println(s2 == "ab");

    System.out.println(s3 == "ab");

    第一条语句打印的结果为false,第二条语句打印的结果为true

    Java会在编译时对字符串相加进行优化处理,如果整个表达式中所有参与运算的都是字符串直接量,Java会在编译时就把这个表达式的值计算出来,然后直接将结果赋值给字符串引用变量。因此上面题目中定义的String s = "a" + "b" + "c" + "d";实际上相当于直接定义了"abcd"的字符串直接量,所以,上面的代码应该只创建了一个String对象。

    而且这个字符串直接量会被放入字符串缓存池中。如下两行代码,

    String s = "a" + "b" + "c" + "d";

    System.out.println(s == "abcd");

    由于s引用了字符串缓存池中的"abcd"字符串,因此上面输出结果应该为true

  • 相关阅读:
    AppleID的双重认证
    swift 分组tableview 设置分区投或者尾部,隐藏默认间隔高度
    swift 警告框
    数组
    循环结构(二)
    循环结构
    选择结构
    选择结构
    变量 数据类型和运算符
    (五)Spring 中的 aop
  • 原文地址:https://www.cnblogs.com/programb/p/14068493.html
Copyright © 2011-2022 走看看