一面
1自我介绍
2说说对oop的理解(从三大特性扯到了策略+工厂+模板)
3你接口和抽象类是怎么用的
4ConcurrentHashMap怎么做并发处理的(介绍了一下分段思想和锁桶头)
5ConcurrentHashMap的get方法里有做并发处理吗(没有)怎么保证读写互斥(volatile修饰节点)
6对称加密与非对称加密
7MD5是啥,它是加密算法吗(不是),加盐是什么原理,还了解其他加密算法吗(no)
8DDoS攻击和CSRF攻击了解吗? 说一下
9类加载流程(开背)
10JVM垃圾回收机制
11为什么要分代(弱分代假说和强分代假说)
12怎么判断垃圾(引用计数,可达性分析,三色算法)
13了解安全点吗?
14要是走不到安全点怎么办(安全区域)
15MySQL底层是什么结构
16为什么要用b树,有什么优点(矮胖,对比了一下hash,跳表,二叉树,红黑树。。)
编程题:括号生成
10分钟后约二面:
拷打项目:
2实习这个项目是怎么做异步的?(三个:redis,MySQL消息表,MQ定时任务)
3为啥用消息表(减少对外接口的链路)
4你们这个系统是怎么优化到这么高并发的?仔细说说(异步处理,缓存,SQL优化)
5怎么定位的SQL(慢日志),你们多少秒是慢(2s)
6为啥join操作放在代码里做就快了
7OOM当时是怎么排查的(启jar包增加一个参数,发生OOM时自动保存dump文件dump下载下来,然后倒入堆找分析工具,看看哪个对象的数量是异常的)
8怎么解决这死锁个问题的?(拆表)
9你们还考虑了其他方案吗?(排序:1代码里排 2用in)
10当时你们团队为啥用这个方案不用其他两个呢
11实习中了解哪些中间件?
12你啥时候能入职?
反问
一下午连续面,累死