面经
问了项目相关
数据结构说一下;
tcp三次握手四次挥手;
sql语句,新建表,删除表,新建索引,查看索引;
python的数据包;
java框架;
算法题:链表的实现;判断字符串是不是回文;
结构化数据库和非结构化数据库是什么,举例;
SQL 和NoSQL
redis;
二面
算法:大数相加;
介绍一下索引;
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
数据库的分片,分区;
数据库了解那些;
关系型数据库和非关系数据库区别,分别适用场景;
并发和并行的区别
hr面
自我性格评价;
别人对你的评价;
项目中最有优势的是那个项目;
工作选择的时候更看重那些方面;
自己的优势和劣势;
百度 基础架构部门(内推)
技术三面+hr面,视频面,平均一周一面。
一面
jvm内存模型;
线程并发下变量的可见性,为什么要建立localThread;
索引的结构,之间的对比,索引失效;
进程和线程的区别;
hashmap底层实现,hashtable,concurrentHashmap区别;
排序算法的实现和是否是稳定的;
项目的难点怎么解决的;
算法:只有-1,0,1三个数字的数组,含有大量重复数字,怎么排序(双指针,-1往前排,1往后排);怎样判断平衡二叉树;
二面
final,finally,finalize的区别;
final 关键字修饰变量表示变量不能修改,修饰类表示类不能被继承,修饰方法表示方法不能被重写
finally关键字是try catch, finally,表示一定会执行的方法
finalize是Object类中方法,表示类垃圾回收
重载和重写的区别;
equals和==的区别;
链表和数组的区别;
设计模式;
线程进程的区别;
进程通信的方法;
迪杰斯特拉算法;
算法三道:单例模式,最大连续子数列和;如果允许两个连续子序列,求最大和,时间复杂度O(n),空间复杂度允许O(n);
三面
三面是组长面的,问了一些理解性的问题,没有做好记录,只记得这些了。
最左索引abc,a=xx用到索引了吗,b=xx用到了吗,a=xx and c=xx用到了吗;
说一下对数据库的理解;
海量数据统计频次;
一面
介绍一下http,与tcp的关系,http1.0和1.1的区别,get,post的区别,参数放在那里;
hashmap说一下,hashmap怎么插入一个对象;
hashmap插入一个对象的时候覆盖和插入的问题,hashmap怎么扩容;
与hashtable的区别,怎样让hashmap安全,concurrentHashMap的锁是怎样实现的,读数据的时候还用加锁吗;
不需要
海量数据topK怎么求;
使用一个容量为K的堆
接口和抽象类的区别,接口的应用场景;
堆的实现,堆的插入删除怎么实现;
设计模式说一下用过那些,怎么用的;
spring了解过吗;
实现过api接口吗;
持久化了解吗,答得redis,然后又问redis怎么实现持久化的,redis的应用;
线程池的两个参数;
Mysql的隔离级别,应用,解决了什么问题;
数据库查找太慢了,怎么办;
索引失效的情况,怎么查看索引,索引的底层实现,为什么可以加速查找;
普通索引和主键索引的区别;
二面
算法:手写生产者消费者问题;
Tcp四次挥手;
怎么设置一个服务器(网络延迟,网络攻击);
Ddos怎么解决;
tcp拥塞控制;
慢启动,快恢复,拥塞避免,快重传。
数据库的三范式,怎么设计,怎么取舍;
一面
算法题:二叉树转双向链表;
tcp协议的三次握手,和udp的区别,tcp沾包,tcp的流量控制和拥塞控制;
tcp四次挥手画一下流程图,说一下tcp的closewait和timewait,怎么解决;
ls指令,系统收到ls指令时做了什么;
ps指令;
kill和kill-9的区别;
数据库索引加了以后为什么没有用到;
https怎么加密的,画一下流程图;
https的双向加密;
美团点评内推
之前已经整理过了,帖子如下:
快手
一面
hashset底层实现,value为什么不设为null,而是用一个共同的present来表示;
hashmap
hashmap的负载因子为什么不是1,或者2,或者0.5,会出现什么情况;
hashmap的头插法有什么优缺点;
hashmap的几个新方法,compute,computeIfPresent()
算法:数组的众数。
一面
自我介绍;
项目介绍;
从页面请求到展示的过程引出了下面所有的问题:
DNS请求过程,怎么看经过哪些节点?(trace命令);
tcp链接,怎么看tcp的各状态(tcp抓包);
tcp请求到达之后,java怎么处理(socket);
多请求,并发下怎么处理(锁);
电脑端和手机端购物车信息怎么同步的/手机端一开始没有登录加入购物车的商品在登录之后也是可以显示的(cookie);网页登陆之后,跳转二级页面,怎么保持的登录状态(session);
排序算法;一万个员工的年龄排序选取那个排序方法
桶排序
怎么设计一个API,其他高并发请求请求这个部门的层次关系
一面
介绍一下http,与tcp的关系,http1.0和1.1的区别,get,post的区别,参数放在那里;
hashmap说一下,hashmap怎么插入一个对象;
hashmap插入一个对象的时候覆盖和插入的问题,hashmap怎么扩容;
与hashtable的区别,怎样让hashmap安全,concurrentHashMap的锁是怎样实现的,读数据的时候还用加锁吗;
海量数据topK怎么求;
接口和抽象类的区别,接口的应用场景;
堆的实现,堆的插入删除怎么实现;
设计模式说一下用过那些,怎么用的;
spring了解过吗;
实现过api接口吗;
持久化了解吗,答得redis,然后又问redis怎么实现持久化的,redis的应用;
线程池的两个参数;
Mysql的隔离级别,应用,解决了什么问题;
数据库查找太慢了,怎么办;
索引失效的情况,怎么查看索引,索引的底层实现,为什么可以加速查找;
普通索引和主键索引的区别;
二面
算法:手写生产者消费者问题;
Tcp四次挥手;
怎么设置一个服务器(网络延迟,网络攻击);
Ddos怎么解决;
tcp拥塞控制;
数据库的三范式,怎么设计,怎么取舍;
8.10 一面
算法三道:
二叉树镜像,不用递归;
链表删除倒数第k个节点;
手写单例模式;
问答:
tcp/ip四层协议;tcp、udp区别;tcp三次握手;tcp报文内容,标志号有那些;建立连接的时候序列号为多少,为什么,序列号是干嘛的;
http、https的区别,应用层协议举例;
拥塞窗口是干嘛的;
锁有那些,怎么实现;
cookie是什么,里面有那些内容;
hashmap;
tcp三次握手中第一次链接,服务器没有响应怎么办,第二次链接客户端没有相应怎么办;
get,post区别;
对称非对称加密;https怎么加密;
hash冲突解决方法;
滑动窗口怎么工作;
8.17 二面:
算法题:
整数数组求和为k的数字对(每个数字只能用一次);
如果整数范围为1~1000,有更优的解法吗;
找出子数组和为k的个数(允许重叠);
问答:
快排,堆排的实现;
快排的基准怎么选取;
那些是稳定排序算法那些是不稳定排序算法,为什么;
(问答记不太清楚了,排序算法问的比较细)
8.31 现场三面
算法题:
二叉树中中序遍历中求指定节点的下一个节点;
一面(0815)
讲了一下项目,问什么时候可以来实习;
算法两道:调整数组,奇数在前,偶数在后;链表1,2,3…2n-1,2n,2n-1,…3,2,1转为1,1,2,2,…2n-1,2n-1,2n;
讲一下tcp;
讲一下http(工作方式,报文内容);
讲一下锁(讲了锁可以实现并发的原子性,可见性,顺序性;synchronized和lock的区别);
自旋锁了解吗,为什么设置自旋锁;
避免线程上下文切换带了开销
线程池了解吧,线程池的参数说一下;
队列是什么,有什么类型;
阻塞队列和非阻塞队列,阻塞队列是怎么实现阻塞的;
表的连接方式及区别;
数据库索引的类型,区别;
sql语句中的having作用;
数据库的隔离级别,每种隔离级别解决了什么问题;脏读,幻读是什么;
脏读(Drity Read):某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。
不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。
幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。
事务隔离级别 | 脏读 | 不可重复读 | 幻读 |
读未提交(read-uncommitted) | 是 | 是 | 是 |
读提交(read-committed) | 否 | 是 | 是 |
可重复读(repeatable-read) | 否 | 否 | 是() |
串行my化(serializable) | 否 | 否 | 否 |
int和Integer的区别,几种比较;
String之间的比较;
equals
二面(0822)
算法:链表的层次遍历(分层)。
进程和线程的区别;
进程的通信;
如果有一个任务,我们想晚上0点发布,然后设置了机器a来定时运行,但是为了防止a宕机,又设置了b,c两台机器,问,怎么设置;
讲一下锁;
讲一下事务;事物与多线程的对比;
设计模式的用处,单例模式;
最近看过什么书;
未来规划;
类加载,双亲委派,作用;
排序算法,堆排序的实列