面试题day13
京东
-
谈一谈你对集合的了解,从什么角度切入都可以。
arraylist linkedlist
hashset treeset
hashmap treemap
hashmap
数组链表
数组扩容(数组元素大于0.75*数组长度) 链表扩容(数组大于64,链表大于8)
put 扰动函数 (n-1)&hash equals判断
-
说说你对JMM的理解吧
java内存模型
原子性 可见性 有序性
voliate 保存可见性,禁止指令重排 内存屏障
-
谈一谈你对JVM的理解吧
java虚拟机
堆 方法区
本地方法栈 虚拟机栈 程序计数器 直接内存
直接内存是在java堆外的、直接向系统申请的内存空间
-
gc算法和回收器
清除、复制、压缩
Serial、SerialOld、ParallelScavenger、ParallelOld、ParNew、CMS、G1
-
有哪些索引 唯一 普通 主键 全文
-
一个表 有年龄 姓名 性别 身份证和其他 你怎么建索引
身份证号
-
为什么通常不在性别上建索引?
效率提升差
-
用户打开你的网站,很长一段时间过后才得到反馈,你分析一下原因。
网络问题、慢SQL
拼多多
一面
-
项目 中用到了 redis 的什么结构?怎样用的说一下;
-
redis的跳表的实现。
-
项目中的数据库是怎么设计的?
-
索引是怎么设计的?为什么这么设计?有没有什么缺陷?怎么优化查询的?
-
假设有一个班级,班级里有老师、学生,有语数外等几门课程刚考完试出了成绩,你该如何设计这张表?
学生表 老师表 课程表 成绩表
-
currenthashmap hashmap
1.7 segment 1.8 cas+Sysnchronized
-
如何保证线程安全
局部变量,使用线程安全的类,加锁,线程本地变量
-
spring的ioc,aop
控制反转、代理模式
-
aop动态代理,jdk动态代理 源码 看过吗
-
笔试题:给你一个正整数数组,求出每个元素和后面第一个值比它大的数字之间的间隔。
拼多多
二面
-
tcp四次挥手,time waiting
seq x
ack x+1
seq y
ack y+1
主动超时等待,2msl
-
客户端 和一台服务器能建立多少连接,怎么做拥塞控制和进程间通信?
65535
- 慢热启动算法 – Slow Start
- 拥塞避免算法 – Congestion Avoidance
- 快速重传 - Fast Retransimit
- 快速恢复算法 – Fast Recovery
管程、共享区域、消息队列
-
Mysql索引优缺点, B+树
遍历层级短、io次数少
-
隔离级别
ru、rc、rr、串行化
脏读、不可重复读、幻读
-
MVCC 乐观锁/悲观锁
undo log、read-view、三个字段(隐藏主键、回滚日志指针、最后一次事务id)
-
5种io, select epoll区别,select数组为什么默认1024 ?
同步非阻塞io、同步阻塞io、io多路复用、信号驱动io、异步io
-
线程池+拒绝策略
核心线程数、最大线程数、阻塞队列、线程工厂、拒绝策略、存活时间和时间单位
直接抛出、最早抛出、发起者调用、不处理
-
最后还是一道笔试题:给定一个字符串S,请计算输出含连续两个S作为子串的最短字符串