2018年面试题小结,待完善。

1:关系型数据库索引的工作方式。举例子表T,有且只有一条索引I有A、B、C三个字段组成,查询时,where B = 'XXX' 和 where A = 'XXX' and B = 'XXX' 是否会用到上面的索引I?


2:说明一下mybatis的1级及2级缓存的工作原理?
1级缓存主要是sqlsession的缓存。二级缓存主要是Mapper的缓存


3:Spring MVC下怎么获取前端传过来的Locale,或者是说怎么做i18n?


4:常用的restful接口或微服务的认证方式有哪些?


多路归并


5:hashMap源码 是否是线程安全(否),如何实现线程安全(hashTable,synchronized,concurrentMap【效率最高】),
让我去实现map怎么实现或者说map的底层原理,(entry数组加上链表【next指针,指向下一个entry数组,每次存储利用hash函数计算出哈希值作为存储地址,如果发生
哈希冲突,则最新的entry会往链表的头部进行更新】ps:hashMap在扩容的时候会发生死循环)
和concurrentMap的区别:concurrentMap是线程安全的,而hashMap不是线程安全的,
concurrent会将map划分成多个segment(片段)每个片段相当于hashTable,数据存储到哪个片段是依据key.hashcode()的值来判断的,如果多个线程对concurrentMap
进行操作时,如果数据存储在不同的片段那么线程之间是不会发生阻塞的。


6:如何实现一个有序的集合(set)


set和list的区别,他俩都是集成collection接口的,set不能有重复的数据、元素没有放入顺序,存储地址由hashCode决定,
list可以有重复的数据,元素有放入顺序,


7:map的初始大小 16


8:linkedList和arrayList的区别,arrayList为什么查找的效率高(提供了索引的访问方式),linkedList为什么插入或者删除效率高
1.ArrayList是实现了基于数组的数据结构在连续的空间里存储,LinkedList是一个双链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
ArrayList内部是使用可増长数组实现的,所以是用get和set方法是花费常数时间的,但是如果插入元素和删除元素,除非插入和删除的位置都在表末尾,否则代码开销会很大,因为里面需要数组的移动。
LinkedList是使用双链表实现的,所以get会非常消耗资源,除非位置离头部很近。但是插入和删除元素花费常数时间 


redis


9:数据结构: String list sets sorted set hashes


10:Mysql 事务隔离级别哪几种,最高级的读未提交,不可重复读,可重复读,串行化


11:设计模式的应用场景


12:SpringMVC的工作原理,


SpringAop怎么使用,和它的原理
aop的使用场景:事务管理,日志记录,权限控制


13:spring dependinece有几种方式(setter,构造方法)


14:dubbo+zooker


15:GC的理解、新生代、老生代


16:ioc,aop的工作原理


17:反射


18:锁在静态方法和普通方法的区别
类锁和对象锁之间不会产生互斥


19:10个线程如何让第10个线程最后运行完成,


20:如何让线程停止


21:索引的数据结构


22:线程池的核心线程数和最大线程数:
线程池在新建线程时如果当前线程数小于核心线程数,那么新建线程为核心线程,否则为非核心线程,核心线程如果是闲置状态也不会被销毁


22:jdk1.8新特性,接口有默认的方法和静态方法


23:redis超时穿透,mysql主动更新


库存问题,需要mysql事务的一致性来保证.



如何处理高并发
前端:异步请求+资源静态化+cdn
后端:请求队列+轮询分发+负载均衡+共享缓存
数据层:redis缓存+数据分表+写队列
存储:raid阵列+热备
网络:dns轮询+DDOS攻击防护













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值