3年Java开发经验从阿里、美团、滴滴面试回来,想和Java程序员谈一谈感悟及面经

2022-07-27,,,,

最近面试阿里、京东、美团、滴滴等大型互联网公司,最终收到了美团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核心技能全解析,所以在这里只简单介绍下大概有哪些知识点。

本文地址:https://blog.csdn.net/JavaBUGa/article/details/109853059

《3年Java开发经验从阿里、美团、滴滴面试回来,想和Java程序员谈一谈感悟及面经.doc》

下载本文的Word格式文档,以方便收藏与打印。