您现在的位置: 爱51代码网 >> 范文 >> 文章正文
java里面String s="a"+"b"+"c"+"d"一共创建了多少个对象

java里面String s="a"+"b"+"c"+"d"一共创建了多少个对象
下面这条语句一共创建了多少个对象: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

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    sharepoint 2010 获取用户信息Us
    设计包含max函数的队列
    随机从数组中取出指定的不重复的
    mysql主从同步延迟方案解决的学习
    青岛科学六年级下册教材分析
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    保险受益人制度相关问题的探讨
    初中生地理读图能力培养的研究
    搞笑生日祝福
    数组有没有length()这个方法
    php数据库操作类代码(增,删,
    could not initialize proxy
    Spring Bean 生命周期 三种表
    Netty4 SEDA 事件驱动原理分
    单片机交通灯问题
    Android Parcelable和Serial
    Android中利用Fragment显示为
    HTTP 错误 500.19 - Interna
    如何获取别人访问我图片的ip
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |