阿里、美团、网易、华为等二十厂秋招Java面经大合集

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介:

文章有点长,后面会有一些架构资料分享给大家,请耐心看完
​Cvte提前批
阿里内推
便利蜂内推
小米内推
金山wps内推
多益网络
拼多多学霸批
搜狗校招
涂鸦移动
中国电信it研发中心
中兴
华为
苏宁内推
美团内推
百度
腾讯
招商银行信用卡
招银网络科技
网易
Vivo
Cvte提前批

**一面(电话)
**
自我介绍
介绍你的项目
加密解密了解么?几种算法,讲一下你了解的
多线程了解么?什么是线程安全?
说一个你最熟悉的设计模式
讲一下你项目中用到了哪些设计模式
Java的hashmap的原理
Hashmap的线程安全性,什么是线程安全的?如何实现线程安全
二面(视频)

自我介绍
介绍项目
Mysql的数据库引擎,区别特点
设计模式了解?讲一下最熟悉的
写一个单例模式,答主写的是双检查锁单例,问了为什么用Volatile,synchronize移到方法最外面会怎么样?
单例模式在你项目里哪些应用?
数据连接池
对高负载有了解么
你意向的技术方向是哪块?(答主回答的高并发,然后面试官说他是做高负载的)
对高并发有了解么?
阿里内推

一面(电话)

听说你有博客,博客里大概有什么内容?
项目介绍,最复杂的表
Hashmap的原理
Hashmap为什么大小是2的幂次
介绍一下红黑树
Arraylist的原理
场景题:设计判断论文抄袭的系统
堆排序的原理
抽象工厂和工厂方法模式的区别
工厂模式的思想
object类你知道的方法
哪里用到了工厂模式
Forward和redirect的区别
**二面(视频)
**
1, 自我介绍

2, 项目介绍

3, 项目架构

4, 项目难点

5, Synchronize关键字为什么jdk1.5后效率提高了

6, 线程池的使用时的注意事项

7, Spring中autowire和resourse关键字的区别

8, Hashmap的原理

9, Hashmap的大小为什么指定为2的幂次

10, 讲一下线程状态转移图

11, 消息队列了解么

12, 分布式了解么

便利蜂内推

一面(电话)

自我介绍
项目介绍
volatile和synchronized
来个算法题:一个无序数组,其中一个数字出现的次数大于其他数字之和,求这个数字 (主元素)
答完再来一个:一个数组,有正有负,不改变顺序的情况下,求和最大的最长子序列
项目用到什么数据库?隔离级别?每个隔离级别各做了什么
数据库的索引?mysql不同引擎索引的区别
垃圾回收算法的过程
你了解的垃圾收集器? Cms收集器的过程
怎样进入老年代?
平时用到了什么设计模式?
讲一下你最熟的两个设计模式
用过什么系统?shell写过脚本吗?
小米内推

一面(电话)

自我介绍
看你最近博客写的是redis,介绍redis和mysql的区别
Redis的应用场景
Hashmap的原理
Hashmap中jdk1.8之后做了哪些优化
垃圾回收的过程
Jvm的参数设置
项目中的优化
金山wps内推

一面(电话)

自我介绍
项目介绍
对Java的面向对象的理解
对java多线程的理解
数据库的索引
数据库的隔离级别
设计模式的理解
讲几个设计模式
对算法有什么了解?答主先回答了动态规划,解释了一下dp的思想
快排的思想讲一下
**二面(电话)
**
自我介绍
项目介绍
Tcp怎么保证可靠传输(中间穿插了好多小问题)
Tcp的拥塞控制
让你设计一个即时聊天的系统
支付宝转账,是如何实现,几个小时通知转账成功的(面试官想让回答长连接,答主一直没get到点)
解释一下长连接
多益网络

一面(视频)

自我介绍
对面向对象的理解
介绍多态
Java新建线程有哪几种方式
线程池的作用
看过框架源码么
拼多多学霸批

一面(现场面)

自我介绍
项目介绍
手撕算法:一棵二叉排序树,给定一个数,找到与给定数差值最小的数
场景题:设计一个系统,解决抢购时所需要的大量的短链接的功能,如何保证高并发,如何设计短链接
二面(现场面)

代码量多少
给了一张纸,各种名词,会的写出来
然后给它解释那些会的
设计题:设计一个系统,记录qq用户前一天的登录状态,提供16g内存和2tb的硬盘,要做到查询指定qq号的前一天的登录状态,快速查询O(1)复杂度
搜狗校招

一面(现场):

自我介绍
项目介绍
手撕算法:两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,答主用的二分,时间复杂度为O(log (m+n))。结果面试官不满意,让用归并的思想做,时间复杂度其实更高了
介绍网络编程
涂鸦移动

