50+ Java Interview Questions for Programmers
Hello, guys! Recently, I have been sharing a lot of Java Interview questions and discussion individually, and many of my readers requested to bring them together so that they can have them in the same page and prepare better and this post is the result of that.
本文包含了 50个Java面试问题,涵盖了所有重要主题,例如核心Java基础知识,Java Collection Framework,Java多线程和并发,Java IO,JDBC,JVM内部,编码问题,面向对象的编程, 等等
这些问题也可以从各种访谈中找到,它们绝非易事,您可能已经在电话或面对面的访谈中看到了它们。
这些问题对于修订诸如多线程和集合之类的重要主题也非常有用,因为我还分享了一些有用的资源以进行进一步的学习和改进,例如The Complete Java MasterClass,以弥补和弥补您的Java技能空白。
因此,我们在这里等待的是来自2到5年经验的初学者和经验丰富的Java开发人员的访谈中一些常见的Java问题列表:
Java面试问答
1) Java如何实现平台独立性? (答案)提示:字节码和Java虚拟机
2) Java中的
3)编写Java程序以检查数字是偶数还是奇数? (答案)提示:您可以使用按位运算符,例如 按位与
4) Java中
5)什么是Singleton中的双重检查锁定? (answer)提示:两次检查实例是否已初始化,第一个没有锁定,第二个有锁定。
6)如何在Java中创建线程安全的Singleton? (answer)提示:很多方式,例如 使用Enum或使用双重检查的锁定模式或使用嵌套的静态类。
7)何时在Java中使用volatile变量? (答案)提示:当您需要指示JVM变量可以被多个线程修改并向JVM提示不缓存其值的提示时。
8)何时在Java中使用瞬态变量? (answer)提示:当您要在实现了Serializable接口的类中使变量不可序列化时。 换句话说,您可以将其用于不想保存其值的变量。请参阅《完整的Java MasterClass》以了解Java中的瞬时变量。
9)Java中的瞬时变量和易失性变量之间的区别? (答案)提示:完全不同,一种用于序列化,而另一种用于并发。
10)Java中可序列化和可外部化之间的区别? (answer)提示:外部化可让您更好地控制序列化过程。
11)我们可以在Java中覆盖private方法吗? (答案)提示:否,因为它在子类中不可见,这是重写Java方法的主要要求。
12)Java中
提示:几个但最重要的是
13)Java中的
16)
17)对于要在
24)您何时在Java中使用
25)Enum在Java中是类型安全的是什么意思? (答案)提示:这意味着您无法将不同Enum类型的实例分配给Enum变量。 例如 如果您有类似
26)Integer的自动装箱在Java中如何工作? (answer)提示:使用
27)Java中
28)Java中方法重载和重写之间的区别? (answer)提示:覆盖发生在子类上,而重载发生在同一类上。 同样,覆盖是运行时活动,而重载在编译时得到解决。
29)如何防止某个类在Java中被子类化? (answer)提示:只需将其构造函数设为私有
30)您如何限制班级被客户使用? (答案)提示:将构造函数设为私有或抛出构造函数异常
31)Java中的
32)Java中的多态和继承之间的区别? (answer)提示:继承允许代码重用并建立类之间的关系,这是提供动态行为的多态性所必需的。 请参阅Java基础知识:面向对象的设计,以了解有关OOP功能的更多信息。
33)我们可以在Java中覆盖静态方法吗? (answer)提示:否,因为覆盖在运行时解析,而静态方法调用在编译时解析。
34)我们可以使用Java访问私有方法吗? (回答)提示:是的,在同一个班级中,但不在班级外
35)Java中的接口和抽象类之间的区别? (答案)提示:从Java 8开始,区别变得模糊。 但是,Java类仍然可以实现多个接口,但只能扩展一个类。
36)Java中的DOM和SAX解析器之间的区别? (答案)提示:DOM将整个XML文件加载到内存中,而SAX则没有。 它是一个基于事件的解析器,可用于解析大文件,但是DOM速度很快,应该是小型文件的首选。
37)Java中throw和throws关键字之间的区别? (答案)提示:throws声明在发生错误的情况下方法可以抛出的异常,而throw关键字实际上是抛出异常。 请参阅Java基础知识:异常处理以了解有关Java中异常处理的更多信息。
38)Java中的故障安全迭代器和故障快速迭代器之间的区别? (答案)提示:故障安全保护不会在迭代时在基础集合上检测到外部变化时抛出
39)Java中的迭代器和枚举之间的区别? (答案)提示:"迭代器"还使您能够在迭代时删除元素,而"枚举"则不允许这样做。
40)Java中的
41)Java中的
42)
提示:是的,但是您需要使其为静态或瞬态。
43)Java中的this和super之间的区别? (答案)提示:这是指当前实例,而super是指超类的实例。 44)Java中
45)Java中
46)为什么在Java的
47)为什么Java不支持多重继承? (答案)提示:由于对C ++的不良体验,它不支持,但是对于Java 8,从某种意义上说,它不支持-Java现在仅支持
48)Java中已检查和未检查的异常之间的区别? (answer)提示:如果选中,则必须使用catch块处理异常;如果选中,则取决于您; 编译不会打扰您。
49)Java中错误和异常之间的区别? (答案)提示:我已经厌倦了打字,请检查答案
50)Java中竞争条件和死锁之间的区别? (答案)提示:两者都是在并发应用程序中发生的错误,一个是由于线程调度而发生的,而另一个是由于编码不正确而发生的。
其他资源
Java面试指南:200多个面试问题与解答
Java面试指南:200多个面试问题与解答
Spring Framework面试指南-200多个问题与解答
准备面试作者:约翰·桑梅兹(John Sonmez)
Markham公开的Java编程访谈
破解编码面试-189个问题和答案
求职面试的数据结构和算法分析
最近5年130多个Java面试问题感谢阅读本文! 如果您喜欢这些Java核心问题,请与您的朋友和同事分享。 如果您有任何疑问或反馈,请在下面添加注释。