1 简单讲一下equals 和 ==
这个是区分情况的,== 在基本类型比较时是值比较,在引用类型比较时是地址比较。
而equals默认是地址比较,但可以通过重写方法,进行引用类型的值比较。
2 讲述一下深拷贝和浅拷贝
在对象中分为两部分内容,基本类型和引用类型
深拷贝:基本类型复制内容,引用内容复制所指向的对象,在修改内容之后对复制之后的不产生影响
浅拷贝:基本类型复制内容,引用类型复制指向对象的引用,在修改内容之后因为浅拷贝之后是指向同一个内容,修改内容之后,复制部分也随之修改。
3 Java中的队列的实现方式
通过数组实现
通过集合实现
4 多线程之间的通信
5.循环一个map的方法
可以用迭代器遍历
可以增强for
6.利用stream流对list中的对象进行排序
7.讲一讲Java中的设计模式,简单举例
工厂模式
装饰器模式
单例模式
代理模式
等
8.简单讲讲责任链
9.简单讲讲行锁和表锁
在mysql中主要通过两种引擎,第一个是myamy是支持表锁 第二个是innodb支持表锁和行锁。
行锁的粒度更小,但消耗高,发生锁冲突几率低,支持高并发 但是会出现死锁
表锁的粒度大,消耗低,发生所冲突几率高,并发低 不会出现死锁
10.怎么知道一段SQL有没有走索引
1 可以通过慢查询日志观察
2 可以通过explain去查询是否运用索引
11.简单讲讲对AOP的理解
aop分为静态代理和动态代理
静态代理:是由程序员或者工具写好的源代码进行编译
动态代理:是通过反射的机制进行,不会产生编译文件
aop底层是运用了代理模式进行对bean的增强,默认是使用jdk的代理模式,需要接口,对其增强。如果没用接口,可以采用cglib模式进行增强,此方法采用父子继承的方式。
12.AOP中的通知
aop中的通知分为 前置 环绕 异常 消息 后置 五种通知