【译】十个刁钻的 Java 面试题

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【译】十个刁钻的 Java 面试题脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

原文地址:https://dzone.com/articles/10...

这里列出了十个常见而又刁钻的 Java 开发人员面试题及答案,这些题目是我从 StackOverflow 上找来的。如果你是初中级 Java 开发人员,而且近期准备面试的话,这些题目可能对你有些帮助。

Q1: Java 是“传引用”的还是“传值”的?

答:Java 总是传值的。关于这点的详细论述请参考 Is Java “pass-by-reference” or “pass-by-value”?

Q2: 如何用 Java 构建一个内存溢出的场景?

答:可以用一个类加载器(class loader)和 ThreadLocal 来实现。详情参考 Creating a memory leak in Java

Q3: 成员修饰符 package privatepublicprotectedPRivate 之间的区别是什么

答:

  • private 成员只能在当前类中访问到。
  • package private 成员(即没有访问修饰符的成员)可以在当前包下的所有类中访问到。
  • protected 成员可以在当前包下的所有类和其他包下的所有子类中访问到。
  • public 成员可以在所有类中访问到。

更详细的解释在@L_304_9@。

Q4: HashMap 和 Hashtable 的区别在哪里?

答:Hashtable 是同步的,而且不允许 key 或 value 为 null。详情参考 differences between HashMap and Hashtable

Q5: 有哪些可以避免 != null 语句(非空校验)的方法?

答:一种方法是用 assert 断言。自定义的注解(annotation)也可以用来做非空校验。详情参考 How to avoid != null Statements

Q6: 在 Java 中,“finally” 块是一定会执行的吗?

答:在以下情形中不会执行:遇到“System.exIT()”、遇到无限循环、遇到系统崩溃之类的。详情参考 Does finally always execute in Java?

Q7: Java 中可以在一个构造函数里面调用另一个构造函数吗?

答:可以,但也只能调用一次其他构造函数,并且必须是本构造函数的第一条语句。详情参考 How do I call one constructor from another in Java?

Q8: “implements Runnable” 和 “extends Thread” 相比哪种方式更好?

答:最好是用“implements Runnable”的方式。详情参考 Implements Runnable vs. Extends Thread

Q9: Java 中可以从内嵌的多层循环中跳出吗?

答:可以。这里有一个例子:Breaking out of nested loops in Java

Q10: 什么是反射(reflection),反射有什么用?

答:反射是一种用于探测同一系统内的其他代码的代码机制。它的具体作用请参考:Why Reflection is useful

脚本宝典总结

以上是脚本宝典为你收集整理的【译】十个刁钻的 Java 面试题全部内容,希望文章能够帮你解决【译】十个刁钻的 Java 面试题所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。