最近面试了阿里、京东、美团、滴滴等大型互联网公司,最终收到了美团offer,这次面试过后,我把面试过的公司的面试题做了一个整理。这篇文章是我凭回忆记录的,面试题没有顺序,不分先后,接下来公布我去阿里、京东、美团等一线互联网公司的面试题:
一、阿里巴巴面试
1、开发中Java用得比较多的数据结构有哪些?
2、谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的?
这些数据结构中是线程安全的吗?假如你回答HashMap是线程安全的,接着问有没有线程安全的map,接下来问conurren包。
3、对JVM熟不熟悉?简单说说类加载过程,里面执行的哪些操作?问了GC和内存管理,平时在tomect里面有没有进行过相关的配置。
4、说一下http协议、get和post的基本区别,接着问tcp/ip协议,三次握手,窗口滑动机制。
5、开发中用了哪些数据库?回答mysql;储存引擎有哪些?然后问了我悲观锁和乐观锁问题使用场景、分布式集群实现的原理。
6、springmvc和mybatis的工作原理,有没有看过底层源码?
二、京东金融面试
1、Dubbo超时重试;Dubbo超时时间设置
2、如何保障请求执行顺序
3、分布式事物与分布式锁(扣款不要出现负数)
4、分布式session设置
5、执行某操作,前50次成功,第51次失败a全部回滚b前50次提交第51次抛异常,ab场景分别如何设置Spring(传播性)
6、Zookeeper有哪些用
7、JVM内存模型
8、数据库垂直和水平拆分
9、MyBatis如何分页;如何设置缓存;MySQL分页。
10、熟悉IO么?与NIO的区别,阻塞与非阻塞的区别。
11、分布式session一致性
12、分布式接口的幂等性设计「不能重复扣款」
三、美团面试
1、最近做的比较熟悉的项目是哪个?画一下项目技术架构图。
2、JVM老年代和新生代的比例?
3、YGC和FGC发生的具体场景
4、jstack,jmap,jutil分别的意义?如何线上排查JVM的相关问题?
5、线程池的构造类的方法的5个参数的具体意义?
6、单机上一个线程池正在处理服务如果忽然断电该怎么办?(正在处理和阻塞队列里的请求怎么处理?)
7、使用无界阻塞队列会出现什么问题?
8、接口如何处理重复请求?
9、具体处理方案是什么?
10、如何保证共享变量修改时的原子性?
11、设计一个对外服务的接口实现类,在1,2,3这三个主机(对应不同IP)上实现负载均衡和顺序轮询机制(考虑并发)
四、滴滴面试
1、自我介绍;技术特点
2、兴趣是什么;优势是什么
3、jvm、jre以及jdk三者之间的关系?
4、Dubbo的底层原理,Zookeeper是什么
5、cincurrentMap的机制;TreeMap;Volatil关键字
6、快速排序;广度优先搜索(队列实现)
7、缓存的雪崩以及穿透的理解?
8、HashMap的key可以重复吗?
9、synchronized和lock的区别?
10.开发一个大型网站你会考虑哪些问题?
以上就是全部的面试题目,针对以上知识点,结合当前互联网公司的技术需求及主流技术,我整理了一份Java核心知识点全解析。不少公司很重视高并发高可用的技术,特别是一线互联网公司,分布式、JVM、spring源码分析、微服务等知识点已经是面试的必考题。这些东西可能你们平时在工作中接触过,但是并没有深入的学习过,希望这份资料对正在面试的朋友或是遭遇技术瓶颈的程序员们提供一点思路。
Java核心知识点整理
由于整个文档内容特别多,共有29个Java核心技能全解析,所以在这里只简单介绍下大概有哪些知识点。
资料领取方式:转发+关注,然后添加VX(tkzl6666)即可获得免费领取方式。
JVM
线程
JVM内存区域
JVM运行时内存
垃圾回收与算法
JAVA 四种引用类型
GC分代收集算法 VS 分区收集算法
GC垃圾收集器
JAVA IO/NIO
JVM 类加载机制
JAVA集合
接口继承关系和实现
List
ArrayList(数组)
Vector(数组实现、线程同步)
LinkList(链表)
Set
HashSet(Hash表)
TreeSet(二叉树)
JAVA多线程并发
JAVA并发知识库
JAVA线程实现/创建方式
4种线程池
线程生命周期(状态)
终止线程4种方式
sleep与wait 区别
start与run区别
JAVA后台线程
JAVA锁
线程基本方法4.1.11. 线程上下文切换
同步锁与死锁
线程池原理
JAVA阻塞队列原理
CyclicBarrier、CountDownLatch、Semaphore的用法
volatile关键字的作用(变量可见性、禁止重排序)
如何在两个线程之间共享数据
JAVA基础
JAVA异常分类及处理
JAVA反射
JAVA注解
JAVA内部类
JAVA泛型
JAVA序列化(创建可复用的Java对象)
JAVA复制
Spring 原理
Spring 特点
Spring 核心组件
Spring 常用模块
Spring 主要包
Spring 常用注解
Spring第三方结合
Spring IOC原理
Spring APO原理
Spring MVC原理
Spring Boot原理
JPA原理
Mybatis缓存
Tomcat架构
微服务
服务注册发现
API 网关
配置中心
事件调度(kafka)
服务跟踪(starter-sleuth)
服务熔断(Hystrix)
Hystrix断路器机制
API管理
Netty 与RPC
Netty 原理
Netty 高性能
Netty RPC实现
关键技术
核心流程
消息编解码
通讯过程
RMI实现方式
分布式缓存
缓存雪崩
缓存穿透
缓存预热
缓存更新
缓存降级
Zookeeper
Zookeeper概念
Zookeeper角色
Zookeeper工作原理(原子广播)
Znode有四种形式的目录节点
Kafka
Kafka概念
Kafka数据存储设计
partition的数据文件(offset,MessageSize,data)
数据文件分段segment(顺序读写、分段命令、二分查找)
数据文件索引(分段索引、稀疏存储)
生产者设计
负载均衡(partition会均衡分布到不同broker上)
批量发送
压缩(GZIP或Snappy)
消费者设计
算法
一致性算法
Java算法
数据结构
加密算法
由于整个文档内容特别多,共有29个Java核心技能全解析,所以在这里只简单介绍下大概有哪些知识点。
来源:oschina
链接:https://my.oschina.net/u/4312354/blog/4733642