本篇讲解设计模式,涉及常见的23种经典设计模式。
[](
)面试题总结
全部学习资料免费获取方式: **关注+点赞,[点这里](
),即可免费领!**
[](
)大厂面试部分真题展示
[](
)杭州-蚂蚁金服-Java高级
-
jdk1.7 到 jdk1.8 Map 发生了什么变化(底层)?
-
ConcurrentHashMap
-
并行跟并发有什么区别?
-
jdk1.7 到 jdk1.8 java 虚拟机发生了什么变化?
-
如果叫你自己设计一个中间件,你会如何设计?
-
什么是中间件?
-
ThreadLock 用过没有,说说它的作用?
-
Hashcode()和 equals()和==区别?
-
mysql 数据库中,什么情况下设置了索引但无法使用?
-
mysql 优化会不会,mycat 分库,垂直分库,水平分库?
-
分布式事务解决方案?
-
sql 语句优化会不会,说出你知道的?
-
mysql 的存储引擎了解过没有?
-
红黑树原理?
[](
)杭州-蚂蚁金服-资深工程师
蚂蚁Java 一面
- 二叉搜索树和平衡二叉树有什么关系,强平衡二叉树( AVL 树)和弱平衡二叉树
(红黑树)有什么区别
-
B 树和 B+ 树的区别,为什么 MySQL 要使用 B+ 树
-
HashMap 如何解决 Hash 冲突
-
epoll 和 poll 的区别,及其应用场景
-
简述线程池原理, FixedThreadPool 用的阻塞队列是什么?
-
sychronized 和 ReentrantLock 的区别
-
sychronized 的自旋锁、偏向锁、轻量级锁、重量级锁,分别介绍和联系
-
HTTP 有哪些问题,加密算法有哪些,针对不同加密方式可能产生的问题,及其
HTTPS 是如何保证安全传输的
蚂蚁 Java 二面
-
设计模式有哪些大类,及熟悉其中哪些设计模式
-
volatile 关键字,它是如何保证可见性,有序性
-
Java 的内存结构,堆分为哪几部分,默认年龄多大进入老年代
-
ConcurrentHashMap 如何保证线程安全, jdk1.8 有什么变化
-
为什么 ConcurrentHashMap 底层为什么要红黑树
-
如何做的 MySQL 优化
-
讲一下 oom 以及遇到这种情况怎么处理的,是否使用过日志分析工具
蚂蚁 Java 三面
-
项目介绍
-
你们怎么保证 Redis 缓存和数据库的数据一致性?
-
Redis 缓存雪崩?击穿?穿透?
-
你熟悉哪些消息中间件 ,有做过性能比较?
[](
)上海-拼多多-Java高级
1 、并发编程三要素?
2 、实现可见性的方法有哪些?
3 、多线程的价值?
4 、创建线程的有哪些方式?
5 、创建线程的三种方式的对比?
6 、线程的状态流转图
7 、 Java 线程具有五种基本状态
8 、什么是线程池?有哪几种创建方式?
9 、四种线程池的创建:
10 、线程池的优点?
11 、常用的并发工具类有哪些?
12 、 CyclicBarrier 和 CountDownLatch 的区别
13 、 synchronized 的作用?
14 、 volatile 关键字的作用
15 、什么是 CAS
16 、 CAS 的问题
17 、什么是 Future ?
18 、什么是 AQS
19 、 AQS 支持两种同步方式:
20 、 ReadWriteLock 是什么
21 、 FutureTask 是什么
22 、 synchronized 和 ReentrantLock 的区别
23 、什么是乐观锁和悲观锁
24 、线程 B 怎么知道线程 A 修改了变量
25 、 synchronized 、 volatile 、 CAS 比较
26 、 sleep 方法和 wait 方法有什么区别 ?
27 、 ThreadLocal 是什么?有什么用?
28 、为什么 wait() 方法和 notify()/notifyAll() 方法要在同步块中被调 用
29 、多线程同步有哪几种方法?
30 、线程的调度策略
31 、 ConcurrentHashMap 的并发度是什么
32 、 Linux 环境下如何查找哪个线程使用 CPU 最长
33 、 Java 死锁以及如何避免?
34 、死锁的原因
35 、怎么唤醒一个阻塞的线程
36 、不可变对象对多线程有什么帮助
37 、什么是多线程的上下文切换
38 、如果你提交任务时,线程池队列已满,这时会发生什么
39 、 Java 中用到的线程调度算法是什么
40 、什么是线程调度器 (Thread Scheduler) 和时间分片 (TimeSlicing) ?
41 、什么是自旋
42 、 Java Concurrency API 中的 Lock 接口 (Lock interface) 是什么?对 比同步它有什么优势?
43 、单例模式的线程安全性
44 、 Semaphore 有什么作用
45 、 Executors 类是什么?
46、线程类的构造方法、静态块是被哪个线程调用的
[](
)上海-携程-Java高级
1. 描述一下 JVM 加载 Class 文件的原理机制 ?
2. 什么是类加载器?
3. 类加载器有哪些?
4. 什么是 tomcat 类加载机制?
5、类加载器双亲委派模型机制?
6. Java 内存分配?
7. Java 堆的结构是什么样子的?
8. 简述各个版本内存区域的变化?
9. 说说各个区域的作用?
10. Java 中会存在内存泄漏吗,简述一下?
11. Java 类加载过程?
12. 什么是 GC? 为什么要有 GC ?
13. 简述一下 Java 垃圾回收机制?
14. 如何判断一个对象是否存活?
15. 垃圾回收的优点和原理,并考虑 2 种回收机制? 基本原理是什么?
16. 深拷贝和浅拷贝?
17. 什么是分布式垃圾回收( DGC)?它是如何工作的?
[](
)深圳-OPPO-Java高级
-
说说你的⼯作经历?
-
项⽬主要负责哪⼏个模块?
-
画出你项⽬的结构图
-
Eureka 是如何进⾏服务注册的?
-
如果服务宕机或者⽆法访问了,我还去请求该服务, Eureka会怎么处理? 会有什么现象?
-
谈谈 Eureka 的保护机制
-
Ribbon 的负载均衡是⾯向服务内部还是外部的?
-
Ribbon 如何实现负载均衡的?
-
如果没有 Eureka ,我能直接通过 Ribbon 进⾏服务请求吗?
-
Hystrix 如何实现熔断?
-
当服务⽆法访问时,是直接熔断还是降级?
-
怎么样才会出现熔断?
-
在 Springcloud中,消费者调⽤提供者的流程是如何的?请画图 springcloud 的⼯作原理
-
Redis 的集群⽅式有哪些?
-
如果你原来读取的 Redis中的数据,它的数据的结构发⽣了变化,如何在 不改变代码的情况下进⾏处理,使下游业务不受影响?
-
Redis 的持久化⽅式有哪些?说说他们的具体实现、
-
使⽤ Redis 的过程中有没有遇到什么问题?
-
Redis 的内存回收机制有哪些?
-
Redis 的过期策略有哪些?简单介绍下不同策略
-
说说 Redis 的淘汰策略?淘汰的算法可以修改或者⾃⼰重写吗?
-
你们的项⽬中消息中间件⽤的是什么?
-
你们的 Rabbit 集群是怎么部署的?
-
Rabbit 集群之间的数据是如何同步的?同步⽅式还是异步⽅式?
-
⼀个队列中的数据你们是存放在⼀台机⼦上还是多台机⼦上?为什么?
-
RabbitMQ 内部结构是怎么样的?请画出 RabbitMQ 的架构图
-
你们公司的数据库有分库分表吗?如何实现的?
-
Mysql 的索引是基于什么?
-
说说 B+ 树
-
使⽤⾃增 ID 和 UUID 作为主键有什么不同?
-
说说数据库的事务隔离级别有哪些?
-
在代码中,我们如何实现事务?
-
如果在⼀个事务中,代码业务流程很⻓,会有什么问题吗?为什么会出 现这种问题?
-
使⽤ volatile关键字的时候有遇到过什么问题吗?为什么会出现这种问 题?
-
请说说 volatile 的底层实现原理
-
如何创建线程池?有什么参数?线程池的实现原理
-
你有什么问题想问我们的吗?
[](
)深圳-丰巢科技-Java高级
1.bio 与 nio 的区别
2.select 与 poll 的区别
3.zookeeper 的⼯作原理
4.cap 理论
-
⼆段式满⾜ cap 理论的哪两个理论
-
线程池的参数配置,为什么 java 官⽅提供⼯⼚⽅法给线程池
-
分布式框架 dubbo 的好处,不⽤ dubbo 可不可以。为什么要使⽤分布式
-
七个垃圾回收器之间如何搭配使⽤
-
接⼝限流⽅案
10.ConcurrentHashMap 使⽤原理
-
解决 map 的并发问题⽅案
-
什么是协程,以及实现要点
13.lru cache 使⽤ hash map 的实现(算法)
-
图的深度遍历和⼴度遍历(算法)
-
基本排序(算法)
-
设计模式的使⽤
17.java 8 流式使⽤
-
说说 b+ 树?
-
内存屏障与 volatile :
20.java 域的概念
-
分布式设计领域的概念
-
如何实现双 11 的购物限流( redis 实现⽅案)
23.mysql 调优
24.cdn (异地多活)
- 进程之间的通信⽅式
26.tcp/ip 协议、 http 协议
- 写⼀个 redis 分布式锁:
28.spring 7 种事务的传播⾏为:
- 分布式下 down 机的处理⽅案(⼼跳检测)
30 、分析下分布式强⼀致性、弱⼀致性、最终⼀致性?
31 、 dubbo 与 zookeeper 两者作为注册中⼼的区别,假如注册中⼼挂了,消费者还能调⽤服务吗,⽤什么调⽤的
32 、 dubbo 的原理图(画出注册中⼼,消费者,⽣产者的关系图,并说出每个⻆⾊的作⽤)
33 、项⽬中有没有⽤到多线程?
34 、 HashMap 的底层原理(包括底层数据结构,怎么扩容的)
35 、 ConcurrentHashMap 的原理
36 、 分布式锁的实现
37 、分布式 session ,如何保持⼀致
38 、消息中间件都⽤到哪些,他们的区别
- 我们知道 hashmap 线程不安全,那⽤什么类可以代替它保证线程安全呢?他们⼜是如何实现线程安全的呢?