新闻中心> 文章详情

南京Java培训之常见Java面试题(系列一):非可变性和对象引用

2016年04月08日

  一些比较核心的Java问题经常会用来考验面试者的Java基本知识功底。这篇文章南京万和Java培训列出来了一些常见的面试题,通过这些面试题大家也可以梳理一下Java基础知识点。


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



  A1.正确输出是“Hello  World”。


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


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


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


  顺着这个题目,你觉得还可以考察哪些概念呢?


  1. 例如,上面的代码中一共会生成几个字符串对象,什么时候这些对象会变成不可达对象从而被垃圾回收器回收。


  2. 又比如,上面的代码的效率如何?


  最好的解释方式是南京万和Java培训通过一个图表来说明,如下:



  如果需要输出前后没有空格的”Hello World”,那么应该将s.trim( )再赋值给”s”。这个赋值操作可以让s指向新创建出来的字符串对象。


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



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


  以上是南京万和Java培训机构讲师对于非可变性(Immutability)和对象引用(Object reference)面试题的详解,后续会为大家提供更多的面试题讲解,希望大家能有所收获。


上一篇下一篇
按时发顺丰

技术交流群

Java大数据交流群560819979    加入
Python技术交流群595083299    加入
Oracle技术交流群595119011    加入
Web前端技术交流群604697610    加入
Huawei技术交流群482919361    加入
Redhat技术交流群587875348    加入
UI设计技术交流群511649801    加入
Cisco技术交流群596886705    加入
IT运维技术交流群605888381    加入