vlambda博客
学习文章列表

这10道棘手的Java面试题,你能答对几个?



在Java面试中,我们经常遇到一些棘手的问题,这些问题比较容易出错。


看了几个老外分享的面试题,而且问题都还不错。就整理出10道被大家常提到的问题。


如果是你能否可以说出正确答案呢?

这10道棘手的Java面试题,你能答对几个?

以下Java代码的输出是什么?


这10道棘手的Java面试题,你能答对几个?

点击查看大图


答案:

将打印“num1 == num2”。

每当使用“ == ”比较两个不同的对象引用时,值总是“false”。

但这里,由于 Integer 缓存,num1和 num2都是自动装箱的。因此num1 == num2返回“true”。同时,整数缓存只会发生在-128到127之间的值。

这10道棘手的Java面试题,你能答对几个?

float f=3.4;是否正确?


答案:

不正确。

3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。

这10道棘手的Java面试题,你能答对几个?

以下代码输出的是什么


这10道棘手的Java面试题,你能答对几个?

点击查看大图


答案:

会打印“main method”。

main 方法可以在 Java 中重载。必须从 main 方法内部调用它才能像其他方法一样执行。

这10道棘手的Java面试题,你能答对几个?

下面的代码输出是什么

这10道棘手的Java面试题,你能答对几个?

点击查看大图


答案:

第一句print输出false,第二句print输出true。

因为浮点数的误差舍入,只有2的幂数可以用简单的二进制表示法精确表示。

不对应于2次方的数字必须四舍五入以适应有限数量的位,因此,0.1*3是不等于0.3的。

这10道棘手的Java面试题,你能答对几个?

short s1 = 1; s1 = s1 + 1;有错吗?

short s1 = 1; s1 += 1;有错吗?


答案:

对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。

而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。

这10道棘手的Java面试题,你能答对几个?


Java 是按引用传递还是按值传递?


答案:

Java总是“按值传递”。

然而,当我们传递一个对象的值时,我们传递对它的引用,因为变量存储对象引用,而不是对象本身。

但这不是“引用传递”,这可能会让初学者感到困惑。

这10道棘手的Java面试题,你能答对几个?

下面的代码创建了多少个String对象


这10道棘手的Java面试题,你能答对几个?

点击查看大图


答案:

创建了2个String对象。

一个在方法区中的字符串常量池中,

一个在堆内存中。

这10道棘手的Java面试题,你能答对几个?

有没有可能在 Java 中重写或重载静态方法?


答案:

重载(overload)静态 Java 方法是可能的,但是不可能重写。你可以在子类中编写具有相同命名的另一个静态方法,但它不会重写超类方法。

它在 Java 中被称为方法隐藏。


这10道棘手的Java面试题,你能答对几个?

测试两个double值是否相等的最可靠的方法是什么?


答案:

Double.compare(d1, d2) == 0

这10道棘手的Java面试题,你能答对几个?

如果 try 或 catch 块执行一个 return 语句,finally 块是否会被执行?


答案:

会被执行。

使用System.exit()。是阻止 finally 块执行的办法,且是唯一办法


以下是原文链接,感兴趣朋友可以看下:

https://levelup.gitconnected.com/tricky-java-interview-questions-cfc546fd03ab


10道题到这里就分享完啦,你答对了几道呢?


本文综合整理于网络



  文末福利  

编程免费学啦
↓↓↓
识别二维码,回复‘我要学’
即可参与活动

这10道棘手的Java面试题,你能答对几个?



-End-
         
           
           
         
这10道棘手的Java面试题,你能答对几个?

点击图片即可阅读原文


动动小手,让更多需要的人看到~