学姐没本事只能写一份最新6月份大厂面经总结-【尾部附面经】
共 3133字,需浏览 7分钟
·
2021-06-20 21:37
百度一面面经
说一下 jvm
说一下 Java 类加载机制
说一下 volatile 关键字
Volatile 怎么保证可见性和有序性的
单例设计模式里面的懒汉模式的双重校验,为什么要用 volatile 修饰,如果不用 volatile 修
饰
多个线程去操作,会有什么问题
说一下线程池吧
说一下 https 怎么保证数据的完整性
说一下 redis 的数据类型
说一下 redis 的持久化
Rdb 快照会影响目前线程执行任务嘛?(BGSAVE 用子进程操作,不会影响)
说一下 redis 的淘汰策略(LRU):
你知道 redis 的 lru 怎么实现的嘛?(不太会)
普通的 LRU 底层,双向链表+hashmap
算法题:旋转数组找最小值
将一个链表向右旋转 k 个数
百度二面面经:
1、说一下 Java 的特性,封装继承多态,多态是什么?
2、说一下 jvm 的内存模型,垃圾回收
3、redis 怎么设置分布式锁
4、说一下数据库索引
5、说一下 redis 和 mysql 的区别
6、redis 为什么快
7、Java 的锁的实现方式
8、TCP 和 UDP 的区别,TCP 三次握手
9、说一下 DNS 解析服务
10、我们现在的视频是采用什么协议进行传输的
11、HTTP 是无状态的,怎么保持他的状态
12、说一下排序算法,1T 文件怎么排序,
13、大顶堆或者小顶堆的插入时间复杂度是多少
14、10 亿个数字找最大的 500 个(建立一个容量为 500 的小顶堆,每次来一个数字与堆顶
的数字比较,如果比他小,就不要,否则就插入)
说一下四次挥手
说一下滑动窗口
短连接和长连接了解吗?
蘑菇街后台开发岗社招面筋
1.自我介绍。
2.你熟悉哪些。答:java 语言,spring 系列框架运用,mysql,hbase,redis,kafka等。
4.说一说mysql两种存储引擎,谈了锁,存储结构,索引等区别。谈一下数据库事务,答了ACID,让我再详细说下这几个概念。追问mvcc,间隙锁。问了一个关于间隙锁的问题,
5.讲一下你对Redis的了解,谈了数据类型,使用场景,跳表,项目中咋用的。追问RDB,AOF区别,谈了RDB 保存一段时间内的数据,子进程完成操作。AOF记录操作命令。追问
6.说说你对java 集合的了解,JUC里面的类,讲了semaphore,cyclicBarrier,countDownLatch的使用场景与区别。追问底层怎么实现,讲了一下AQS,追问再细致点,
7.map 如何解决冲突,1.7,1.8区别,讲讲put源码。
8.tcp,拥塞控制,讲了一下慢开始,拥塞避免(乘法减小,加法增大),追问详细解释一下乘法减小,加法增大。
9.讲一下udp。追问怎么让udp像tcp一样可靠,尴尬地一批说了这个不了解,躺好了。
10.说一下kafka分区设置,怎么持久化的,怎么确定向哪一个分区写消息,为什么快(答零拷贝,只需一次用户态与内核态切换,扯了一点用户态和内核态的东西,追问再详细地说一
下)。
11.kafka 消息幂等性怎么做呢,offset批量提交如何做的。我说手动批量提交的,他说那万一有一个消息没有持久化成功怎么办。
12.讲一哈spring,谈了ioc,aop,jdk动态代理和cglib,反射,spring中用到的设计模式。
13.项目相关,自己讲了一堆项目场景,难点,如何解决。
14.反问环节,蘑菇街月活,和小红书区别,你觉得蘑菇街前景怎么样。
腾讯软开面经(社招)
一面
1、mysql索引结构?
2、redis持久化策略?
(1)RDB:快照形式是直接把内存中的数据保存到一个dump的文件中,定时保存,保存策略。
当Redis 需要做持久化时,Redis会fork一个子进程,子进程将数据写到磁盘上一个临时RDB
文件中。当子进程完成写临时文件后,将原来的RDB替换掉。
(2)AOF:把所有的对Redis的服务器进行修改的命令都存到一个文件里,命令的集合。使用
AOF做持久化,每一个写命令都通过write函数追加到appendonly.aof 中。aof的默认策略是
每秒钟fsync一次,在这种配置下,就算发生故障停机,也最多丢失一秒钟的数据。缺点
是对于相同的数据集来说,AOF的文件体积通常要大于RDB文件的体积。根据所使用的fsync
策略,AOF的速度可能会慢于RDB。Redis默认是快照RDB的持久化方式。
3、zookeeper节点类型说一下;
4、zookeeper选举机制?
5、zookeeper主节点故障,如何重新选举?
6、syn机制?
7、线程池的核心参数;
8、threadlocal的实现,原理,业务用来做什么?
9、spring di的原理;
10、四次挥手;
11、gcroot选择;
12、标记清除算法的过程,标记清楚算法如何给对象分配内存空间?
13、cms算法的缺点;
二面
1、correnthashmap?
2、threadlocal原理?
3、hashmap;
4、Java数据类型,同步机制;
5、讲讲贪心算法;
6、如果线上用户出现502错误你怎么排查?
7、并发量很大,服务器宕机。你会怎么做?
三面
1、syn和lock的区别,哪个更好?怎么选择?
2、hashmap源码,为什么8个节点变成红黑树又为什么到了6个节点才恢复为链表?
3、缓存穿透,怎么解决?
4、负载均衡算法,实现;
5、轮询和随机的缺点;
6、分布式服务治理;
7、dns迭代和递归的区别;
8、算法题:最长回文串;这道牛客题霸上有原题,大家可以去看看:NC17最长回文串
9、为什么连接的时候是三次握手,关闭的时候却是四次握手?
因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK 报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到
FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client
端,"你发的FIN 报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送
FIN 报文,因此不能一起发送。故需要四步握手。
获取往期以上更多最新面试题资料,直接转发一下这篇文章+关注公众号【Java烂猪皮】关注后回复【666】即可获取哦~
![](https://filescdn.proginn.com/23d2e3a58cdfcf57d43f4706c54eca53/f1c0e2a9ae94e42e0dea8fcb1d1cc6ae.webp)
腾讯、阿里、滴滴后台面试题汇总总结 — (含答案)
面试:史上最全多线程面试题 !
最新阿里内推Java后端面试题
JVM难学?那是因为你没认真看完这篇文章
![](https://filescdn.proginn.com/93379c68d8f33df40ed75148c04a5223/62f15f48e058ef3bd2953a5b64c93883.webp)
关注作者微信公众号 —《JAVA烂猪皮》
了解更多java后端架构知识以及最新面试宝典
![](https://filescdn.proginn.com/a2c08076e6d4dd3bfe24775f88faa813/66e14334ee5843026877d6f37aedac8a.webp)
![](https://filescdn.proginn.com/bd09de8d6e461017bc5b1d3844017f4f/c3a6072c45e894744b65873fb1e36434.webp)
看完本文记得给作者点赞+在看哦~~~大家的支持,是作者源源不断出文的动力