总站首页 | 我要入驻 | 招生合作 | 您好,欢迎访问育优汇,希望本篇文章能够给您带来帮助!
育优汇网 > 动态汇总 > IT培训中心> 广州Java培训机构前十名

广州Java培训机构前十名

机构:IT培训中心 时间:2021-06-03 16:51:40 点击:81

导语概要

2013年06月 北大青鸟锦江青羊校区成立;2013年03月 荣获四川教育行业诚信品牌机构;2012年12月 获得成都电视台教育总评榜“最具社会责任品牌学校”;2012年12月 校长陈小林先生荣登北大青鸟职业教育研究促进中心常任理事;2011年01月 整体合并北大青鸟时代校区;2011年05月 整体合并北大青鸟金牛校区...


IT培训机构

Java编译器中对string对象的优化

首先把问题摆出来,先看这个代码:

String a = "ab"; String b = "a" + "b";System.out.println((ab));

打印结果会是什么?类似这样的问题,有人考过我,我也拿来考过别人(蛮好玩的,大家也可以拿来问人玩),一般答案会是以下几种:

1、true

"a" + "b" 的结果就是“ab”,这样a,b都是“ab”了,内容一样所以“相等”,结果true。

一般Java新人如是答。

2、false

"a" + "a"会生成新的对象“aa”,但是这个对象和String a ="ab";不同,(ab)是比较对象引用,因此不相等,结果false。

对Java的String有一定了解的通常这样回答。

3、true

String a = "ab";创建了新的对象“ab”;再执行String b = "a"+"b";结果b="ab",这里没有创建新的对象,而是从JVM字符串常量池中获取之前已经存在的“ab”对象。因此a,b具有对同一个string对象的引用,两个引用相等,结果true。

能回答出这个答案的,基本已经是高手了,对Java中的string机制比较了解。

很遗憾,这个答案是不够准确的。或者说,根本没有运行时计算b = "a" + "b";这个操作。实际上运行时只有String b="ab";。

3的观点适合解释以下情况:

String a = "ab"; String b = "ab"; System.out.println((a b));

如果String b = "a"+"b";是在运行期执行,则3的观点是无法解释的。运行期的两个string相加,会产生新的对象的。(本文后面对此有解释)

4、true

下面是我的回答:编译优化+ 3的处理方式 = 最后的true

String b = "a" + "b";编译器将这个"a"+"b"作为常量表达式,在编译时进行优化,直接取结果"ab",这样这个问题退化。

String a = "ab"; String b = "ab"; System.out.println((a b));

然后根据3的解释,得到结果true。

IT培训学校学员作品

IT培训学校推荐课程
  • IT培训机构课程

    大数据

  • IT培训机构课程

    智能物联网

  • IT培训机构课程

    Unity游戏开发

  • IT培训机构课程

    网络安全

  • IT培训机构课程

    互联网营销

  • IT培训机构课程

    影视剪辑包装

2014年12月 总校长荣获北大青鸟卓越教育风云人物奖及北大青鸟职业教育研究促进中心理事;;2014年12月 被成都市民政局评为3A级社会组织,2014年12月 成都锦江荣获成都晶报颁发的年度“最值得信赖教育品牌奖”;2014年12月 荣获教育机构“榜中榜”年度最强师资;2014年12月 荣获教育机构“榜中榜”年度最佳就业机构奖。2014年03月 荣获“质量放心用户满意双优品牌”奖牌;2014年02月 为成都软件行业的行业协会理事单位,成都互联网协会会员;2013年12月 校长陈小林先生荣获职业教育研究促进中心理事聘书;2013年12月 被荣获成都市社会组织规范化服务型示范党组织;2013年12月 荣获北大青鸟春华奖;2013年06月 成为成都市人力资源和社会保障局职业教育协会理事单位,*人保部授权OSTA认证培训中心。


IT培训中心

IT课程分类

  • IT课程推荐

    HTML5

  • IT课程推荐

    Java

  • IT课程推荐

    Python

  • IT课程推荐

    全链路设计

  • IT课程推荐

    云计算

  • IT课程推荐式

    软件测试