一、前言
最近刚读完一本书:《Netty、Zookeeper、Redis 并发实战》,个人觉得 Netty 部分是写得很不错的,读完之后又对 Netty 进行了一波很好的复习(之前用 spring boot + netty + zookeeper 模仿 dubbo 做 rpc 框架,那时候是刚学 netty 后自己造的小轮子)。
虽然对于 Netty 的使用已经比较熟悉了,而且还知道它的底层是基于 Java NIO 做进一步的封装,使得并发性能和开发效率得到大大的提升。但是,对于同步阻塞、同步非阻塞、异步这些概念,还是比较的模糊,一直处于似懂非懂的状态。
所以这两天,一直在网上看看大家对此的评论,也得到了一些启发。而且还有很多同学们提到了 《Netty 权威指南 第二版》 这本书,说前两章对于网络 I/O 模型和 Java I/O 的介绍很不错,所以我也特意去找了一本 pdf 来看看(比较穷。。。)。看了前两章后,确实对于这方面的概念清晰了不少,所以决定写下此文章来记录一下,也分享给更多不清楚这方面理论的同学们,并且也下定决定,有空一定把这本书继续看完,哈哈哈。
腾讯
一面(支付)
1.jqc的介绍
2.如何确保多台机器不会重复消费
3.如何确保消费了反馈失效问题(用事务管理,先储存再消费,失败就回滚)
4.如何防止数据库单点问题
8.paxos算法
9.raft算法
10.spring的aop实现
11.三种操作,a:++,b:–,c:/2(只能偶数),求i变1的最少次数
12.人才培养(轮流尝试,提出任务,鼓励实现)
13.没有深度的广度没有意义,由广变宅,由浅入深
14.设计时需要经验但堤防经验主义
15.百度技术氛围比腾讯好
二面
1.手写多线程买票代码
2.手写ServerSocket使用代码
3.java有多少种线程池,固定线程池是怎样的
4.Collection的子接口
5.Map的接口,HashMap应用场景
6.Queue的父接口,使用场景
7.数据库主从复制配置
8.Spring的IOC优点,解决了什么问题(解耦)
9.Bean的生命周期
10.Bean的范围,gobal session的作用
11.手写SpringMVC流程
12.如何平衡生活和工作
13.职业发展规划
14.为何不考研
15.redirect和forward区别
16.大学中最大的挑战
17.加密算法
HR面
1.喜欢做什么
2.喜欢看什么电影,带着什么心态去看
3.会再回百度吗
4.还有什么面试
5.腾讯阿里选什么,为什么选腾讯
6.是否独生
7.家里人希望做什么
总结
腾讯很少有算法题,主要考察知识的广度和深度,如果没有实践过,靠背书是很难混过去的。架构理解要求比较有深度,注重原理的考察。
京东
一面
1.快排原理
2.HashMap底层结构
3.ConcurrentHashMap线程安全原理
4.类加载机制
5.左连接和右连接区别
6.tcp建立连接的方式
7.close wait和time wait在什么情况下出现
8.http组成
9.http头部,keepalive的意义
10.https流程
11.如何确保密钥安全,是否非对称加密
12.线程池的实现原理
二面 1.在百度学习到什么
2.对java的了解哪些方面
3.还了解过其他语言吗,不同语言只是不同偏好
4.aqs的具体实现
5.并发包用到那些
HR面 1.在百度学习到什么
2.为什么从百度离职
3.有什么优点和缺点
4.遇到问题是偏向解决问题,还是抱怨问题
5.能实习多久
###网易邮箱
一面
1.java公司
2.dfs和bfs实现原理和应用场景
3.ArrayList的底层实现
4.Elastisearch的索引如何储存
5.JVM内存模型
6.java堆分代,对象分配
7.在项目中遇到什么问题,如和解决
8.对自己这个项目打几分,为何转项目
9.HashMao底层实现,介绍红黑树
10.String a=“abc” String b=“a”+“bc” a==b?
11.遇到紧急的需求该如何完成
12.手写ArrayList添加11个元素
13.n个0~9的数,找和为7的数对
14.MySQL的引擎,所使用索引的结构
15.B树和B+树的区别
16.代码优化地方
17.平时看什么论坛
18.自研JQC的实现原理,和kafka的区别
19.抢红包实现
20.如何传输密码(非对称加密,https)
21.https的证书在哪颁发
终面(HR+主管)
1.如何找到两个实习
2.学校允许实习吗
3.项目中的挑战
4.通过学习解决的最大一个困难
5.如何处理项目,学习,实习的时间
6.为什么离职百度
7.为什么得不到上司的信任,当时有更好的选择吗
网易游戏
1.如何保证项目扩展性,依赖问题
2.消息队列同时消费问题
3.进程的通讯方式?哪种最高效
4.本机socket需要经过协议栈解包吗
5.linux文件管理,文件类型
6.一致性哈希实现
7.统计海量词频最高10个单词,所用的数据结构
8.强类型/弱类型和静态类型/动态类型
9.JVM类加载器
10.查看机器性能
11.查看cpu负载,一般为多少,过高怎么解决
12.机器性能是如何读取的
如何快速更新自己的技术积累?
- 在现有的项目里,深挖技术,比如用到netty可以把相关底层代码和要点都看起来。
- 如果不知道目前的努力方向,就看自己的领导或公司里技术强的人在学什么。
- 知道努力方向后不知道该怎么学,就到处去找相关资料然后练习。
- 学习以后不知道有没有学成,则可以通过面试去检验。
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目,有需要的朋友点击这里即可免费领取
厂面试题目,有需要的朋友点击这里即可免费领取**
[外链图片转存中…(img-VBTT7iVl-1623054914386)]
[外链图片转存中…(img-DIRGFk1B-1623054914388)]