栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

常见Java面试题 – 非可变性(Immutability)和对象引用(Object reference)

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

常见Java面试题 – 非可变性(Immutability)和对象引用(Object reference)

Q1.下面的代码片段会输出什么?

1234String s = " Hello ";s += " World ";s.trim( );System.out.println(s);

A1.正确输出是” Hello  World “。(注意:前后都带空格)

由于字符串前后都有空格,因为有些人可能会认为结果是”Hello World”。那么,这个题目想要考察的是什么呢?

1.  字符串对象(String Object)是非可变的(immutable),这个题目容易迷惑人的地方在s.trim( )这一行。

2.  理解对象引用和不可达对象会由垃圾回收器收集。

上面的代码也可以改写成如下方式:

123StringBuilder sb = new StringBuilder(" Hello ");sb.append(" World ");System.out.println(sb.toString().trim( ));

StringBuilder不是一个线程安全的类,因此仅仅用作本地变量是没有问题的。如果你希望用作实例变量,那么可以选择线程安全的StringBuffer类。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/264141.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号