以下是20道常见的Java面试题及其答案,涵盖基础知识、面向对象、异常处理、多线程等内容:
1. 什么是Java?它的主要特点是什么?
答案:
Java是一种面向对象的编程语言,具有以下主要特点:
- 平台无关性(通过JVM实现"一次编译,到处运行")
- 面向对象
- 安全性强
- 自动内存管理(通过垃圾回收机制)
- 多线程支持
- 强大的标准库
2. 什么是JVM、JRE和JDK?
答案:
- JVM(Java Virtual Machine):Java虚拟机,负责运行Java字节码。
- JRE(Java Runtime Environment):运行Java程序所需的环境,包括JVM和标准库。
- JDK(Java Development Kit):Java开发工具包,包含JRE以及编译器
javac
等开发工具。
3. Java中==和equals()有什么区别?
答案:
==
比较的是对象的内存地址,即引用是否相同。equals()
比较的是对象的值(内容是否相等)。例如String
类重写了equals()
方法。
示例:
String a = new String("hello");
String b = new String("hello");
System.out.println(a == b); // false
System.out.println(a.equals(b)); // true
4. 什么是Java中的多态?
答案:
多态是指同一个方法在不同对象上表现出不同的行为。主要通过方法重写(Runtime Polymorphism)实现。
示例:
class Animal {
void sound() {
System.out.println