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,这说明javac编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。
    题目中的第一行代码被编译器在编译时优化后,相当于直接定义了一个”abcd”的字符串,所以,上面的代码应该只创建了一个String对象。写如下两行代码,
               String s ="a" + "b" + "c" + "d";
               System.out.println(s== "abcd");
    最终打印的结果应该为true。

  • 相关阅读:
    DML数据操作语言练习
    表的操作练习
    20151218--地区导航习题
    20151217--Ajax的一点补充
    02151216--Ajax
    json(转)
    Node.js(转) -- 临时来说还看不懂!
    20151113--JSTL
    20151210--MVC
    链表(转)
  • 原文地址:https://www.cnblogs.com/programb/p/12879384.html
Copyright © 2011-2022 走看看