字节跳动面经(已获Offer)校招
一面
- 在校项目后端是怎么搭建的
- “小程序不支持缓存二进制,因此将小图片BASE64编码后缓存到本地”,还有没有其他优化方案
- 结合项目讲下加解密方案
- 报表接口怎么写的,怎么支持免部署灵活修改
- ES怎么聚合计算
- ES怎么做range查询
- ES分词原理
- new一个对象的生命周期
- 老年代除了空间不够,还有什么时候会触发FGC
- 新生代的对象年龄达到15的时候,会晋升到老年代,为什么是15?
- MySQL为什么要有最左前缀原理
- 算法题:父串里找子串,即indexOf
二面
- 结合项目问
- 项目里F5怎么实现会话保持
- 追问ISO七层模型,F5加cookie在哪一层,ip hash在哪一层
- F5跟Ha区别,为什么F5性能比Ha好,硬件配置相同的情况下,F5还比Ha好吗
- LVS的DR模式
- Keepalived的VIP漂移原理
- 讲自己比较擅长的技术
- SQL调优经验
- 项目整个数据库的最大的表有多大
- 微服务框架熟悉哪个
- 看过哪些源码
- 最近在学什么,为什么学
- 怎么理解高可用
- 面试官:你有什么要问我的吗
三面
- 介绍项目难点
- 零拷贝
- FGC的几种情况,怎么排查问题
- 手机刷抖音的时候,视频突然卡住,有哪些原因
- 为什么离职
腾讯Java后端一二面面经 校招
一面
1.问项目。
2.https能否抵御重放攻击?
3.List remove第一个元素之后后面的元素会移动吗?
4.Hash map =new HashMap(50)这个过程中map进行了几次扩容?
5.使cache命中率最高的算法是?
6.无法保证每趟排序至少能将一个元素放到最终位置上的算法是?
7.阻塞和非阻塞网络io有什么区别,分别有哪些应用场景?
8.用浏览器打开一个网址的时候会用到哪些协议?
9.应用程序的日志都要记录哪些内容?
10.Springbean如何保持线程安全? 使用局部变量可以保证安全,为什么不用实例变量?
11.父子类静态代码块和构造函数的先后执行顺序?
12.请列举ip地址和mac地址的区别?
13.如何让三个线程按照指定顺序执行?
14.手撕:对字符串Hello world! 进行反转,要求用递归的方法。
二面
1.拷打项目
2.两个后端程序通过tcp进行数据传输,是否有可能有数据丢失?
3.怎么创建一个线程池?
4.设置缓存区大小为8,根据最近五分钟访问次数排序,替换次数最少的缓存属于哪种缓存算法?
5.介绍一下spring的事务隔离级别?
6.解释一下ioc和aop?
7.Mysql联合索引(a,b,c)相当于创建了a b c三个索引对吗?
8.什么是半双工通信?
9.实现接口的方法对访问修饰符有什么要求?
10.Spring cloud是如何实现高可用性的?
11.Mysql中innodb的主键索引跟其他索引的区别?
12.聚簇索引中两个字段,一个类型是int,一个类型是varchar,在聚簇索引的叶子节点存储的数据类型是什么?
13.Jvm判断如何判断对象是否存活?常见的gcroot有哪些?堆里面的对象可以作为gcroot吗?
字节跳动面经(已拿offer!)社招
一面
1、final是干嘛的,用在什么地方,你们项目中有用到过吗
2、有那些集合,一个一个说linkedlist,arraylist,hashmap
3、说一下hashmap基本结构,和hashmap的扩容,hashmap的并发
4、说一下jvm的垃圾回收器,有那些,算法有哪些,他们的优缺点
5、线程池用过吗?用来干什么?说一下线程池。
6、做过sql优化吗(我简历上写了),说一下吧。
7、mysql的索引说一下,b+树的优缺点
8、说一下dubbo的架构(简历上有写)
9、说一下kafka的topic,partition,broker概念
10、kafka的主从选举机制
11、redis用过吗?有哪些数据类型,常用什么数据类型?我有说zset,那说一下zset的底层原理吧
12、linux中你用哪些命令
13、linux中想看一个文件中某个关键字出现的次数(我不会,后面还会问到。。)
15、做题:leetcode56题,合并区间。
二面
直接先做题:leetcode70 跳台阶,这个我做过所以写的很快,还说了下递归和动态规划的优缺点,
然后特别,面试官发给了一个飞书文档的连接,上面有很多实际的问题,大致有这些:
1、给一个实习生写的代码,请指出他的问题
2、给定一个订单和商品的要求,请设计表结构,然后有三个问题,分别写3条sql来。根据联合索引来设计索引。
3、接着第二题,用redis来存储上面问题查询出来的结果,该怎么写redis
然后:
1、问一个之前问过你当时你没回答上来的:linux中想看一个文件中某个关键字出现的次数,嘻嘻,那天面试完我去百度了!
2、说一下redis的主从复制,缓冲区大小,超过缓冲区大小怎么办?
3、tcp三次握手,为什么三次,为什么四次
4、tcp快速恢复,快速启动,慢启动
5、进程和线程的区别(这一部分没细问,他说看你是搞java,如果是搞c的会问的更加深入。)
我算法题做的比较快,问完上面的问题后就花了30分钟,面试官看太快了,就说你还有什么比较拿手的,我就说了说我做过一点mysql的治理。然后又聊了10分钟
三面
直接先做题:合并两个有序链表。。
1、你做过哪些项目?
2、说一个你觉得难度最大的项目,你是怎么解决技术难点问题的。
3、你做过微服务项目吗?用的什么技术?
4、你说一下springcloud 的 hytrix的原理是什么?
5、说一下dubbo的原理。
6、用过redis吗,项目中怎么用的。
7、知道微服务网格吗,知道微服务治理吗?
8、你的优点和缺点
科大讯飞java面经(意向)校招
一面
1.项目外派、多少成员、具体分工(前后端等)
2.项目技术栈,问了vue我啥也不会
3.怎样观察sql性能,调优
4.为什么用索引,mysql为什么用B+树
5.Mysql执行一条指令的过程
6.AOP写过吗,还可以用来干什么
7.IOC的理解
8.Shiro的应用
9.项目管理,提交冲突怎么办
10.项目流程
11.项目部署方式
12.最近在学技术吗
13.反问
二面
1.项目中负责的功能
2.Netty:设计流程,为什么选它
3.分库分表:有没有测试过跨表查询
4.当时设计索引的考量
5.在项目中学习了哪些技术点,具体讲讲某个技术怎么学习的
6.项目开发有没有监控,如何测试错误
7.工作城市、工作规划
8.反问
三面
1.聊了一些项目负责人的职责
2.聊项目,问的不细,主要是总体方向
3.Java抽象类和接口
4.Java重载的一个问题:方法名一样参数一样返回值不同,是重载吗,我说会报错
5.聊了工作地点、对公司了解之类的话题
6.对公司的了解
7.反问
百度 Java后端一二面面经 校招
一面
1.问项目(说觉得我这个项目没什么难度,上压力)
2.设计一个秒杀系统,请给出大致思路。
3.如果有十万个请求同时访问你的系统该怎么办?
4.超买超卖问题怎么解决?
5.事务并行会有哪些问题?
6.Mysql有哪些锁请展开说说?
7.哪些字段适合建立索引?
8.Java中sleep方法会一直占用cpu吗?为什么?wait方法会占用cpu吗?
9.如何设置线程数量?单cpu设置多线程有用吗?
10.OOM出现问题的情况有哪些?怎么排查?
11.分布式ID的生成策略,有哪些优缺点?
12.Spring的IOC和AOP在哪些情况下使用?IOC使用了哪些设计模式?
13.秒杀系统重复点击怎么解决?幂等性什么意思?
14.手撕:给定一个数组,要求找出将数组划分为数量在m和n之间的两个数组的k,一个数组的所有值都大于k一个数组的所有值都小于等于k,求k的最小值。
二面
1.问项目。
2.Ioc中的控制和反转分别体现在什么地方?
3.Concurrenthashmap实现原理?
4.Tcp/ip四层模型每层怎么连接的?tcp支持广播吗?
5.Git什么情况下会产生冲突?
6.讲讲你了解的设计模式?
7.什么是回表查询?
8.怎么设置公平锁和非公平锁?
9.往set中存自定义对象需要注意什么?
10.流量控制的是哪一层进行的?
11.JVM内存模型讲一下,介绍下每个区域的作用?
12.K8S有了解吗?简单介绍一下?
13.手撕:求一个树距离最长的两个节点。
得物Java开发面经 校招
1.自我介绍
2.Java中的继承和多态 接口和抽象类的区别 StringBuffer和StringBuilder的区别 String为什么不能拆分
3.error和exception的区别 怎么处理exception
4.什么是泛型 泛型的作用 泛型的使用方式有哪几种(答得模棱两可)
5.HashMap的遍历方式有哪几种(只会一种) HashMap与HashTable的区别?(没答上来) HashMap底层?(为什么是8和64没答出来 为什么选择红黑树这种数据结构 介绍一下红黑树)
6.Java中实现多线程
7.Lambda表达式了解吗(答的不好,很多细节没讲出来)
8.你最擅长的Java框架,介绍一下 Spring的核心思想
9.什么是动态代理(这里答的不好,卡壳)
10.有没有遇到过OOM,如何排查(不会)
11.进程线程的区别,提示资源分配,空间占用方面
12.IP地址和MAC地址区别
13.数据库的事务,并发事务会带来哪些问题,MySQL的默认隔离级别 如何在数据库中实现数据的备份和恢复
14.如何创建一个线程池,拒绝策略有什么,怎么设置线程池的大小(动态修改)
15.介绍项目架构,GateWay,建权操作,为什么使用RabbitMQ,ES的作用,项目难点
16.最近的一次学习收获 新领域如何快速学习
17.一道SQL题两道编程题
阿里巴巴高德地图 后端 社招
先说下本人情况,本科4年工作经验,面试是高德地图的某部门:
一面
1、项目经历,这块没有问什么特别的问题,主要是询问了一些亮点和优化点,并没有根据这个细问。
2、用过哪些消息中间件?用过的框架?
3、哪些部分的知识比较熟悉?
4、Mybatis 的 ${} #{}的区别是什么?
5、Spring MVC中,@RequestMapping的实现原理?这边没有了解过,询问了你来设计会怎么设计?url与接口的怎么完成注册?怎么根据url匹配到接口?如果匹配到多个接口,如果选择?
6、Mysql、Redis、MQ 之间的区别和适用场景?
7、Redis为什么这么快?答了数据结构的优化、AIO、内存存储。又问了Mysql不是AIO吗?是怎么实现的?说了没看就没细问
8、为什么不用Redis做数据存储,而选择用Mysql?答了数据持久性保证和事务
9、两个文件,各有两个行,一个是身份证号、名字,一个是身份证号、年龄。内存不足的情况下,如果进行合并?
10、算法题:反转链表。共享屏幕,允许了IDEA编码
Java后端杭州小厂实习面经 校招
两轮加一起,顺序忘了
1.java根类什么?
2.object有哪些方法?
3.spring MVC执行流程?
4.描述一下mybatis plus?
5.redis用来做什么?
6.hashmap底层?
7.hashmap线程不安全,如果想要安全用什么?
8.基本的sql语句?
9.sql索引失效情况举例5种?
10.http抓包用过吗,响应头有啥?
11.springcloud了解过吗,是用来干啥的?
12.线程创建方式?
13.线程池创建方式?
14.jdk17特性了解过吗?
15.rabbitMQ是用来做什么的?
16.git使用过吗?
17.项目有关的
商汤Java二面面经 校招
二面
开场和面试官聊了几分钟,气氛还挺轻松,后面面试官一直追着某一个点深挖,挖的实在答不上来了才换别的话题,压力山大
1.介绍一下项目实现的功能,技术栈等
2.项目是单体服务还是微服务,UI是用什么做的
3.介绍一下Kafka,有什么功能
4.Kafka里面有哪些专业的概念?术语名词?
5.Kafka中partition越多,吞吐量越大吗?
6.消息发送到Kafka中,是存在topic还是partition还是哪里
7.topic和partition是什么关系,可以没有partition只有topic吗?
8.把消息发到topic上,消息存储是有序的吗?
9.怎么保证消息发到一个partition里面
10.怎么保证Kafka的冗余性,使数据不丢失?
11.消息写到partition里面是同时写到主副partition里面还是写完主partition再同步到副partition?
12.partition副本太多会有什么影响?
13.可以在同一个服务器上部署多个Broker吗,可以不放在Docker里面吗
14.Kafka的默认端口是什么
15.你是怎么看ES的
16.项目的Spring Boot的版本是多少
17.项目过程中学到什么?有什么心得体会
18.你是怎么衡量并发数的
19.jmeter需要配置哪些参数
20.了解过restful api吗
21.https比http在连接过程中多了哪些环节
22.典型的对称加密和非对称加密算法有哪些
23.Java 8里面有哪些新特性
24.lamda表达式有哪些使用场景
25.比较器Comparator类需要重写什么方法呢
26.compare方法和compareTo有什么区别
27.假设服务器里面有A.txt的文件,文件里有许多英文字符,说一下B.java实现读出A.txt中内容的思路
28.Java里面处理文件的常见的工具类有哪些
29.BufferedReader和BufferedInputStream之间的区别
30.刚才读文件的场景应该用字符流还是字节流呢
31.如何将字符流中的byte转成字符呢
32.读取文件这个逻辑中还需要注意什么
33.读文件可能发生哪些Exception呢
34.异常捕获可以写多个catch吗?
35.可以只写try不写catch吗,能编译成功吗?
36.finally是必要的吗?
37.可以只有try和finally没有catch吗?
38.假如我们上面的B.java写完了,用什么命令运行起来?
39.假如B.java用到了第三方的类,在别的目录下,要怎么编译?
40.怎么判断服务器的端口是否被占用?
41.怎么查看linux当前目录的大小
42.Maven的生命周期
43.用Maven编译的命令是什么
44.用过哪些版本控制软件,创建git分支的命令是什么
45.反问环节
拼多多java面经 社招
一面
-
为什么蚂蚁只待了三个月?没转正?
-
Java中的HashMap、TreeMap解释下?
-
TreeMap查询写入的时间复杂度多少?
-
HashMap多线程有什么问题?
-
CAS和synchronize有什么区别?都用synchronize不行么?
-
如果要保证线程安全怎么办?(ConcurrentHashMap)
-
ConcurrentHashMap怎么实现线程安全的?
-
get需要加锁么,为什么?
-
volatile的作用是什么?
-
底层怎么实现的?
-
在多核CPU下,可见性怎么保证?
-
聊项目,系统之间是怎么交互的?
-
系统并发多少,怎么优化?
-
给我一张纸,画了一个九方格,都填了数字,给一个MN矩阵,从1开始逆时针打印这MN个数,要求时间复杂度尽可能低
-
可以先说下你的思路(说了什么时候要变换方向的条件,向右、向下、向左、向上,依此循环)
-
有什么想问我的?
二面
-
自我介绍下
-
手上还有其他offer么?
-
部门组织结构是怎样的?
-
系统有哪些模块,每个模块用了哪些技术,数据怎么流转的?
-
链路追踪的信息是怎么传递的?
-
SpanId怎么保证唯一性?
-
RpcContext是在什么维度传递的?
-
Dubbo的远程调用怎么实现的?
-
Spring的单例是怎么实现的?
-
为什么要单独实现一个服务治理框架?
-
谁主导的?内部还在使用么?
-
逆向有想过怎么做成通用么?
-
有什么想问的么?
三面
-
职业发展
-
是否有其他offer
-
入职意向
-
顺便说了下公司的福利待遇等
网易有道java开发面经 校招
一面
- 自我介绍
- 实习相关的内容:项目,技术,微服务。
- SpringBoot相关的内容:
- 注解
- Spring和SpringMVC相关注解
- 字符串操作:
- String
- StringBuilder
- StringBuffer
- 集合框架:
- 能讲多少讲多少,一直到HashMap和ConcurrentHashMap。
- 线程安全:
- synchronized
- Lock等方法
- Spring事务:隔离级别
- 数据库语法
- 设计模式
- 手写单例模式
- Linux命令:
- 查看Java进程
- 查看端口占用情况
- 查找中位数
- 反问环节
二面
- 自我介绍
- 项目介绍:
- 难点
- 解决方案
- 场景题:设计一个上传图片的系统,从上传到存储,再到用户获取图片的全过程。讨论内容包括:
- 如何存储
- 如何查询
- 存储和下载的加速
- 服务器扩容
- 缓存问题
- 声音波形处理:
- 最初使用声音波形图,目标是去除静音区间
- 简化为使用一个数组,处理上下波动的值,小于某个值的连续区间视为静音
- 进阶:如果静音区间长度不够,则视相邻的两个声音区间为1个区间
三面
- 自我介绍
- 陌陌实习相关
- 开放题:设计微信朋友圈,包括发送朋友圈以及查看朋友圈。讨论应涉及的功能和表设计。