百度、抖音、京东等Java后端面试岗,已拿三个offer
百度一面(现场)
自我介绍
Java中的多态
为什么要同时重写hashcode和equals
Hashmap的原理
Hashmap如何变线程安全,每种方式的优缺点
垃圾回收机制
Jvm的参数你知道的说一下
设计模式了解的说一下
手撕一个单例模式
算法题目
手撕算法:反转单链表
手撕算法:实现类似微博子结构的数据结构,输入一系列父子关系,输出一个类似微博评论的父子结构图
手写java多线程
手写java的soeket编程,服务端和客户端
手撕算法:爬楼梯,写出状态转移方程
智力题:时针分针什么时候重合
百度二面(现场)
自我介绍
项目介绍
服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器?
TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl?
数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决?
Linux查看cpu占用率高的进程
手撕算法:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。
然后继续在这个问题上扩展
求出最短那条的路径
递归求出所有的路径
设计模式讲一下熟悉的
会不会滥用设计模式?
多线程条件变量为什么要在while体里?
你遇到什么挫折,怎么应对和处理?
百度三面(现场)
自我介绍
项目介绍
Redis的特点
Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点?
Redis使用哨兵部署会有什么问题?【我说需要扩容的话还是得集群部署。】
说一下JVM内存模型把,有哪些区,分别干什么的?
说一下gc算法,分代回收说下
MySQL的引擎讲一下,有什么区别,使用场景呢?
分布式事务了解么?
反爬虫的机制,有哪些方式?
头条抖音Java (三面)
一面:
hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
Linux的共享内存如何实现,大概说了一下
socket网络编程,说一下TCP的三次握手和四次挥手
同步IO和异步IO的区别?
Java GC机制?GC Roots有哪些?
红黑树讲一下,五个特性,插入删除操作,时间复杂度?
快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少?
二面:
自我介绍,主要讲讲做了什么和擅长什么
设计模式了解哪些?
AtomicInteger怎么实现原子修改的?
ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
redis数据结构?
redis数据淘汰机制?
三面(约五十分钟):
mysql实现事务的原理(MVCC)
MySQL数据主从同步是如何实现的?
MySQL索引的实现,innodb的索引,b+树索引是怎么实现的,为什么用b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应?
如果Redis有1亿个key,使用keys命令是否会影响线上服务?
Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么?
遇到最大困难是什么?怎么克服?
未来的规划是什么?
你想问我什么?
京东4面(Java研发)
一面(基础面:约1小时)
自我介绍,主要讲讲做了什么和擅长什么
springmvc和spring-boot区别
@Autowired的实现原理
Bean的默认作用范围是什么?其他的作用范围?
索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?
Java线程池的原理?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?
hashmap原理,处理哈希冲突用的哪种方法?
还知道什么处理哈希冲突的方法?
Java GC机制?GC Roots有哪些?
Java怎么进行垃圾回收的?什么对象会进老年代?垃圾回收算法有哪些?为什么新生代使用复制算法?
HashMap的时间复杂度?HashMap中Hash冲突是怎么解决的?链表的上一级结构是什么?Java8中的HashMap有什么变化?红黑树需要比较大小才能进行插入,是依据什么进行比较的?其他Hash冲突解决方式?
hash和B+树的区别?分别应用于什么场景?哪个比较好?
项目里有个数据安全的,aes和md5的区别?详细点
二面(问数据库较多)
自我介绍
为什么MyISAM查询性能好?
事务特性(acid)
隔离级别
SQL慢查询的常见优化步骤?
说下乐观锁,悲观锁(select for update),并写出sql实现
TCP协议的三次握手和四次挥手过程?
用到过哪些rpc框架
数据库连接池怎么实现
Java web过滤器的生命周期
三面(综合面,约一个小时)
自我介绍
ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
加锁有什么机制?
ThreadLocal?应用场景?
数据库水平切分,垂直切分的设计思路和切分顺序
Redis如何解决key冲突?
soa和微服务的区别?
单机系统演变为分布式系统,会涉及到哪些技术的调整?请从前面负载到后端详细描述
设计一个秒杀系统?
四面(HR面)
1.你自己最大优势和劣势是什么
2.平时遇见过什么样的挑战,怎么去克服的
3.工作中遇见了技术解决不了的问题,你的应对思路?
4.你的兴趣爱好?
5.未来的职业规划是什么?
头条三面
一面
1.自我介绍
2.项目难点,如何解决的
3.redis:底层数据结构,过期策略,持久化方式及区别
4.kafka:如何保证消息持久性,如何确保消息不丢失,消息同步机制
5.zk如何选主(zab),一个写请求如何执行的,选举为什么要过半
6.java魔数是啥(这个不会。。。)
7.算法题
实现该方法,15分钟
public void printComposite(int[] array, int n) {…}
//给定一个array={1,2,3,4,5}
//当n=2, 输出[1,2],[1,3],[2,3]…
//当n=3, 输出[1,2,3],[1,2,4],[2,3,4]…
二面
1.自我介绍
2.java:aqs是如何实现的,synchronized如何实现的,这俩有啥区别,cas是啥
3.线程池有用过吗,讲下线程池是怎么实现的
4.其他问题忘了…
5.mysql锁机制
在Innodb,RR隔离级别下:
SELECT * FROM users WHERE name = ‘zhangsan’;
给name字段加不同的索引,有什么区别(锁)
case:
(1).唯一索引
(2).普通索引
(3).不创建索引
6.编程题:实现blockingqueue的put和get方法
三面
1.自我介绍,项目介绍,讲一个自己发现问题并解决的经历,聊业务
2.spring-bean是如何加载的,如何解决循环依赖
3.假如希望做一个集群限流器,怎么做,我答可以用redis,实现一个滑动窗口。再追问具体如何实现
4.其他问题忘了…
5.算法题,二叉树最远距离
定义:二叉树节点间距离指的是连接两个节点的边的个数,例如:下图中节点 S 和节点 E 的距离是3.
问题:对于一棵任意形状的二叉树,求二叉树中距离最远的两个节点的距离值。
示例:下面这棵树中最远距离是6 (节点S和H 或S和K 等).
A
/ \
B C
/ \ / \
D E F J
/ \ / \
S T H K
6.业务程序设计题
给了一个业务场景,大体意思是让设计一个异步导出excel的功能,如果有多个任务,如何平均分配到不同节点上
如果有大任务和小任务,希望小任务优先执行,如何设计
再谈谈消息队列
基于以上四个大厂的面试答案我都整理好了,需要的可以找我领取,领取方式:
点击这里《Java面试BAT通关手册》即可领取!
结尾:这半年筹备中,我自己也在不断找资料学习,也通过很多渠道和朋友要到一份Java岗最新的学习资料大全
重点给大家推荐,这份资料中的Java岗面试题库,里面都有Java后端以及一些大厂的面试场景和面试题,我也是不断刷题提高自己的眼界
Java岗技术面试题库(5000+面试题)
这套题库里面中包含了以下很多个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM…
还没有评论,来说两句吧...