出5道java面试题
时间: 2023-07-04 11:07:26 浏览: 214
好的,以下是5道Java面试题:
1. Java中什么是多态性?请给出一个例子。
答:多态性是指同一个方法名可以被不同的对象调用,从而实现不同的行为。例如,一个Animal类有一个speak()方法,Dog和Cat类都继承自Animal类并重写了speak()方法。当我们调用一个Animal类型的变量的speak()方法时,实际上会根据这个变量所引用的对象的类型来调用对应的speak()方法。例如:
```
Animal animal1 = new Dog();
animal1.speak(); // 输出 "汪汪汪!"
Animal animal2 = new Cat();
animal2.speak(); // 输出 "喵喵喵!"
```
2. Java中的final关键字有哪些用途?
答:final关键字可以用于修饰类、方法和变量,具体用途如下:
- 修饰类:表示该类不能被继承。
- 修饰方法:表示该方法不能被重写。
- 修饰变量:表示该变量的值不能被修改,如果是基本类型则表示该变量的值不能被改变,如果是引用类型则表示该变量引用的对象不能被改变。
3. Java中的异常处理机制是什么?请给出一个try-catch-finally块的例子。
答:Java中的异常处理机制是指程序在遇到异常时如何处理它,通常使用try-catch-finally块来实现。try代码块中包含可能抛出异常的代码,如果在try代码块中抛出了异常,则会跳转到与之匹配的catch代码块中进行处理,finally代码块中包含一些无论是否抛出异常都需要执行的代码。
例如:
```
try {
int[] arr = new int[5];
arr[10] = 3; // 抛出ArrayIndexOutOfBoundsException异常
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组下标越界!");
} finally {
System.out.println("执行finally代码块!");
}
```
4. Java中什么是线程?如何创建一个线程?
答:线程是指程序中的一条执行路径,与其他线程并发执行。Java中可以通过继承Thread类或实现Runnable接口来创建线程。例如:
```
// 继承Thread类
class MyThread extends Thread {
public void run() {
System.out.println("线程运行中!");
}
}
// 实现Runnable接口
class MyRunnable implements Runnable {
public void run() {
System.out.println("线程运行中!");
}
}
// 创建线程
MyThread t1 = new MyThread();
t1.start();
MyRunnable r1 = new MyRunnable();
Thread t2 = new Thread(r1);
t2.start();
```
5. Java中的HashMap和Hashtable有什么区别?
答:HashMap和Hashtable都是用于存储键值对的数据结构,但有以下区别:
- 线程安全性:Hashtable是线程安全的,而HashMap不是。如果在多线程环境下使用HashMap,需要进行额外的同步处理。
- null值:Hashtable不允许键或值为null,而HashMap允许键或值为null。
- 迭代器:Hashtable的迭代器是Enumeration类型的,而HashMap的迭代器是Iterator类型的。
以上是5道Java面试题,希望能够对您有所帮助。
阅读全文