个人面经汇总(二)
-
非科班为什么要搞计算机
-
在滴滴用了什么工具、框架
-
说一下synconized
-
线程的状态有哪些
-
什么情况会进入WAITING状态
-
介绍一下join方法
-
异步和同步、阻塞和非阻塞分别是相对什么而言的?
-
为什么要分内核态和用户态?
-
OSI协议了解吗
-
http协议和tcp协议的区别?(rpc的应用上?)
-
mysql中自增id可以用做uid吗
-
mysql分库分表了解吗
-
怎么理解散列?
-
select * 和select 1?
有时候为了提高效率,只是为了测试下某个表中是否存在记录,就用1来代替。
-
mysql的主从复制了解吗?
-
Spring框架事务注解用什么注解?使用该注解需要注意什么?
-
redis持久化
-
未来3年的规划?
讲一下快手实习
求有效括号子串的最长长度
sql题
put和post的区别
一个程序是怎么跑起来的
进程和线程的区别
线程间怎么通信的
java中有哪些锁
-
项目介绍,详细理了一遍
- 分布式锁的实现,如何生成分布式的唯一id(雪花算法)
- 在快手实习的项目,详细说一下需求原因和实现过程
- concurrentHashMap的底层结构
- LRU
- 平常看什么书吗
-
浏览器输入网址后的过程,每一步详细说明,
- DNS如何解析
- tcp三次握手四次挥手,遇到网络堵塞、丢包怎么办
- ...
- 手写LRU
-
Java多线程需要注意什么
-
如何保证操作共享变量安全
-
乐观锁是什么悲观锁是什么
-
Java有哪些锁
-
Synconized是如何保证只有一个线程进入临界区的
-
Java中有哪些集合
-
LinkedList可以从链表尾取元素吗
-
数据库的表,对于一个字段中包含多个子字段的情况怎么处理
-
说说mysql的锁机制
-
了解锁是怎么实现的吗
-
共享锁锁住的表可以再加排他锁吗
-
什么情况会用表锁
-
做题,和为k的连续子数组个数
- 介绍一下在滴滴的项目
- 介绍一下在快手的项目,做的项目,遇到的挑战
- es讲一下
- 看了哪些书
- List有哪些
- ArrayList对扩容的优化
- Get和Post的区别
- 查询DNS的步骤
- 怎么寻找下一跳
- 线程同步除了加锁还有什么办法
- 三个线程依次输出
反问建议:
抓住实习的机会,多了解一点公司项目的架构
-
平时用到了哪些数据结构,ArrayList和LinkedList各自的优劣,HashMap的底层结构
-
redis的作用是什么,用map不行吗
-
如果不用redis,怎么保证数据库不会挂掉
-
redis的哈希表和Java的哈希表有什么不同?
-
Sql范式
-
rpc相比于http的优势?
-
输入网址到显示网页的过程
-
哪个地方会用到ARP协议
-
设计模式了解吗,单例模式在框架中的使用?
-
volitile的原理,指令重排是什么?
-
ClassLoader会在什么地方用到
-
操作系统 要查看日志中的Error怎么写命令
一面问了很多快手实习+秒杀项目+八股
二面问了滴滴实习+秒杀项目+八股
- 滴滴实习经历
- 调用其他部门接口是http还是rpc(http,因为数量多,要复用现有的能力)
- 返回的状态码有哪些,504见过吗
- 秒杀系统,redis的作用是什么
- redis不需要加锁吗
- mysql RC和RR做了哪些事不同
- readview存的快照是什么
- undolog和redolog的区别(用处、以及一个是逻辑日志,一个是物理日志)
- 算法题,树,求轮廓
- 实习遇到的最大的挑战是什么,怎么解决的
- 实习的项目是怎么测试的
- 微信扫码登录是怎么实现的
- 看过什么书,有没有印象深刻的
- 做题,具体忘了