JavaRush /Java 博客 /Random-ZH /面试中经常被问到的棘手 Java 问题

面试中经常被问到的棘手 Java 问题

已在 Random-ZH 群组中发布
如果您曾经准备过Java 程序员 职位的面试或参加过任何考试(不一定是编程)以获得证书,那么您很可能已经注意到他们提出的问题非常具体。其中许多让您思考语言的架构,有些是为深入了解而设计的。还有一些更像是谜题或关注细微差别,如果不练习就很难感觉到。在本文中,开发人员Saraans Singh提供了几个此类 Java 问题。当然有答案。 面试中经常被问到的 Java 棘手问题 - 11. 如果将 return 或 System.exit() 语句放在 try/catch 块中会发生什么? 这是Java中一个非常流行的“追赶”问题。诀窍在于,许多程序员相信该块finally在任何情况下都会被执行。return这个问题通过在块中放置语句try/catch或从try/catch语句块调用来挑战这个概念System.exit ()这个棘手问题的答案是:当语句放入块中时,该块finally将被执行,而从语句块中调用时,该块将不会被执行。 2. Java支持多重继承吗? 这是一个非常棘手的问题。面试官常说:如果C++可以支持直接多重继承,为什么Java不能? 答案比看起来要复杂一些,因为 Java 支持多类型继承,因为其中的接口可以扩展其他接口。但Java语言不支持实现的多重继承。 3、父类中的方法抛出异常的情况下,是否可以被抛出异常的方法覆盖 另一个棘手的问题与重载和覆盖的概念有关。 答案:您可以在重写的方法中安全地抛出父类异常,但不能对类型为受检查的异常执行相同的操作。 4、如何保证线程能够访问资源而不发生死锁? 如果您不太擅长编写多线程代码,那么这个问题对您来说将非常棘手。即使对于没有处理过死锁和竞争条件的经验丰富的程序员来说,这也可能具有挑战性。这里的技巧在于顺序:可以通过按照与获取资源的相反顺序释放资源来防止死锁。 5.类和Java语言中的类有什么区别?returntry/catchtry/catchSystem.exit ()NullPointerExceptionRuntimeExceptionNullPointerException – RuntimeExceptionExceptionNNStringBufferStringBuilder 这是一个关于 Java 语言的经典问题,一些开发人员认为很棘手,而另一些开发人员则认为非常简单。该类StringBuilder是在 JDK 1.5 中引入的,它们之间的唯一区别是该类的方法StringBuffer(例如length()capacity()append()是同步的,而该类的相应方法StringBuilder则不是。由于这种根本区别,字符串连接StringBuilder速度更快StringBuffer。事实上,StringBuffer不建议使用,因为在 99% 的用例中,字符串连接是在同一个线程上完成的。 6. 表达式 1.0/0.0 返回什么?会抛出异常或者导致编译错误吗? 另一个关于班级的棘手问题Double。尽管 Java 开发人员知道简单数据类型 double 和 class Double,但在执行浮点运算时,他们并没有对Double.INFINITYNaN以及-0.0管理与它们相关的算术计算的规则给予足够的关注。 这个问题的答案很简单:ArithmeticException不会抛出异常,会返回值Double.INFINITY7. 如果尝试将HashMap一个键对象插入到一个已经存在的键对象中,会发生什么情况? 这个棘手的问题是另一个常见问题的一部分:它们HashMap在 Java 中如何工作?HashMap是有关 Java 语言的令人困惑和棘手问题的热门主题。 答案是,如果您尝试将密钥重新插入到 中HashMap,它将替换旧的密钥,因为该类HashMap不允许重复的密钥。相同的密钥意味着相同的哈希码,因此它最终会出现在哈希段中的相同位置。基于Quora 的材料
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION