异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作。AIO 是异步 IO 的缩写,虽然 NIO 在网络操作中,提供了非阻塞的方法,但是 NIO 的IO 行为还是同步的。对于 NIO 来说,我们的业务线程是在 IO 操作准备好时,得到通知,接着就由这个线程自行进行 IO 操作,IO 操作本身是同步的。查阅网上相关资料,我发现就目前来说 AIO 的应用还不是很广泛,Netty 之前也尝试使用过 AIO,不过又放弃了。
28.深拷贝和浅拷贝
简单来说,如果是对于基本数据类型而言,深拷贝和浅拷贝都仅仅是对值进行复制;而对于引用类型,深拷贝是拷贝一个内容完全一样的对象,而浅拷贝仅仅是拷贝地址。比如一个Int类型数据,无论深浅拷贝,都是拷贝这个数具体值,而例如一个int数组{1,2,3},深拷贝拷贝一个{1,2,3}的数组,地址不一致,浅拷贝则是拷贝数组地址
这里其实有一个概念,就是引用拷贝,比如我直接用一个指针指向一个对象,那么其实他是引用拷贝
浅拷贝就已经是两个不同的指针了,但是其实指向的是同一个内存区域,但是指针是不同的
深拷贝就是具体将里面所有的东西都进行clone
拷贝是需要继承cloneable接口的
29.什么是java序列化?如何实现java序列化?
java序列化就是将对象转换成字节序列。实现方法就是让对应对象实现serialization接口,是一个标记性接口,不需要重写方法,然后构造一个ObjectOutPutStream对象输出流,使用writeObject方法将Obj写成字节序列
30.你知道java8的新特性吗,请简单介绍一下
Lambda 表达式 :Lambda允许把函数作为一个方法的参数
方法引用: 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
默认方法:默认方法就是一个在接口里面有了一个实现的方法。
新工具:新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。
31.请你说说Lamda表达式的优缺点。
优点:
简洁非常容易并行计