面试题集锦
1、八个数找到第二大的数
2、判断是否为完全二叉树
3、高并发相关
4、长连接和短连接之间的关系
5、 在服务框架下,怎么实现client的异步请求
6、mysql分库分表
7、mysql慢查询
8、输入一个url,到页面加载完成都使用了哪些协议?
9、旋转数组的二分查找
10、设计一个可扩展的序列化与反序列化协议格式,需要考虑什么? 候选人在效率,多语言 和 统计接口语言IDL给出了描述;
11、rpc框架原理
12、String,StringBuilder,StringBuffer区别
13、threadpool设计,线程无限增加导致的问题
14、一次http页面访问过程 ,浏览器从输入网址到内容展现中间经过了哪些过程
输入网址 -> 本地缓存 -> 若本地无缓存,访问DNS服务器 -> 获取ip -> tcp链接,三次握手(浏览器一般都是tcp) -> server响应(异常情况返回404 505等) -> 浏览器渲染 -> 显示结果。
15、TCP 协议是如何做到可靠传输的?
答题要点:三次握手、滑动窗口协议~
16、怎么保证一个程序的可用性
从log监控,进程的监控,调用的延迟上有所思考
集合类:
BlockingQueue是什么?包括哪些类型?LinkedBlockingQueue和ArrayBlockingQueue相比 哪个效率高些?
ConcurrentLinkedQueue和LinkedBlockingQueue的作用和区别?
并发问题
什么场景下可以使用volatile替代synchronized?
读多写少的场景应用使用哪种并发容器?copyonwrite存在的缺陷?
如何实现乐观锁(cas)?如何避免aba问题?
Exexutor和Executors的区别?
CycliBarriar和CountdownLatch区别?
框架类:
springmvc工作流程
spring事务的传播行为和隔离级别?
设计模式:
spring 框架使用过哪些设计模式?在什么地方使用?
画出三种设计模式的UML类图?
jvm
jvm结构
gc算法
minor gc和full gc 的触发条件
内存溢出的触发条件 如何调优
什么情况导致内存泄漏
类加载机制
双亲委派机制
强引用 软引用 弱引用和虚引用?
缓存:
memcache是如何分配内存的?为什么不用malloc/free?
memcache和mysql的query cache 相比 有什么优缺点?
redis的持久化机制?
AOF进行缓存恢复的过程?
redis数据淘汰策略?
volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据
mongodb副本集节点类型包括哪些?节点个数为什么要奇数?节点个数的最大值?
mongodb选主条件?选主算法?
io
reader和inputstream的区别
bio nio aio的含义和区别
selector监听的事件类型?
数据库:
MySQL复制的工作原理?
undo和redo日志的作用?
MySQL binlog日志格式包括哪些?各自的应用场景及优劣?
innodb的读写参数优化?
explain出来的各种item的意义?
业务系统记录用户登录的日志文件,日志格式为time+username+login/logout,如何统计一天某一时刻的在线人数?
算法
1、交换数组 使得数组之和的差值最小
2、应用读写锁实现缓存系统
3、写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。要求用线程间的通信

浙公网安备 33010602011771号