16、final关键字的作用?
1、final 修饰的类不能被继承。
2、final 修饰的方法不能被重写。
3、final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。
17、throw和throws的区别?
throw:用于抛出一个具体的异常对象。
throws:用在方法签名中,用于声明该方法可能抛出的异常。子类方法抛出的异常范围更加小,或者根本不抛异常。
18. Java8的新特性有哪些?
Lambda 表达式:Lambda允许把函数作为一个方法的参数
Stream API :新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中默认方法:默认方法就是一个在接口里面有了一个实现的方法。
Optional 类 :Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。
Date Time API :加强对日期与时间的处理。
19. 什么是反射?
动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。
在运行状态中,对于任意一个类,能够知道这个类的所有属性和方法。对于任意一个对象,能够调用它的任意一个方法和属性。
20. 反射有哪些应用场景呢?
1. JDBC连接数据库时使用 Class.forName() 通过反射加载数据库的驱动程序
2. Eclispe、IDEA等开发工具利用反射动态解析对象的类型与结构,动态提示对象的属性和方法
3. Web服务器中利用反射调用了Sevlet的 service 方法
4. JDK动态代理底层依赖反射实现