Java面试题 - 汇总

如下是笔者整理的一些面试题,java后端,工作年限 3-5年。希望可以帮到正在找工作或者即将准备找工作的小伙伴

一、个人表达能力
01、自我介绍一下吧
02、聊聊项目(挑一个你最熟悉的项目)
03、你觉得你有什么优点和缺点?你觉得你相比于那些比你更优秀的人欠缺什么?

二、基础
01、HashMap、ConcurrentHashMap源码。HashMap是线程安全的吗?Hashtable呢?ConcurrentHashMap有了解吗?
02、sychronized 和 ReentrantLock 区别是什么? 说一下ReentrantLock实现原理,AQS底层原理
03、浏览器输入URL发生了什么? TCP和UDP区别? TCP如何保证传输可靠性?
04、怎么理解微服务?服务治理怎么实现的?
05、反射的原理

三、线程相关
01、进程和线程的区别?说下你对线程安全的理解
02、说一下volatile 有什么作用?
03、用过CountDownLatch么?什么场景下用的?
04、造成死锁的原因有哪些,如何预防?
05、加锁会带来哪些性能问题。如何解决?

四、JVM相关
01、比如Java内存模型了解吗、常见的垃圾回收器有哪些?操作系统的内存管理机制知道吗,对比一下虚拟机内存管理
02、虚拟机类加载机制了解吗?什么时候会进行类的加载?能说一下类加载的过程吗?知道jvm的几个常用类加载器吗?说一下什么是双亲委派模式?为什么有双亲委派模式
03、说说GC的过程,young gc和full gc的触发条件和回收过程以及对象创建的过程
04、CMS GC有什么问题?(并发清除算法,浮动垃圾,短暂停顿),怎么避免产生浮动垃圾?
05、强制young gc会有什么问题?(STW停顿时间变长)
06、知道G1么?(了解一点 )
07、回收过程是怎么样的?(young gc、并发阶段、混合阶段、full gc,说了Remember Set),你提到的Remember Set底层是怎么实现的?
08、jvm中的年轻代为什么要设计两个幸存区,比例为什么要设置成8:1:1

五、数据库
01、了解数据库索引、事务隔离级别、悲观锁和乐观锁、ACID、MVVC这些问题吗?,怎么理解原子性,乐观锁和悲观锁的区别?这两种锁在Java和MySQL分别是怎么实现的?
02、如果落到某个分片的数据很大怎么办?(按照某种规则,比如哈希取模、range,将单张表拆分为多张表),哈希取模会有什么问题么?(有的,数据分布不均,扩容缩容相对复杂 )
03、订单表有做过拆分吗?怎么拆的?(垂直拆分和水平拆分)水平拆分后查询过程描述下
04、分库分表后怎么解决读写压力?(一主多从、多主多从)
05、拆分后主键怎么保证惟一?(UUID、Snowflake算法),Snowflake生成的ID是全局递增唯一么?(不是,只是全局唯一,单机递增)
06、Mysql的索引结构说下,什么是聚簇索引,什么是非聚簇索引?有什么区别?非id字段能建聚簇索引吗?
07、主键索引和普通索引的区别(主键索引的叶子结点存放了整行记录,普通索引的叶子结点存放了主键ID,查询的时候需要做一次回表查询)一定要回表查询么?
    (不一定,当查询的字段刚好是索引的字段或者索引的一部分,就可以不用回表,这也是索引覆盖的原理)

六、开源框架,持续学习
01、有读过什么开源技术的源码吗?
02、介绍一下自己对 Netty 的认识,为什么要用。说说业务中,Netty 的使用场景。什么是TCP 粘包/拆包,解决办法。Netty线程模型。
03、Dubbo 在使用 Netty 作为网络通讯时候是如何避免粘包与半包问题?讲讲Netty的零拷贝?
04、用到了那些开源技术、在开源领域做过贡献吗?
05、自己平时是如何学习新技术的?除了 Java 还会去了解其他技术吗?
06、NginX如何做负载均衡、常见的负载均衡算法有哪些、一致性哈希的一致性是什么意思、一致性哈希是如何做哈希的
07、Dubbo踩过哪些坑,分别是怎么解决的?Dubbo的远程调用怎么实现的?分布式追踪的上下文是怎么存储和传递的?分布式系统中链路追踪的信息是怎么传递的?知道RpcContext的attachment吗?
08、说说Spring的生命周期吧

七、数据结构
01、讲下跳表怎么实现的?哈夫曼编码是怎么回事?非递归且不用额外空间(不用栈),如何遍历二叉树
02、常见的排序算法及其复杂度?快排,归并排序的时间复杂度
03、红黑树,B树的一些问题
04、讲讲算法及数据结构在实习项目中的用处。
05、TOP-N 问题的算法解决

八、消息中间件
01、用过哪些消息中间件,都用在什么场景?
02、能聊一下Kafka和RabbitMQ的区别吗?你们项目里面如何保证消息处理的顺序呢?

九、生产问题排查
01、生产环境出现OOM问题的排查思路
02、你们系统目前的瓶颈在哪里?你打算怎么优化?简要说下你的优化思路


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值