面向对象的特征:继承、封装和多态

封装
将对象的属性私有化,提供特有的方法让对象可以被访问比如(get set),而不是直接访问对象的属性。
继承
父子类,子类继承父类,子类可以拥有父类的方法,对父类进行扩展。
多态
程序中引用变量和通过该引用发出的方法调用,在编程的时候并不确定,而是在程序运行期间才确定,比如继承的时候,子类对父类方法的重写和实现接口时的方法重写。

String StringBuffer StringBuilder区别

集合

重载和重写的区别

说说自定义注解的场景及实现

Map、Set、List的理解和区别

线程锁以及乐观锁,悲观错的区别

Map、Set、List的理解和区别

Java对象中向上和向下的理解

对泛型的理解

BIO、NIO区别

BIO是同步阻塞I/O模式,数据的读写必须阻塞在一个线程内等待完成。
NIO是同步非阻塞I/O模式,支持面向缓冲的,基于通道的I/O操作方法。场景 长连接读日志 线程轮训
在一个阻塞C/S系统中,服务器要为每一个客户连接开启一个线程阻塞等待客户端发送的消息.若使用非阻塞技术,服务器可以使用一个线程对连接进行轮询,无须阻塞等待.这大大减少了内存资源的浪费,也避免了服务器在客户线程中不断切换带来的CPU消耗,服务器对CPU的有效使用率大大提高.
NIO的核心概念包括Channel,Selector,SelectionKey,Buffer。

java8新特性

1.lambada表达式和函数式编程
2.方法的引用 比如Car::method 类名::方法名
3.optional 判断空值
4.steam api 过滤 排序 sum,对集合的操作可以用到。
5.DateTime 受到Joda-Time的影响
6.支持Base64
7.并行数组
9.jvm参数

事务是什么?
https://www.jianshu.com/p/0399a22c4ed3