1.你用过集合类里面哪些是线程安全的,哪些是线程不安全的?分别举两个例子?
线程安全:HashTable以及ConcurrentHashMap
非线程安全:ArrayList、HashMap等
2.实现线程安全的集合类都有哪些方法,如果是你要用线程安全的集合类,你会怎么选?为什么?
Collections.synchronizedMap(new HashMap<>())
ConcurrentHashMap,锁的粒度更细,能实现更好的并发。
3.说一下ConcurrentHaspMap的实现?
1.7分段锁,每个segment相当于一把锁,每个segment管理一部分数组的位置;
1.8粒度更细,数组的每个位置相当于一把锁,基于CAS和synchronized实现,get方法不需要获取锁
4.ArrayList容量不够了,怎么办?
介绍了一下ArrayList的初始化参数,默认容量是10,扩容是扩1.5倍, newCap=oldCap+oldCap>>1;扩容的过程是先申请一个newCap长度的空数组,再把之前 旧数组的值复制过来;
5.ThreadLocal有了解吗?介绍一下
Threadlocal为每个线程创建一个变量副本,每个线程操作自己的副本
6.AtomicLong这种原子类的实现知道吗?
基于循环CAS实现的,介绍了一下CAS
7.要你动手实现一个从Java对象到Json的转换,你要怎么做?
不会,说了反射,但是面试官也没说话。
8.微服务的调用主要基于RPC和Rest接口,说一下微服务调用的一个基本过程?
不会,扯了一下实习的微服务流程,然后就。。。下一个
9.MySql数据库InnoDB存储引擎支持哪些隔离界别?其中可重复读底层是怎么实现的?
读未提交、读已提交、可重复读、可串行化
10.MySql中join和union的区别是啥?
Join是表连接(横向),分为leftjoin/innerjoin/rightjoin/fulljoin;
union是表拼接(合并表格),UNION 内部的 SELECT 语句必须拥有相同数量的列。列也 必须拥有相似的数据类型
UNION 只选取记录,会选取不同的值;而UNION ALL会列出所有记录,包括重复的
11.Spring里面创建Bean,在不指定Scope的情况下创建的Bean是单例吗?
是的
12.Spring里面事务的传播级别?比如A方法有事务,B方法没有事务,怎么整?
听不懂,过
13.Spring框架里面AOP是啥?怎么个用法?
对已有方法进行功能的增强,不需要改变业务代码,常用于记录操作日志