一面(现场)

自我介绍
项目介绍
数据库的索引原理
索引使用的注意事项
数据库的引擎
Java垃圾回收机制
Java的finalize,finally,final三个关键字的区别和应用场景
String类可以被继承么
手撕算法:假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。
给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。
**二面(电话)
**
自我介绍
对游戏的了解
项目介绍
算法题:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。
红黑树
Redis的应用
中国电信it研发中心

一面(现场)

自我介绍
项目介绍
项目里用的什么服务器
自己写一个tomcat服务器,你会怎么写
分布式服务器会出现哪些问题
怎么解决session一致性缓存的问题
Redis的优势和特点
一千万用户并发抢购,怎么设计
如果成功的用户有10万,redis存不下怎么处理
你项目中的难点
**二面(现场)
**
自我介绍
项目介绍
介绍spring中的熟悉的注解
让你实现autowire注解的功能你会如何实现
Redis和mysql的区别
Redis的持久化有哪些方式,具体原理
中兴

专业面(现场)

自我介绍
项目介绍
你了解的设计模式,讲两个
Java collection类,集合,讲两个你了解的,说实现原理
Java线程池的作用
你觉得你在你实验室处于什么水平
**综合面试(现场)
**
说好的综合面试纯聊天呢?

1. 自我介绍

2. 项目介绍

3. 说一下你知道的设计模式

4. 画一个策略模式的uml图

5. Java多线程的理解

6. 内存屏障是什么

7. 数据库索引

8. 项目中的优化

9. 然后开始聊人生

10. 你的缺点,你最不喜欢什么样的人,你的家庭等等

华为

**一面(现场)
**
自我介绍
项目介绍
项目架构
项目一个完整的执行流程(由于我是搞java的,而面试官是搞c的,所以全程尬聊)
项目优化
二面(现场)

自我介绍
项目介绍
怎么管理项目进度
平常的爱好
感觉面试官也不是搞java的,所以又是一阵尬聊
苏宁内推

一面(现场)

自我介绍
项目介绍
面过哪些公司了
有哪些offer了
聊到多益,于是开始聊最近微博上很火的多益老板
得出结论,我和面试官都觉得多益老板三观有问题,但做游戏就是要偏执的人
你博客主要哪方面的
多线程并发包了解么
讲一下countDownLatch
苏宁聊了20分钟八卦就面完了,一轮技术面

美团内推

**一面(电话)
**
自我介绍
项目介绍
Redis介绍
了解redis源码么
了解redis集群么
Hashmap的原理
hashmap容量为什么是2的幂次
hashset的源码
object类你知道的方法
hashcode和equals
你重写过hashcode和equals么,要注意什么
假设现在一个学生类,有学号和姓名,我现在hashcode方法重写的时候,只将学号参与计算,会出现什么情况?
往set里面put一个学生对象,然后将这个学生对象的学号改了,再put进去,可以放进set么?并讲出为什么
Redis的持久化?有哪些方式,原理是什么?
讲一下稳定的排序算法和不稳定的排序算法
讲一下快速排序的思想
二面(现场)

自我介绍
讲一下数据的acid
什么是一致性
什么是隔离性
Mysql的隔离级别
每个隔离级别是如何解决
Mysql要加上nextkey锁,语句该怎么写
Java的内存模型,垃圾回收
线程池的参数
每个参数解释一遍
然后面试官设置了每个参数,给了是个线程,让描述出完整的线程池执行的流程
Nio和IO有什么区别
Nio和aio的区别
Spring的aop怎么实现
Spring的aop有哪些实现方式
动态代理的实现方式和区别
Linux了解么
怎么查看系统负载
Cpu load的参数如果为4,描述一下现在系统处于什么情况
Linux,查找磁盘上最大的文件的命令
Linux,如何查看系统日志文件
手撕算法:leeetcode原题 22,Generate Parentheses,给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。
三面(现场)

三面没怎么问技术,问了很多技术管理方面的问题

自我介绍
项目介绍
怎么管理项目成员
当意见不一致时,如何沟通并说服开发成员,并举个例子
怎么保证项目的进度
数据库的索引原理
非聚簇索引和聚簇索引
索引的使用注意事项
联合索引
从底层解释最左匹配原则
Mysql对联合索引有优化么?会自动调整顺序么?哪个版本开始优化?
Redis的应用
Redis的持久化的方式和原理
技术选型,一个新技术和一个稳定的旧技术,你会怎么选择,选择的考虑有哪些
说你印象最深的美团点评技术团队的三篇博客
最近在学什么新技术
你是怎么去接触一门新技术的
会看哪些书
怎么选择要看的书
百度

