快手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
- 还有什么要问的
- 负责快手哪个部门
- 还有什么要问的