秋招面经总结
背景介绍
top3硕,做过一段时间CV,后面发现头顶比较凉后就转Java开发了,在网易有一段时间的实习(可惜摸鱼摸过去了
面试总结
字节
一面:
1.逻辑地址和物理地址,操作系统中,比如一个java对象如何通过逻辑地址找到物理地址
2.现在有逻辑地址,但是物理地址没有加载到内存中怎么办
3.操作系统中,线程/进程在进行上下文切换时保存了哪些信息
4.进程切换的时机有哪些
5.进程发生异常一定会切换吗
6.互斥锁和自旋锁
7.new object,在栈上会有什么空间
8.一个程序从源代码到可执行程序的过程
9.mysql的sql执行过程
10.mysql的覆盖索引
11.redis中rehash的过程
12.何时rehash
13.redis中key的过期策略
14.http中的请求
15.http请求报文格式
16.linux统计一个文件中每个id的出现次数
17.n个任务,有开始和结束时间,在某个时间区间内,如何处理最多的任务
二面:
1.自我介绍
2.项目中 服务内存泄漏排查
3.java锁的理解
4.lock中的方法
5.线程池
6.线程和协程的区别
7.linux中多个文件中查找字符串
8.linux查看磁盘使用情况的命令
9.用一条SQL语句查询出每门课都大于80分的学生姓名
10.设计一个分布式系统快速查找文件
11.已知一天内用户登录登出的日志(数据量较大),求这一天用户在线的最大峰值和持续时间段
* 日志包含字段(userid, login_time, logout_time)
* 登录登出时间精确到秒
12.归并排序
13.dfs和bfs,和使用场景
14.有向图怎么做dfs
15.两个栈实现一个队列
三面:
1. 说实习,内存泄漏的排查
2. object类中有哪些方法
3. equal和hashcode经典问题(==)、equals和hashcode相等问题
4. final、finally、finalized的区别
5. map中哪些类是线程安全的,底层实现
6. threadlocal,能否替换concurrenthashmap(面试官说可以,安全和性能问题)
7. synchronized和reentrantlock的区别,reen的底层实现
8. lock
9. dubbo(rpc),rpc怎么注册服务,rpc中有用到代理模式吗
10. aop介绍,哪些部分可以用aop
11. redis的数据结构
12. zset底层数据结构,如何实现
13. 口述:如何判断链表有环
14. orm框架
15. 做题:
(1)给一个数组 array 和一个数字 sum, 求这个数组的连续子数组的元素相加和 >= sum 解的个数。
数组元素大小:-10^9 <= array <= 10^9
比如:
array: [56,-21,56,35,-9], sum = 61
[56, -21, 56]
[56, -21, 56, 35]
[56, -21, 56, 35, -9]
[-21, 56, 35]
[-21, 56, 35, -9]
[56, 35]
[56, 35, -9]
(2)leetcode 45
美团
一面:
1.map的使用场景
2.HashMap和linkedhashmap的区别
3.spring-aop
4.代理如何实现
5.innodb的索引介绍
6.mysql中走了辅助索引是否还要用主索引
7.java中线程的状态(6种
8.消息队列的用处,怎么做到削峰的
9.redis过期策略
10.redis雪崩如何解决,服务降级常用的框架,怎么做到限流
11.如果只是redis大批量key过期,也会雪崩,怎么解决
12.制约数据库tps的硬件条件是什么
代码题:1.java实现bitmap,判断元素是否存在
2.实现一个阻塞队列,poll出队 put入队;要求put和poll都是线程安全的,并且队列满的时候put操作阻塞,队列空的时候poll阻塞
二面:
1.java中long的范围,为什么正数-1
2.threadlocal的使用场景,底层实现
3.java线程池怎么做到复用的
4.object中的方法
5.为什么重写了equal要重写hashcode方法
6.java中的线程状态(6种)
7.java的enum(枚举)和普通类有什么区别,能否实现接口
8.java的异常体系(error,exception一直往下分)
9.项目中的数据库表的设计
10.数据库中的int的数据类型,存储范围,所占字节
11.数据库中timestamp和time的区别
12.代码题:java给一个文件 输出其中每个单词输出的频次(涉及到IO的类)
三面:
1.自我介绍
2.项目
3.hashmap负载因子作用
4.负载因子调小的情景
5.java中的注解,类型,范围,好处
6.线程池中的参数
7.参数ThreadFactory使用在什么时候
8.核心线程数5 最大线程数50 队列20
这个时候来30个任务
这个时候在运行的线程数是多少 队列中有多少线程
9.想设计一个线程池刚起来的时候,就达到最大线程数,参数怎么设置
10.spring中出现循环依赖是否会报错,原因
11.单例模式的写法,不安全的怎么改成安全的
1.自我介绍
2.项目中 服务内存泄漏排查
3.java锁的理解
4.lock中的方法
5.线程池
6.线程和协程的区别
7.linux中多个文件中查找字符串
8.linux查看磁盘使用情况的命令
9.用一条SQL语句查询出每门课都大于80分的学生姓名
10.设计一个分布式系统快速查找文件
11.已知一天内用户登录登出的日志(数据量较大),求这一天用户在线的最大峰值和持续时间段
* 日志包含字段(userid, login_time, logout_time)
* 登录登出时间精确到秒
12.归并排序
13.dfs和bfs,和使用场景
14.有向图怎么做dfs
15.两个栈实现一个队列
三面:
1. 说实习,内存泄漏的排查
2. object类中有哪些方法
3. equal和hashcode经典问题(==)、equals和hashcode相等问题
4. final、finally、finalized的区别
5. map中哪些类是线程安全的,底层实现
6. threadlocal,能否替换concurrenthashmap(面试官说可以,安全和性能问题)
7. synchronized和reentrantlock的区别,reen的底层实现
8. lock
9. dubbo(rpc),rpc怎么注册服务,rpc中有用到代理模式吗
10. aop介绍,哪些部分可以用aop
11. redis的数据结构
12. zset底层数据结构,如何实现
13. 口述:如何判断链表有环
14. orm框架
15. 做题:
三面:
(1)给一个数组 array 和一个数字 sum, 求这个数组的连续子数组的元素相加和 >= sum 解的个数。
数组元素大小:-10^9 <= array <= 10^9
比如:
array: [56,-21,56,35,-9], sum = 61
[56, -21, 56]
[56, -21, 56, 35]
[56, -21, 56, 35, -9]
[-21, 56, 35]
[-21, 56, 35, -9]
[56, 35]
[56, 35, -9]
(2)leetcode 45
美团
一面:
1.map的使用场景
2.HashMap和linkedhashmap的区别
3.spring-aop
4.代理如何实现
5.innodb的索引介绍
6.mysql中走了辅助索引是否还要用主索引
7.java中线程的状态(6种
8.消息队列的用处,怎么做到削峰的
9.redis过期策略
10.redis雪崩如何解决,服务降级常用的框架,怎么做到限流
11.如果只是redis大批量key过期,也会雪崩,怎么解决
12.制约数据库tps的硬件条件是什么
代码题:1.java实现bitmap,判断元素是否存在
2.实现一个阻塞队列,poll出队 put入队;要求put和poll都是线程安全的,并且队列满的时候put操作阻塞,队列空的时候poll阻塞
二面:
1.java中long的范围,为什么正数-1
2.threadlocal的使用场景,底层实现
3.java线程池怎么做到复用的
4.object中的方法
5.为什么重写了equal要重写hashcode方法
6.java中的线程状态(6种)
7.java的enum(枚举)和普通类有什么区别,能否实现接口
8.java的异常体系(error,exception一直往下分)
9.项目中的数据库表的设计
10.数据库中的int的数据类型,存储范围,所占字节
11.数据库中timestamp和time的区别
12.代码题:java给一个文件 输出其中每个单词输出的频次(涉及到IO的类)
1.自我介绍
2.项目
3.hashmap负载因子作用
4.负载因子调小的情景
5.java中的注解,类型,范围,好处
6.线程池中的参数
7.参数ThreadFactory使用在什么时候
8.核心线程数5 最大线程数50 队列20
这个时候来30个任务
这个时候在运行的线程数是多少 队列中有多少线程
9.想设计一个线程池刚起来的时候,就达到最大线程数,参数怎么设置
10.spring中出现循环依赖是否会报错,原因
11.单例模式的写法,不安全的怎么改成安全的
腾讯
天美一面(挂):
1.c++熟悉吗,python呢,c++除了MFC还接触过其他的吗(我是真的不会C++)
2. 问实习内容
3. linux如何查看连接数
4.linux如何查看cpu和内存的使用情况
5.linux查看进程连接数和句柄
6.实习中内存泄漏,是物理内存还是虚拟内存
7.物理内存和虚拟内存的关系
8.linux中线程的状态(回答成java了
9.linux中线程状态的符号
10.linux如何查看线程状态
11.项目中为什么用多线程模型而不用IO多路复用模型(区别)
12.关系型数据库和非关系型数据库的区别
13.算法题1:一亿条32位的数据去重,如果直接加载进内存大概占多大(只说思路
14.算法题2:一个数组去重,优化空间
15.set的底层实现,为什么不用hash
16.各种排序的空间复杂度如何
捞起来的一面:
1.自我介绍
2.实习内容
3.java接口和抽象类的区别
4.线程池的使用,参数,选择原因 线程池实现线程的复用
二面:
1.自我介绍
2.项目的技术选型,项目中用的rpc框架,说一下dubbo的工作流程和工作原理
3.dubbo的负载均衡策略是否了解
4.redis和memcached的横向比较
5.一致性哈希,范围多大
6.一致性哈希中的虚拟节点,解决什么问题
7.项目中用rabbitmq,跟rocketmq,kafka的横向比较
8.项目中用到ORM框架,mybatis与hibernate的区别
9.epoll和select的区别
10.spring中的ioc和aop
11.实习中用到内部框架的场景,和开源的相对比
12.实习中觉得比较有亮点的开发经历
13.职业发展规划,城市选择,现在拿了哪些offer
14.个人的计划,技术向和个人生活向
1.自我介绍
2.实习中学到的点
3.自身的职业规划
4.英语考察
5.现在手上的offer,怎么选择
6.如果也有XXoffer,怎么选
滴滴
一面:
1.自我介绍
2.压测为什么用jmeter
3.流量过高怎么办
4.hashmap哪些情况线程不安全
5.copyonwritearraylist 的设计思想,是空间换时间吗
6.做题
二面:
1.自我介绍
2.测试全面性的保证
3.白盒测试怎么做
4.开发需求和理性的判断
5.项目中的订单的数据模型怎么设计的,哪些是主键,mysql中数据类型、数据字段怎么选择,订单编号怎么生成
6.mysql索引的类型,为什么用b+树,为什么要减少磁盘IO
7.怎么加索引的
8.什么情况索引失效,为什么用or会失效
9.技术选型(为什么用redis不用其他缓存、为什么选择MQ
10.redis中库存过期时间
三面:
#面经##阿里巴巴##字节跳动##腾讯##滴滴##校招##Java工程师#
1.自我介绍
2.问专利(这里我本来想疯狂吐槽,但是还没到offer我就憋回去了,卑微如我)
3.网易实习
4.介绍项目
5.mysql索引,hash索引和b+树索引时间复杂度
6.项目中哪里使用redis
阿里
简历面:
项目、实习
领域驱动设计
如何把一个小系统做成一个微服务
数据库的ACID
synchronized和volatile和lock作用、区别
反射,原理和应用
java线程池常用参数设置
Threadlocal
hashmap的遍历方式
bean的注入方式
IOC和AOP
bean的初始化过程
bean的注入方式
jvm类加载过程
深度学习常见的池化方法
SVM
如何评价一个算法的好坏
红黑树的原理、特性
数据库的索引实现方式
领域驱动设计
如何把一个小系统做成一个微服务
数据库的ACID
synchronized和volatile和lock作用、区别
反射,原理和应用
java线程池常用参数设置
Threadlocal
hashmap的遍历方式
bean的注入方式
IOC和AOP
bean的初始化过程
bean的注入方式
jvm类加载过程
深度学习常见的池化方法
SVM
如何评价一个算法的好坏
红黑树的原理、特性
数据库的索引实现方式
100万考生中,找出分数前100的
15分钟手写快排
一面:
实习、项目
rpc属于OSI哪一层
grpc的优缺点
rpc的调用方式 同步阻塞
OSI七层模型
rocketmq实现原理
jvm类加载过程
类加载的方式
hashmap是否线程安全,底层什么实现
concurrenthashmap底层
jvm垃圾回收机制
说一下并发(和并行的区别)
java有哪几种线程池
死锁
乐观锁和悲观锁
linux查看java是否起来的命令
linux关闭一个进程的命令
mybatis 的id能否重复,命名空间能否重复,命名空间的id能否重复
drop、delete、truncate的区别,是否是DML或者DDL的,能否回滚
mysql 中like % 能否走到索引
mysql中 % bin能否走到索引
单例模式的两种写法
redis中zest的底层数据结构,实现
rpc属于OSI哪一层
grpc的优缺点
rpc的调用方式 同步阻塞
OSI七层模型
rocketmq实现原理
jvm类加载过程
类加载的方式
hashmap是否线程安全,底层什么实现
concurrenthashmap底层
jvm垃圾回收机制
说一下并发(和并行的区别)
java有哪几种线程池
死锁
乐观锁和悲观锁
linux查看java是否起来的命令
linux关闭一个进程的命令
mybatis 的id能否重复,命名空间能否重复,命名空间的id能否重复
drop、delete、truncate的区别,是否是DML或者DDL的,能否回滚
mysql 中like % 能否走到索引
mysql中 % bin能否走到索引
单例模式的两种写法
redis中zest的底层数据结构,实现
leetcode 142
leetcode 225
二面:
http和https的区别
linux的top命令的参数
OSI七层每层都干什么的
Java内存满怎么办,怎么排查
java cpu高怎么排查
一个项目中用到多种数据库,用什么设计模式 (没问清楚目的还是策略)
集群session共享存储方案
100G无序数据,内存只有10G,找出中位数
MongoDB的底层实现
算法题(春招腾讯原题。。。):
1. 给定一个8x8的棋盘, 上面有若干个车(Rook),写一个函数检查这些车有没有互相攻击的情况.
2. 在1题的基础上, 给定一个初始棋盘状态, 问最多还能放置多少个车, 使他们不会互相攻击, 如何放置?
3. 在1,2的基础上, 如果棋盘不止有车, 还有象(Bishop)和皇后(Queen),该如何检查是否有互相攻击的情况.
走法:
车:横、竖均可以走,步数不受限制,不能斜走。
象:只能斜走。格数不限,不能越子。
后:横、直、斜都可以走,步数不受限制,但不能越子。
2. 在1题的基础上, 给定一个初始棋盘状态, 问最多还能放置多少个车, 使他们不会互相攻击, 如何放置?
3. 在1,2的基础上, 如果棋盘不止有车, 还有象(Bishop)和皇后(Queen),该如何检查是否有互相攻击的情况.
走法:
车:横、竖均可以走,步数不受限制,不能斜走。
象:只能斜走。格数不限,不能越子。
后:横、直、斜都可以走,步数不受限制,但不能越子。
三面:
先写两小时题目。。。
一、多个线程顺序循环打印递增的自然数,例如 3 个线程:t-0,t-1,t-2,程序输出如下:
t-0 0
t-1 1
t-2 2
t-0 3
t-1 4
t-2 5
二、leetcode670
给定一个正整数,可最多交换一次此正整数中的两位数字,求能得到的最大值,举例如下:
示例 1 :
输入: 1234
输出: 4231
解释: 交换数字1和数字4。
示例 2 :
输入: 8873
输出: 8873
解释: 不需要交换。
t-0 0
t-1 1
t-2 2
t-0 3
t-1 4
t-2 5
二、leetcode670
给定一个正整数,可最多交换一次此正整数中的两位数字,求能得到的最大值,举例如下:
示例 1 :
输入: 1234
输出: 4231
解释: 交换数字1和数字4。
示例 2 :
输入: 8873
输出: 8873
解释: 不需要交换。
三、
给定一个字符串以及多个子串,对于在字符串中出现的子串可以多次移除,求多次移除后能够得到的最短字符串长度。输入: 第一行为一个字符串,第二行为多个子串,字符串长度大于0
输出: 多次移除后能够得到的最短字符串长度
例如:
输入:
"ccdaabcdbb"
["ab","cd"]
输出:
2
解释:
ccdaabcdbb -> ccdacdbb -> cabb -> cb (length = 2)
输入:
"abcabd"
["ab","abcd"]
输出:
解释:
abcabd -> abcd -> "" (length = 0)
给定一个字符串以及多个子串,对于在字符串中出现的子串可以多次移除,求多次移除后能够得到的最短字符串长度。输入: 第一行为一个字符串,第二行为多个子串,字符串长度大于0
输出: 多次移除后能够得到的最短字符串长度
例如:
输入:
"ccdaabcdbb"
["ab","cd"]
输出:
2
解释:
ccdaabcdbb -> ccdacdbb -> cabb -> cb (length = 2)
输入:
"abcabd"
["ab","abcd"]
输出:
解释:
abcabd -> abcd -> "" (length = 0)
开面:
说题的思路
说一下观察者模式
说一下Spring-AOP,面向切面怎么切的
看过哪些源码、hashmap,初始容量,负载因子、是否会变成全链表,死锁原因(解决方法)
线程池、核心参数、如何设置
微服务的拆分、单体架构的优缺点、实际应用场景
分布式系统的设计思路
然后。。。就没然后了 等了两周,期间内推人也不理我,两周后收到拒信。。。(可能是因为之前预面试蹭的太多了,总要还回来的)
目前拿得出手的暂时就是这些了,像网易快手京东等后面看还能不能补上,有的是凉经有的是过了的,大家面试前还是做好充足的准备,我在面试过程中犯的nt错误不止一次了。。。
之前在牛客借鉴了那么多面经,这次发帖既是还愿也是许愿,很感谢各位大佬,也许愿其他offer