一面
1、并发编程三要素?
2、实现可见性的方法有哪些?
3、多线程的价值?
4、创建线程的有哪些方式?
5、创建线程的三种方式的对比?
6、什么是线程池?有哪几种创建方式?
7、线程池的优点?
8、CyclicBarrier 和 CountDownLatch 的区别
二面
1、介绍你的项目?
2、什么是乐观锁和悲观锁
3、sleep 方法和 wait 方法有什么区别?
4、多线程同步有哪几种方法?
5、Linux 环境下如何查找哪个线程使用 CPU 最长
6、Java 死锁以及如何避免?
7、如果你提交任务时,线程池队列已满,这时会发生什么
8、死锁的原因
一面
1. 描述一下 JVM 加载 Class 文件的原理机制?(在面试 java 工程师的时候,这道题经常被问到,故需特别注意。)
2. 什么是类加载器?
3. 类加载器有哪些?
4. 什么是tomcat类加载机制?
5. Java 内存分配?
6、await关键字
7、线程池
8、spring ioc, aop以及其优点
9、栈和堆的定义
二面
1、链表的定义
2、怎么实现链表翻转
3、怎么判断链表是否有环
4、二叉平衡树,怎么用一-维数组存储
5、讲讲jvm分区
6、讲讲jvm gc
7、怎么求数组的最大子序列和
8、final关键字4种用法
9、sleep用法
三面
1.Java 中会存在内存泄漏吗,简述一下?
2.Java 类加载过程?
3. 什么是 GC? 为什么要有 GC?
4. 简述一下 Java 垃圾回收机制?
5. 垃圾回收的优点和原理,并考虑 2 种回收机制? 基本原理是什么?
6. 什么是分布式垃圾回收(DGC)?它是如何工作 的?
7. 深拷贝和浅拷贝?
8.你还有什么要问的?
一面
1. 二叉搜索树和平衡二叉树有什么关系,强平衡二叉树(AVL 树)和弱平衡二叉树 (红黑树)有什么区别
2. B 树和 B+树的区别,为什么 MySQL 要使用 B+树
3. HashMap 如何解决 Hash 冲突
4. epoll 和 poll 的区别,及其应用场景
5. 简述线程池原理,FixedThreadPool 用的阻塞队列是什么?
6. sychronized 和 ReentrantLock 的区别
7. sychronized 的自旋锁、偏向锁、轻量级锁、重量级锁,分别介绍和联系
8. HTTP 有哪些问题,加密算法有哪些,针对不同加密方式可能产生的问题,及其 HTTPS 是如何保证安全传输的
二面
1. 设计模式有哪些大类,及熟悉其中哪些设计模式
2. volatile 关键字,它是如何保证可见性,有序性
3. Java 的内存结构,堆分为哪几部分,默认年龄多大进入老年代
4. ConcurrentHashMap 如何保证线程安全,jdk1.8 有什么变化
5. 为什么 ConcurrentHashMap 底层为什么要红黑树
6. 如何做的 MySQL 优化
7. 讲一下 oom 以及遇到这种情况怎么处理的,是否使用过日志分析工具
三面
1. 项目介绍
2. 你们怎么保证 Redis 缓存和数据库的数据一致性?
3. Redis 缓存雪崩?击穿?穿透?
4. 你熟悉哪些消息中间件,有做过性能比较?
5.你还有什么要问的?
以上的面试题就是几个大厂的面试时的经历,把这些高频面试题总结分享给大家,(Java、并发编程、JVM、MySQL、Redis、Spring、Dubbo、zookeeper)等按知识划分的面试题,进行了整理,在这里分享大家!
我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习,戳这里免费领取
已经将知识体系整理好(源码,笔记,PPT,学习视频)免费领取。
已经将知识体系整理好(源码,笔记,PPT,学习视频)免费领取。
[外链图片转存中…(img-HGZlRuYQ-1625062704529)]
[外链图片转存中…(img-s7flHI9m-1625062704531)]
[外链图片转存中…(img-Fp8mdZBG-1625062704532)]