我分享文章的时候,有个读者回复说他去年就关注了我的微信公众号,打算看完我的所有文章,然后去面试,结果我后来很长时间不更新了。。。所以为了弥补一直等我的娃儿们,我给大家的金三银四准备了100道花时间搜罗的高频Java面试题,大家不要太感动
这次只放出九十道,剩下10道准备找认识的几位面试官去要,希望不会被拒绝。
这些题我认为认真思考还是很有价值的,答案整理中,全部整理好,我会做出PDF,做好后大家公众号后台回复“Java面试题”领取。
90道高频面试题
-
自我介绍一下
-
项目中用到的技术栈介绍一下
-
项目中做的认为比较满意的部分讲一讲?
-
如果这个技术方案让你重新设计,你怎么做?
-
Java集合类都有哪些?平常用到哪些?
-
ArrayList 和 LinkedList 区别?
-
HashMap 实现的数据结构和扩容过程?
-
ArrayList 和 LinkedList 区别?你平常怎么选择?
-
异常类都有哪些?Exception 和 Error什么区别?
-
Synchronized 原理,锁膨胀过程 ?
-
Synchronized 和 Reentrantlock 区别?
-
线程池原理是怎样的?
-
分布式事务一致性怎么实现?
-
消息乱序遇到过吗?怎么解决的?
-
ThreadLocal 用过吗?实现机制?
-
wait、sleep区别?
-
反射用过吗?什么原理?
-
动态代理了解吗?实现的二种方式以及区别
-
单例模式了解吗?实现一个线程安全的单例模式?
-
无界队列和有界队列?
-
AQS 知道吗?讲讲你的理解
-
volatile 用过吗?
-
实现一个生产者消费者模式
-
Java内存模型清楚吗?
-
遇到过线上性能问题吗?怎么排查原因的?
-
网络问题遇到过吗?TIME_WAIT和CLOSE_WAIT的区别
-
三次握手讲一讲
-
CountDownLatch、Seamphone、CyclicBarrier 都了解吗?
-
private、protected、public、关键字你平常怎么用的?
-
Java是值传递还是引用传递,写一段对象拷贝的代码
-
内存回收机制了解吗?
-
新生代和老生代区别?
-
垃圾回收器有哪几种? 你们生产环境用的哪种或哪几种?
-
Java线程和操作系统线程什么关系?
-
线程有几种状态,线程生命周期讲讲
-
MySQL 索引使用什么数据结构?为什么用 B+做索引?
-
什么是最左匹配原则?
-
在建表的时候如何设计索引的?有没有做过索引优化 ?
-
MyBatis用过吗? 一二级缓存清楚吗?
-
MySQL 主从同步怎么做的?binlog清楚吗?
-
MySQL 有没有做分库分表?怎么设计的?
-
用userId做的分库分表,现在需要用电话号码查询怎么办?
-
你们用的什么日志框架,log4j 和logback吗?和slf4j什么区别?
-
redis 的String 是怎么实现的?为什么不直接用c的字符串?
-
redis 是单线程的吗?为什么这么快?
-
redis 中有哪几种数据结构?使用场景是怎样的?
-
类加载机制了解吗?
-
什么是双亲委派模式
-
concurrenthashmap 怎么实现线程安全访问的?
-
Spring AOP与IOC的实现原理
-
Spring的BeanFactory和FactoryBean的区别
-
讲讲Spring中一个Bean的加载流程?
-
Spring的事务的隔离级别?
-
Autowired注解的原理?
-
用的什么rpc框架
-
幂等了解吗?你们系统怎么做幂等的
-
分布式限流了解吗?如何实现的
-
消息中间件如何解决消息丢失、消息乱序问题?
-
怎么预防缓存雪崩、缓存击穿?
-
分布式锁的实现?
-
实现一个分布式自增id?
-
海量url怎么去重?
-
Redis有没有做持久化,怎么做的?
-
工作中用到了那些设计模式?
-
什么是一致性hash?
-
项目中用过什么设计模式?例如模板方法、策略模式、责任链模式吗?
-
MySQL InnoDB存储的文件结构
-
讲讲乐观锁和悲观锁
-
cpu 100% 遇到过吗?怎么解决的
-
更新数据机制?先更新缓存还是DB?
-
MySQL中回表是怎样的过程
-
设计一个抢红包的程序?
-
DP背包问题?
-
Minor GC 与 Full GC 分别在什么时候发生?
-
你怎么理解Java 的面向对象?
-
谈谈对Spring IOC和DI的理解?
-
你了解DDD领域建模吗?
-
线程调用start 和 run 什么区别?会有什么效果
-
中序遍历二叉树
-
之前项目遇到过什么挑战?
-
项目中你认为做的最有价值的功能?
-
父类和子类有同一个属性,实例化子类时是否会包含父类的属性?
-
有没有出现过Full GC等问题?你是怎么排查的?
-
一般是怎么判断SQL 索引设置是否合理的?
-
什么是不可变对象?String 类为什么设计成不可变的?
-
抽象类和接口什么区别?你在做接口和类设计时如何选择?
-
HashMap的key 类型有什么要求?
-
写一个深度优先算法?
-
写快速排序 & 冒泡排序?
-
什么是用户空间和内核空间?有什么区别?
大家先思考思考,答案更新完毕在公众号后台回复”Java面试题“ 暗号领取。
希望大家金三银四找到自己满意的工作,不看机会的同学升职加薪,必拿3.75。