2023最全Java后端面试题总结(阿里、京东、拼多多等)

本文是一位程序员分享的面试经历,详细记录了他在阿里、京东、拼多多等公司的面试过程中遇到的Java后端面试题,涵盖多线程、JVM、数据库、通信协议等多个方面。文章旨在帮助读者理解和准备面试,内容丰富详实。
摘要由CSDN通过智能技术生成

前言

娱乐圈有“男神收割机”“女神收割机”。同样程序员圈子也有“Offer收割机”。

想必大家都有面试的经历吧,但是你有面一个拿一个offer的经历吗。或许听起来很离谱,但是也确实有这样的事情,毕竟万事皆有可能。之前我在网上认识的一位网友,我们有一天下午聊天的时候聊到面试这块,他跟我说了他的面试经历:他面了饿了么、阿里、京东、拼多多、爱奇艺,听着好像很简单的样子,但是别人背后付出的可能是你的百倍千倍。好了废话不多说。现在我开始写面经,希望能帮助到大家!

首先,他先是去面了阿里

一面

自我介绍后,直接开始问多线程相关问题。大概问题如下:

1.为什么要使用多线程?多线程需要注意的问题。上下文开销、死锁等。

2.java内存模型、导致线程不安全的原因。

3.volatile关键字,缓存一致性、指令重排序概念。

4.synchronize关键字,java对象头、Markword概念、synchronize底层monitorenter和moniterexit指令。

5.lock语句和synchronize对比。

6.原子操作,CAS概念、相关参数。

7.乐观锁、悲观锁概念及使用场景。

8.线程池概念、实现原理等。

9.JVM锁的优化,偏向锁、轻量级锁概念及原理。

10.多线程方面回答得比较好,面试官反馈比较满意。

然后就是数据库相关的:(其实没这么多,有些是我整理的,挑了一些概率大的题目,仅参考)

1.在MySQL中ENUM的用法是什么?

2.CHAR和VARCHAR的区别?

3.为什么事务可以优化数据库?

4.Mysql的数据库引擎,区别特点

5.数据连接池采用了什么设计模式?意义是什么?

6.项目用到什么数据库?隔离级别?每个隔离级别各做了什么

7.数据库的索引?mysql不同引擎索引的区别

8..索引使用的注意事项

9..数据库挂了怎么办?除了热备份还有什么方法?

10..接上面场景题:服务器挂了,优惠券还没发怎么办?

11..数据库挂了怎么办?

12..数据库优化中,有一个关键字可以分析执行过程,知道么(explain关键字)?

13..数据库优化有什么了解?

14..索引的原理说一下吧。

15.联合索引,如果联合索引(a,b),现在查询a>0,b>0可以用到这个联合索引么?(太久没看,生疏了,答错了,答案应该是不能,只能用到a的索引,范围索引只能用到一列)

16.Mysql集群数据是怎么同步的?

17.Select,poll,epoll的区别。

还围绕了项目架构、Java基础、JVM、并发编程、中间件技术和Dubbo服务治理框架等展开。(题目不怎么记得了)

二面(问得比较深入,问题也是格外的令人头疼)

JVM方面

1.java内存模型,五个部分,程序计数器、栈、本地栈、堆、方法区。

2.每个部分的概念、特点、作用。

3.类加载的过程,加载、验证、准备、解析、初始化。每个部分详细描述。

4.加载阶段读入.class文件,class文件时二进制吗,为什么需要使用二进制的方式?

5.验证过程是防止什么问题?验证过程是怎样的?加载和验证的执行顺序?符号引用的含义?

6.准备过程的静态成员变量分配空间和设置初始值问题。

7.解析过程符号引用替代为直接引用细节相关。

8.初始化过程jvm的显式初始化相关。

9.类卸载的过程及触发条件。

10.三种类加载器,如何自定义一个类加载器&#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值