面试题java开发中遇到的难点,java开发笔试题总结
如何解决写爬虫IP受阻的问题?立即使用。
一、Java 中的final关键字有哪些用法?
修饰变量必须初始化,否则不能修改,修饰类不能继承,修饰方法不能重写。
(更多面试问题推荐:java常见面试问题)
二、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?
执行将在执行return之后但在返回结果之前执行。return会将返回的结果放在函数堆栈上,并在真正返回之前等待finally完成。
三、阐述final、finally、finalize的区别。
Final用于修改类(不能继承)、变量(不能修改,只能赋值一次)、方法(不能重写)。
Finally是一个finally块,用于执行try{}catch执行过程中是否有异常捕捉,关闭资源等。
Finalize是方法的名称,是对象的最后一个字,用于垃圾收集器收集和清理对象之前要执行的方法。它是在Object类中定义的,所有的类都继承它。
(相关教程推荐:java入门教程)
四、如何通过反射创建对象?
通过类对象的newInstance()方法创建类对象对应类的实例。
使用Class对象获取指定的Constructor对象,调用Constructor对象的newInstance()方法创建Class对象对应类的实例。
五、Java 8的新特性
1.Java 8引入了函数接口的概念。Lambda允许函数作为方法的参数,或者代码作为数据。
2.接口的默认方法和静态方法。在接口中定义默认方法,使用default关键字,并提供默认实现。所有实现此接口的类都将接受默认方法的实现,除非子类提供自己的实现,在接口中定义静态方法,并使用static关键字,或者提供实现。
3.方法引用,结合Lambda表达式。
(1)构造函数参考。语法Class:new
(2)静态方法引用。语法是Class:static_method
(3)特定类的任何对象方法引用。它的语法是Class:method
(4)特定对象的方法引用,语法为instance:method
4.Java 8引入了重复注释,同一个注释可以在同一个地方声明多次。注释机制本身需要用@Repeatable进行注释。Java已经在编译器层面进行了优化,同样的注释会保存为一个集合,所以底层原理没有改变。
5.扩展对注释的支持。java 8扩展了注释的上下文,几乎可以给任何东西添加注释,包括局部变量、泛型类、父类和接口的实现,甚至方法的异常。
6.引入可选类防止空指针异常。可选类实际上是一个容器:它可以保存类型T或null的值。有了可选类,我们不必显式地检查空指针。
(视频教程推荐:java课程)
7.引入Stream API和函数式编程风格,让代码变成一系列连续并行的聚合操作,简单明了。
8.JavaScript引擎Nashorn。Nashorn允许在JVM上开发和运行JavaScript应用程序,并允许Java和JavaScript相互调用。
9.Base64,Base64类提供URL和MIME友好的编码器和解码器。
10.日期/时间API (JSR 310)提供了新的java.time包,可以用来替换java.util.Date和java.util.Calendar一般使用Clock、LocaleDate、LocalTime、LocaleDateTime、ZonedDateTime、Duration等类,对于时间和日期的改进非常好。
除了这十项新功能,还有一些其他新功能:
更好的类型推测机制:Java 8对类型推测做了很大的改进,使得代码更加干净,不需要太多的强制类型转换。
编译器优化:Java 8在字节码中加入了方法的参数名,这样在运行时可以通过反射获得参数名,编译时只需要使用-parameters参数。
并行数组:支持数组的并行处理,主要是parallelSort()方法,可以大大提高多核机器上数组的排序速度。
并发性:基于新的流机制和Lambda,增加了一些新的方法来支持聚合操作。
Nashorn Engine jjs:基于Nashorn Engine的命令行工具。它接受一些JavaScript源代码作为参数并执行它们。
类依赖分析器jdeps:您可以显示Java类的包级或类级依赖。
JVM的PermGen空间被移除:它被元空间(JEP 122)所取代。
以上是Java面试问题—— (3)多年开发经验总结的详细内容。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。