前言
这家的公司的氛围很奇怪,很安静,技术leader说是大家都在忙自己的事情,这叫专注。好吧,我只是来打卡的人,别怕了。
流程
先是笔试,然后是面试
笔试内容:
前面的是逻辑判断题
java常识问题
sql问题
这个sql问题真的难,看图
面试问题
-
SpringCloud的组件有哪些?
答:
- 服务发现——Netflix Eureka
- zoomkeeper+dubbo 服务治理和服务发现
- 客服端负载均衡——Netflix Ribbon
- 对请求的负载均衡
- 断路器——Netflix Hystrix
- 降级服务,保障可用
- 服务网关——Netflix Zuul
- RestFul格式的一个网管api
- 分布式配置——Spring Cloud Config
- 相当于apoll,动态部署配置,结合Spring Cloud Bus
- 服务发现——Netflix Eureka
-
kafka和activemq的区别在哪里?
答:
- kafka可以重复消费 activiemq消费后删除消息
- 分布式冗余备份
- kafka高可用 海量数据处理 部署麻烦
-
hashtable与hashmap的区别
答:
- 都实现了Map接口
- hashMap线程不安全 hashTable线程安全
- hashTable的方法是sysnchronize
- hashMap没有contains方法 有containsKey和containsValue
- HashMap可以存储<null,null>
- HashTable遍历方式使用了Enumeration的方式
- hashTable直接使用的对象的hashCode,hashMap使用的是计算后的hash值
- 内部的数组初始化和扩容方式不同
- hashMap初始化16,扩容策略2n,hashTable11,扩容策略2n+1
-
redis的基本数据类型
答:
- String
- Hahses
- Lists
- Sets
- Sored sets
-
redis的list用过没有?应用场景
答:用过
定时刷新的列表 热点列表,排行表
消息队列
最新列表,更新频率低的
-
多线程用过没有,怎么用?
答:用过,读写文件,定时任务,server本身就是多线程
-
怎么设置一个线程池?线程池的参数有哪些?
答:
核心线程数
活跃线程数
最先线程数
最大队列数
超时时间
排队策略
-
怎么避免资源竞争多线程问题
答:加锁
-
mysql优化问题
答:
- mysql表要有主键索引
- mysql表查询走索引
- in的元素个数在300-500内
- 减少锁等待和竞争,避免大事务
- 模糊查询时候前缀匹配模糊
- 禁止子查询,使用join
- 分页使用id关联表提高效率,延迟关联查询
- 禁止count(*)
- 禁止order by rand()
- 不要使用负向查询not in/not exit/not like
- 不要批量更新和删除
- in的效率比or好
-
jvm优化
jvm调优的指标是性能和稳定性
稳定性>性能
少触发FullGc