java初级工程师面试问题
时间: 2024-01-31 14:03:37 浏览: 97
以下是一些Java初级工程师面试问题的例子:
1. 为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?
在Java中,线程的启动是通过调用start()方法来实现的。start()方法会启动一个新的线程,并在新线程中执行run()方法。如果直接调用run()方法,那么run()方法将在当前线程中执行,而不会创建新的线程。这样做的目的是为了实现多线程并发执行,提高程序的效率。
2. JDK自带的三个类加载器是什么?它们的作用是什么?
JDK自带的三个类加载器分别是BootstrapClassLoader、ExtClassLoader和AppClassLoader。
- BootstrapClassLoader是ExtClassLoader的父类加载器,默认负责加载%JAVA_HOME%lib下的jar包和class文件。
- ExtClassLoader是AppClassLoader的父类加载器,负责加载%JAVA_HOME%/lib/ext文件夹下的jar包和class类。
- AppClassLoader是自定义加载器的父类,负责加载classpath下的文件,系统类加载器,线程上下文加载器。
3. Java中的异常体系有哪些?
Java中的异常体系分为两种类型:可检查异常(Checked Exception)和不可检查异常(Unchecked Exception)。
- 可检查异常是指在编译时必须进行处理的异常,例如IOException、SQLException等。处理方式可以是捕获异常并进行处理,或者在方法签名中声明抛出异常。
- 不可检查异常是指在编译时不需要进行处理的异常,例如NullPointerException、ArrayIndexOutOfBoundsException等。这些异常通常是由程序错误引起的,处理方式是通过编写健壮的代码来避免这些异常的发生。
阅读全文