2021年2月28日面经汇总——记,第一次社招(下)
- 2021年2月28日面经汇总——记,第一次社招(下)
- 服务部署的形式?如果某个机房宕机了呢?是依赖组件还是业务自己做的?了解这块是怎么做的?
- 线程交叉打印 12A34B56C,多种实现方式(一个打印数字,一个打印字母)
- Synchronized和lock的区别
- synchronized的锁优化是怎么样的
- String str=new String (a+b)会创建几个对象?字符串常量池在JVM哪个位置
- Spring的设计模式?工厂模式是怎么实现的
- Kafka的大概框架是怎么样的?为什么吞吐量这么高?kafka的多个副本能提高它的读写性能?为什么这么设计
- kafka的精准一次是怎么设计的?平常为了防止重复消费是怎么做的?
- Mysql的事务特性?原子性是怎么实现的
- Mysql的默认隔离级别?什么是不可重复读
- select poll epoll的区别?epoll的数据结构
- TCP四次挥手,Time WAIT发生在哪方?两个超时重传时间的作用?大量 timeout怎么处理?
- https的加密过程?证书认证的过程
- 线程死锁的情况,怎么解决?
- threadLocal项目中怎么使用
- 乐观锁和悲观锁的区别,项目中的使用
- synchronized 和ReentrantLock区别
- 为什么索引能查询速度
- 分布式事务的实现
- 网易
- 容器内存为3g,堆内存为2.8g,会有什么问题
- HashMap是线程安全的嘛?ConcurrentHashMap是怎么实现的
2021年2月28日面经汇总——记,第一次社招(下)
服务部署的形式?如果某个机房宕机了呢?是依赖组件还是业务自己做的?了解这块是怎么做的?
2.流量突增平台会怎么处理?
3.kafka在业务中的使用场景
4.针对项目中的一个小问题,了解整个调用链路
线程交叉打印 12A34B56C,多种实现方式(一个打印数字,一个打印字母)
方法一:使用ReentrantLock的多个condition
方法二:使用一个全局的原子Integer,在打印过程中递增,若是1或2的倍数则打印数字,若是3的倍数则打印字母。循环判断,不加锁,乐观锁实现。
Synchronized和lock的区别
- synchronized是关键字,Lock是一个表示锁的接口
- synchronized表示隐式锁,Lock是显示锁
- synchronized在JVM层面进行了优化,Lock没有
- synchronized只支撑一个condition,Lock支持多个Condition
- synchronized使用结束会自动释放锁,表现在字节码中会自动加入monitor exit,Lock要手动释放锁,一般需要写try…finally结构。
synchronized的锁优化是怎么样的
String str=new String (a+b)会创建几个对象?字符串常量池在JVM哪个位置
对象有a、b、a+b和str,四个对象
字符串常量池在堆中。
Spring的设计模式?工厂模式是怎么实现的
工厂模式、代理模式、单例模式
Kafka的大概框架是怎么样的?为什么吞吐量这么高?kafka的多个副本能提高它的读写性能?为什么这么设计
kafka的精准一次是怎么设计的?平常为了防止重复消费是怎么做的?
12.哨兵模式是为了解决什么?整个流程大概是怎样的
13.Java进程不见了,怎么定位?
Mysql的事务特性?原子性是怎么实现的
事务特性ACID:
原子性:事务内的操作要么都执行,要么都不执行
一致性:事务之前前后,数据保持一致
隔离性:多个事务之间互不影响
持久性:事务一旦提交,事务对数据的影响将被持久化到硬盘中。
要实现原子性就必须在事务中当出现失败的操作时要进行回滚,回滚使用了undo log。
Mysql的默认隔离级别?什么是不可重复读
可重复读。
不可重复读表示了在一次事务操作中,多次查询得到的数据不相同。
16.select语句的执行过程
select poll epoll的区别?epoll的数据结构
18.TCP三次连接,这个listen backLog有什么作用
TCP四次挥手,Time WAIT发生在哪方?两个超时重传时间的作用?大量 timeout怎么处理?
TIME_WAIT状态发生在客户端,当客户端向服务器端发送了第4次挥手之后,就进入TIME_WAIT状态,并在最懂2MSL时间之后,进入CLOSED状态。
https的加密过程?证书认证的过程
- 浏览器向服务器发起一个HTTPS请求,服务器端向浏览器发送了一个证书公钥。
- 浏览器验证证书的有效性,若有效,则生成一个随机值。
- 使用公钥加密随机值,发送给服务器端。
- 服务器端使用私钥解密,得到随机值。
- 这样子,客户端和服务器端都拥有了相同的随机值,使用这个随机值对要传输的内容进行对称加密传输
21.进程间的通信方式?有哪些信号通信是不可靠的?为什么是不可靠的?
线程死锁的情况,怎么解决?
23.1 2 35 5 35 2 56
统计2 35出现的次数,按序排序
24.请求出现超时,但应用查不到这个请求日志,怎么排查
25.僵尸进程怎么解决?协程有了解过嘛
第二面
1.算法题
一个字符串,一个子字符串,判断子字符串在字符串中出现的次数,不要求连续,但有先后顺序 s=rabbbit t=rabbit,出现的次数为3
2.项目的挑战
3.Kafka和rocketMq的区别
4.本地缓存和redis缓存的区别
5.本地缓存的场景
6.redis的数据更新策略之类
7.redis的部署方式,集群部署的丢失数据,主备切换过程
8.Flink使用了什么功能
第三面
1.项目介绍
2.在项目中用了Spring boot是怎么使用的?
3.线程池项目中怎么使用,遇到过什么问题
4.hashMap的了解
threadLocal项目中怎么使用
ThreadLocal在项目中用于保存线程所拥有的变量,是一种空间换时间的方式,使用ThreadLocal保存的变量,是线程安全的。
乐观锁和悲观锁的区别,项目中的使用
乐观锁认为程序会往好的方向发展,并发不会造成资源的竞争。在项目中CAS就是使用的乐观锁思想,在程序中使用就是原子类,AtomicInteger。悲观锁是一种悲观地认为并发会导致线程不安全的思想,所以需要用锁的方式,对并发进行限制。在程序中使用就是各种锁的使用,比如synchronized和ReentrantLock。
7.题目:生产者和消费者的实现,wait 和notify
synchronized 和ReentrantLock区别
- synchronized是关键字,是内部锁,ReentrantLock是显示锁
- synchronized在JVM中进行了支持,使用字节码monitor enter和monitor exit进行了支持。
- synchronized只支持一个conditon,ReentrantLock支持多个condition
- synchronized不支持中断,ReentrantLock支持中断
9.CPU的内存模型
10.Java的内存模型
11.tcp的可靠性保证
为什么索引能查询速度
数据库的数据是保存在硬盘中的,相比起内存和CPU的速度,从硬盘中读取信息才是决定数据库速度的决定性因素。所以要让查询速度快,就要解决从硬盘中查询速度的问题。要从硬盘中快速查找,只能减少查找的次数,也就是减少IO的次数。索引就是这样预先对数据库的数据进行了组织,可以起到减少IO次数的作用,所以索引可以加快查询的速度。至于为什么索引可以减少IO,关键就在于B+树算法。
13.redis数据结构,排行榜的实现
分布式事务的实现
15.Spring事务
16.Spring Bean的存储
17.Java数据源怎么使用
序: 腾讯最终还是挂在了三面,面试的问题难度总体还行,不算太难,可能有些部分准备的不是很充分!
网易
guava和caffeine的区别
2.HashMap作为本地缓存和caffeine的区别,本地缓存一般占用多少内存
3.jvm的堆内存配置大概是怎么的,如果设置了堆内存的初始值为2g,启动的时候分配给这个进程的内存是多少
容器内存为3g,堆内存为2.8g,会有什么问题
容器内存为3g,堆内存在2.8g,不清楚释放有其他占用内存的进程,但是到这个程度,堆内存即使没有挂掉,也会频繁GC
5.创建很多线程池,导致oom,这种跟因为本地缓存太多导致的oom有什么区别
6.堆内存和栈内存的区别
redis缓存的数据一致性问题,分布式锁是怎么样的
8.redis集群的架构是怎么样的
HashMap是线程安全的嘛?ConcurrentHashMap是怎么实现的
HashMap不是线程安全的,ConcurrentHashMap使用了分段锁,在加锁的时候,对某一段进行加锁,减少了等待锁的时间。所以可以保证速度的同时,也保证了线程安全。
10.Synchronized锁的实现
11.锁优化是怎么样的,偏向锁是怎么样的
12.采用的是什么垃圾收集器?CMS跟其他老年代垃圾收集器的区别?CMS跟G1的区别
13.动态代理的区别
14.Spring Aop的实现
15.zookeeper的ZAB协议
16.项目中主要负责的是什么?方案设计大概是怎么样的,比较难的问题以及是怎么解决的
17.future.get()是怎么实现的,futureTask的了解
18.服务怎么做高可用,进程是怎么监控的
19.在浏览器上输入一个网址,大概执行过程,链路层,网络层路由器选择
20.操作系统的内存管理
第二面
1.细聊了一下项目
2.数据库的索引,存储引擎的一些问题,平常怎么优化
3.缓存的一些基本问题,一致性怎么保证,大概架构
4.服务高可用的实现
5.Kafka的大概介绍,可靠性保证,重复消费问题
6.项目难点
7.一致性算法介绍