一面(现场)

自我介绍
Java中的多态
Object类下的方法
Finalize的作用和使用场景
Hashcode和equals
为什么要同时重写hashcode和equals
不同时重写会出现哪些问题
Hashmap的原理
Hashmap如何变线程安全,每种方式的优缺点
垃圾回收机制
Jvm的参数你知道的说一下
设计模式了解的说一下啊
手撕一个单例模式
快速排序的思想讲一下
给个数组,模拟快排的过程
手写快排
设计题,一个图书馆管理系统,数据库怎么设计,需求自己定
二面(现场)

自我介绍
项目介绍
Redis的特点
分布式事务了解么
反爬虫的机制,有哪些方式
手撕算法:反转单链表
手撕算法:实现类似微博子结构的数据结构,输入一系列父子关系,输出一个类似微博评论的父子结构图
手写java多线程
手写java的soeket编程,服务端和客户端
进程间的通信方式
手撕算法: 爬楼梯,写出状态转移方程
智力题:时针分针什么时候重合
三面(现场)

由于三面面试官不懂java,我不熟c加加,所以全程尬聊

自我介绍
项目介绍
手撕算法:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。
然后继续在这个问题上扩展
求出最短那条的路径
递归求出所有的路径
设计模式讲一下熟悉的
会不会滥用设计模式
多线程条件变量为什么要在while体里
你遇到什么挫折
腾讯

一面(现场)

自我介绍
项目介绍
Hibernate的作用,你的理解
多线程的理解,如何保证线程安全
mysql数据库的引擎和区别
场景题:千万用户抢购,如何处理高并发,并且有一个链接,指向前一天抢购成功的用户,如何设计这个系统和数据库
如果后台处理抢购请求的服务器,每次最多承受200的负载,系统该怎么设计
手撕算法:最小公倍数和最大公约数
二面

自我介绍
项目介绍
项目里一个完整请求的流程
项目的优化
Hibernate和mybatis的区别
为什么用ssh框架
Mysql的容灾备份
Redis和memcache 的区别
为什么选择redis
Java的full gc
Full gc会导致什么问题
招商银行信用卡

**一面
**
自我介绍
分布式事务
设计模式
访问者模式
装饰者模式
有哪些offer
为什么还来我们这
招银网络科技

一面

自我介绍
写一个两个有序链表合并成一个有序链表
死锁是什么呢
怎么解决死锁
http请求流程
为什么负载均衡
怎么实现负载均衡
数据库挂了怎么办?除了热备份还有什么方法
讲讲你对spring的理解,不要把ioc和aop背给我听
二面

自我介绍
项目介绍
算法:找出两个数组相等的数,不能用其他数据结构
算法:给定一个数字,一个数组,找出数组中相加等于这两个数的和,不能用数据结构
算法:如何判断一个树是不是另一颗树的子树
如何解决并发访问的错误
网易

一面(现场)

自我介绍
项目介绍
I++操作怎么保证线程安全
场景题:设计一个下单系统,下单成功后可以给用户发优惠券
接上面场景题:服务器挂了,优惠券还没发怎么办
数据库挂了怎么怎么办
怎么保证一致性
分布式事务知道么
介绍分布式事务
你的职业规划
**二面
**
自我介绍
项目介绍
Nio的原理
Channel和buffer
directBuffer和buffer的区别
nio和aio的区别
锁的实现原理
怎么解决缓存和主存的一致性问题
缓存还没更新到主存,服务器挂了怎么办
数据库挂了怎么办
Vivo

一面

自我介绍
项目介绍
Hibernate的batch有数量限制么
Jquery用过么
Extjs的优缺点
有没有扩展过extjs
读写锁
什么时候用读锁
什么时候用写锁
Cas的原理,使用场景
数据库的瓶颈
工作1—5年的程序员,你肯定接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。加群:795632998,可以获取这些资料, 现在免费分享这些技术高清视频教程,都将是你未来面试时巨大的优势,因此如果你对某一项技术感兴趣的话,这个时候可以深入去研究一下。
性能优化

JVM调优

Java程序性能优化

Tomcat

Mysql

Spring IOC

Spring AOP

Spring MVC

Spring 5新特性

Mybatis

image
分布式架构

架构核心服务层技术

架构关键技术设施

分布式消息通讯 异步于MQ

分布式缓存

Redis

Memcached

MongoDB

数据存储

高并发分流技术Nginx

分布式解决方案

image
应用框架源码解读
image
微服务专题

你还不知道微服务?怎么加(zhuang)薪(bi)

SpringBoot

