今天开始美团面试;
问题:
1、LinkedList和ArrayList存储了一定数据,循环了上亿次,谁执行的速度快,为什么
2、如果两种数据类型存储了1到100的数据,每次遍历到50个数字之后就将之前遍历的拼接最后面,谁快,为什么(好像是,具体问的什么有点遗忘了)
3、创建一块新的内存一定比指针重新指向慢吗,为什么
4、synchronized和reentrantlock区别
5、synchronized原理,它是如何锁住临界资源的
6、reentrantlock原理,阻塞队列是如何锁住线程的
7、线程池参数,作用
8、核心线程数5个,阻塞队列长度7,最大线程数10,20个任务,一个任务执行1分钟。是否会触发拒绝策略?会执行多久?
9、如果我想在一分钟完成所用任务,该如何设计线程池
10、mysql事务的四大特性
11、事物的隔离性是如何实现的
12、MVCC
13、如果在读已提交的事物隔离级别下,是否会用到MVCC,为什么
14、mysql中有一个表有(A,B,C,D)字段,select A,B from 表 where C=? and D=?,如何让这段SQL执行速度达到最快?
15、如果是查C,D。查询条件是A,B呢,索引该如何设计。如果不知道这四个字段查询的数据和查询的条件该如何设计
16、redis的过期删除策略
17、定期删除时,redis是如何扫描内存的
18、利用hash表存储数据,既想通过key查询value,又想获取最大值或者最小值或者中间某个年龄(场景是key:name,vlue:年龄),使它的存储有顺序,该如何设计
19、优先级队列的数据结构,优先级队列一定是通过数组实现的吗
20、讲一讲git的命令
21、一个分支上面提交了1,2,3,如何得到1,3而跳过2
22、避免重复下单的几种解决方案
23、如果用户没有一个唯一标识或者说用户不需要登陆就能下单,该如何避免重复下单
24、前端一次性传入很大的excel该如何处理
25、在大文件进入到内存之前如何避免一次性传入过大的文件
26、算法:对称二叉树