一 hashmap的线程不安全体现在哪
答:put时候多个线程写入同一个位置
追问:还有呢?
答:写入时候一个线程写入后导致size扩大,另一个线程读取后size和之前预期不一致
二 哪些阻塞队列是有界的 哪些是无界的
答:ArrayBlockingQueue是有界的,synchronousQueue是无界的
追问:你确定?
答:有界。。
三 什么时候会触发线程回收
shutdownNow时候会触发
四 maxmumSize 什么时候会失效
设置的maxMumSize小于核心线程数
或者设置的最大数大于Cpu数+1
五 spring如何解决循环依赖问题
三级缓存
追问:忘了
六 springboot有哪些优势
自动装配
配置文件方便
追问:还有呢?
答:注解实现方便
打断:ssm也可以
七 @Resource和@Autowire注解 有什么不同
@Autowire 按照bean类型查找
@Resource 按照文件名称查找吧。。(心虚)其实是按beanName查找
八 hashmap 如何改变才能实现线程安全
答:加锁
追问:还有呢?
答:CAS锁 compareAndSet
追问:遇到ABA问题呢?
答:版本号
追问:hashmap的循环插入问题 如何解决?
头插法导致的,具体原因不清楚(卒)
九 redis使用哪种数据结构可以实现延迟队列 实现思路
hash结构实现。。队列的每个节点设置一个权重值
其实连延迟队列是什么都不知道。
十 聚集索引和非聚集索引有什么区别 非聚集索引的叶子结点和非叶子结点存放什么
聚簇索引底层用页分裂实现,主键就是聚簇索引
非聚簇索引 是在聚簇索引基础上创建 是普通索引
叶子结点存放指向主键的key,非叶子结点存放查找的key
十一 lock的底层是如何实现非公平锁和公平锁的,synchronized的锁膨胀过程
lock底层是AQS队列实现,如何实现非公平锁和公平锁不知道
偏向锁->轻量级锁->重量锁
无锁到偏向锁升级:对象头设置为当前线程id
偏向锁到轻量级锁升级:两个线程竞争,谁先设置上,谁持有锁
轻量级锁到重量级锁:多个线程竞争激烈情况下,锁膨胀为重量级锁
十二 线程调用sleep方法处于什么状态?调用wait呢?如果线程没有cpu执行时间片,会如何?
答:sleep本来是阻塞说成了就绪(卒)
wait阻塞
运行的线程在获取的时间片消耗完后,会进入就绪队列,被操作系统再次调度到后又可以继续运行
十三 spring的启动步骤
说成了bean的加载(卒)
当场挂
全部评论
(13) 回帖