与微服务的区别于联系

快速构建SpringBoot工程

SpringBoot核心组件剖析

快速集成mybatis实战

快速集成Dubbo及案例实战

构建集成 redis及案例实战

构建Swagger插件实现API

管理及接口测试体系

SpringCloud

Zuul路由网关详解源码探析

Ribbon客户端负载均衡原理

Feign声明式服务调用方式

Eureka注册中心构件

Config配置服务中心

svn、git快速集成

Sleuth调用链路跟踪

BUS消息总线技术

Docker虚拟化技术

介绍、安装与使用

compose部署脚本

service服务编排

redis分布式集群部署

docker file构建

通过maven插件打包镜像

部署及运行应用程序kubernetes编配

构建Mysql集群实战

高可用SpringCloud微服务与docker集成实现动态扩容实战
image
团队协作开发

Git

Maven

Jenkins

Sonar
image
B2C商城项目实战

撸起袖子干实事,项目经验那点事

系统设计

架构设计

数据库设计

部署设计

基础开发框架讲解

用户管理子系统

用户注册登录(二维码技术)

权限控制(shiro)

单点登录(session统一缓存、sso)

商品管理子系统

商品管理(MongoDB)

商品分类(MongoDB)

商品发布(nosql与mysql数据同步)

热卖商品排行(redis)

搜索子系统

基于ES的全文探索

检索需求分析

检索策略

索引设置

分词算法

命中率优化

订单实时统计

订单子系统

分布式环境生成唯一编号(zookeeper)

下单业务流程(消息中间件)

订单可靠性

秒杀功能(redis)

订单管理

订单功能(mongodb)

支付系统

微信支付对接

支付宝对接

银联对接 开发

分布式调度系统

数据统计

数据同步

任务调度配置

后台系统

日常管理

在线IM系统(websockedNIO)

用户行为分析(日志系统设计)

报表大数据查询优化(mysql查询优化)
image
性能优化

性能调优

JVM调优

Java程序性能优化

Tomcat

Mysql
image
应用框架源码解读

Spring概述

Spring容器
image
Spring AOP

Spring MVC
image
Spring 5新特性

Mybatis
image
分布式架构

分布式架构思维

架构开发基础
image
架构核心服务层技术
image
分布式环境指挥官Zookeeper
image
分布式消息通讯 异步于MQ
image
分布式缓存Nosql

Redis
image
Memcached

缓存开发专题
image
微服务架构

Springboot

SpringCloud

Docker虚拟化技术
image
团队协作开发

Git

Maven

Jenkins

Sonar
image
今天就分享到这,感谢你能耐心看完,如果你对上面的资料感兴趣可以加群:795632998获取

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6月前
|
存储 Java 编译器
Java中的抽象类与接口,在阿里工作5年了
Java中的抽象类与接口,在阿里工作5年了
|
2月前
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
|
3月前
|
小程序 JavaScript Java
【资料】阿里Java开发手册
本文是关于分享阿里Java开发手册资源及促进编程规范学习的指南。作者以个人经历引入,讲述了公司领导通过细致讲解阿里Java开发手册,提升了团队对代码质量和编程规范的认识
807 0
【资料】阿里Java开发手册
|
3月前
|
缓存 监控 Java
"Java垃圾回收太耗时?阿里HBase GC优化秘籍大公开,让你的应用性能飙升90%!"
【8月更文挑战第17天】阿里巴巴在HBase实践中成功将Java垃圾回收(GC)时间降低90%。通过选用G1垃圾回收器、精细调整JVM参数(如设置堆大小、目标停顿时间等)、优化代码减少内存分配(如使用对象池和缓存),并利用监控工具分析GC行为,有效缓解了高并发大数据场景下的性能瓶颈,极大提升了系统运行效率。
76 4
|
3月前
|
安全 Java 程序员
阿里开发手册 嵩山版-编程规约 (四)OOP规约-Java程序员必看知识点!!!
《阿里开发手册 嵩山版》的OOP规约部分强调了面向对象编程的最佳实践,包括正确使用静态方法、覆写方法的注解、可变参数的使用、接口的稳定性、equals和compareTo方法的使用、BigDecimal的正确比较、包装类与基本数据类型选择、POJO类的属性和方法设计等,以提升代码的质量和维护性。
|
6月前
|
算法 Java C++
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
|
6月前
|
NoSQL Java 关系型数据库
爱了!阿里高工纯手打金三银四Java架构面试大全,涵盖近年来1000余道大厂面试真题
爱了!阿里高工纯手打金三银四Java架构面试大全,涵盖近年来1000余道大厂面试真题
|
11天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
7天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
28 9
|
10天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####