Java面试题

Java面试题,第1张

Java面试题 Java相关面试题

1.Object类中的wait()方法

wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法后当前线程被唤醒(进入“就绪状态”)

异常体系

Throwable的子类为Error和Exception。
Exception的子类为RuntimeException(运行时)异常和RuntimeException及其子类以外的(编译)异常(例如IOException)。
主要分为错误、运行时异常和编译时异常。

Error:就是一些程序处理不了的错误,代表JVM出现了一些错误,应用程序无法处理。例如当JVM不再有继续执行 *** 作所需的内存资源时,将出现OutOfMemoryError。运行时异常:RuntimeException及其子类表示JVM在运行期间可能出现的异常,比如:使用空值对象引用(NullPointerException)、数组下标越界(ArrayIndexOutBoundException),此类异常属于不可查异常,在程序中可以选择捕获处理,也可以不处理编译异常:如果程序中出现此类异常,必须对异常进行处理(try catch、throw)否则编译不通过。

throw与throws区别

throw关键字用在方法内部,只能用于抛出一种异常; throws关键字用在方法声明上,可以抛出多个异常,用来标识该方法可能抛出的异常列表

JAVA获取对象的四种方式

使用new创建对象通过反射的方式

Class class = Class.forname("com.heyjia.test.Hello");
Hello hello = (Hello)class.newInstance();

通过clone的方式

Hello hello1 = new Hello();
Hello hello2 = (Hello)hello1.clone();

通过反序列化的方式

反射原理

什么是反射:

动态的获取类的各个属性以及调用它的方法

原理:

通过将类对应的字节码文件加载到jvm内存中得到一个Class对象,通过这个Class对象可以反向获取实例的各个属性(或者修改某个属性)以及调用它的方法。

获取Class对象的方式:

对象.getClass()

类名.class

Class.forName("");

使用场景:

通过反射运行配置文件内容,加载配置文件,并解析配置文件得到相应信息,根据解析的字符串利用反射机制获取某个类的Class实例动态配置属性JDK动态代理jdbc通过Class.forName()加载数据的驱动程序Spring解析xml装配Bean

持续更新中…

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5721567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存