快手二轮面经
快手2面面经 20180911
-
个人介绍
- 学校经历(课程、考研、成绩)
- 项目经历(时间段、项目介绍)
- 个人爱好(体育、特长)
note:面试官对个人介绍还蛮感兴趣(考研成绩介绍这块)
-
数据结构
-
数据结构熟悉哪些
- array
- linkedlist
- stack
- queue
- tree(binarytree)
-
数据和链表的区别
- add、delete、get时间复杂度
- 数组中Object对象是否是连续存放(对象、引用)
-
数据结构熟悉哪些
-
java集合
-
介绍HashMap
- 数据结构哈希表的实现
- HashMap的特色
- HashMap扩容机制(loadFactor、2^n长度)
- 红黑树red-black tree
- 红黑树和平衡二叉树的区别?
- HashMap为什么采用红黑树而不是平衡二叉树?
- HashMap和Hashtable的区别?(3到4点)
-
ConcurrentHashMap
- 原理
- set、list区别
-
ArrayList
- 扩容机制介绍
-
介绍HashMap
-
并发
- 举例线程安全的场景
- synchronized
-
jdk对锁进行的优化(以下几种锁的概念介绍what、how)
- 偏向锁
- 轻量级锁
- 重量级锁
- 附加 自旋锁(what、how)
-
计算机网络
- OSI7层模型
- TCP/IP5层模型
-
TCP/IP每一层上协议(protocol)介绍
-
应用层 HTTP、telnet、FTP、SNMP、SMTP
- http 中的get和post方法的区别(3-4点)(回答逻辑清晰、条理分明)
-
传输层 TCP、UDP
- TCP和TDP的区别?(3点)
-
TCP如何保证可靠传输?(4-5点)
- 三次握手建立连接
- 应答机制
- 数据包校验
- 超时重发
- 流量控制、拥塞控制
- 介绍慢启动算法(尴尬,当时问的哑口无言了)
-
网络层 IP、ICMP
- 介绍子网掩码
- 255.255.255.0子网下有多少IP地址(2^8)?
- 多少个主机个数可用?
-
应用层 HTTP、telnet、FTP、SNMP、SMTP
-
java基础
-
final关键字用法
- 修饰类、方法、属性
-
finally关键字用法
- try、catch、finally用法
- 代码题(大概影响通过在try、catch、finally中分别修改变量的值,来判断最后return的变量的值)
-
Integer和int的区别
- 缓冲池范围(-128~127)
-
Exception和Error的区别
- 编译时异常
- 运行时异常
-
内存溢出
- 加载大量jar包
- 程序死循环
- 创建大量对象
- 栈溢出StackOverFlowError
-
内存泄漏
- 已经使用完的对象,没有及时的被释放掉
-
长生命周期对象持有短生命周期的对象
-框架
-
Spring框架
-
控制反转IOC
- 控制什么
- 如何反转
-
Spring注解是否看过
- public @interface
- 注解的原理(反射)
-
控制反转IOC
-
final关键字用法
-
数据库mysql
-
表连接
- 左连接(3个表,然后得出结果)匹配得到表的范围(最小值到最大值)
- 123
-
表连接
-
算法手撕题
-
1.回文字符窜
- a.采用stack
- b.双指针左右遍历交换字符
-
2.判断一个字符串最多删除一个字符,能否变成回文
- a.递归实现
- b.循环实现
-
1.回文字符窜
-
Other
-
还有什么要问的
- 负责快手哪个部门
-
还有什么要问的