Skip to content

Commit 6b04140

Browse files
authored
Merge pull request JGPY#1 from JGPY/dev
Dev
2 parents 82b5051 + 211b22b commit 6b04140

1 file changed

Lines changed: 211 additions & 0 deletions

File tree

Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
## Java面试强化测试题
2+
3+
### Java基础
4+
1、集合类以及集合框架;HashMap与HashTable实现原理,线程安全性,hash冲突及处理算法;ConcurrentHashMap <br>
5+
2、进程和线程的区别? <br>
6+
3、Java的并发、多线程、线程模型? <br>
7+
4、什么是线程池,如何使用? <br>
8+
5、数据一致性如何保证? <br>
9+
*注意点:* <br>
10+
Synchronized关键字,类锁,方法锁,重入锁;<br>
11+
6、Java中实现多态的机制是什么? <br>
12+
7、如何将一个Java对象序列化到文件里? <br>
13+
8、说说你对Java反射的理解? <br>
14+
9、同步的方法;多进程开发以及多进程应用场景? <br>
15+
10、在Java中wait和seelp方法的不同? <br>
16+
*注意点:* <br>
17+
最大的不同是在等待时wait 会释放锁,而sleep 一直持有锁。wait 通常被用于线程间交互,sleep 通常被用于暂停执行。 <br>
18+
11、synchronized 和volatile 关键字的作用和区别? <br>
19+
*注意点:* <br>
20+
volatile 本质是在告诉jvm 当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;
21+
synchronized 则是锁定当前变量,只有当前线程可以访问该变量,
22+
其他线程被阻塞住。 <br>
23+
(1).volatile 仅能使用在变量级别;synchronized 则可以使用在变量、方法、和类级别的 <br>
24+
(2).volatile 仅能实现变量的修改可见性,并不能保证原子性;synchronized 则可以保证变量的修改可见性和原子性 <br>
25+
(3).volatile 不会造成线程的阻塞;synchronized 可能会造成线程的阻塞。 <br>
26+
(4).volatile 标记的变量不会被编译器优化;synchronized 标记的变量可以被编译器优化 <br>
27+
12、服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达? <br>
28+
13、ThreadLocal原理,实现及如何保证Local属性? <br>
29+
14、String StringBuilder StringBuffer对比? <br>
30+
15、你所知道的设计模式有哪些? <br>
31+
*注意点:* <br>
32+
(Java 中一般认为有23 种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。下面列出了所有的设计模式。
33+
需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。 <br>
34+
总体来说设计模式分为三大类: <br>
35+
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 <br>
36+
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 <br>
37+
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
38+
)
39+
16、Java如何调用c、c++语言? <br>
40+
17、接口与回调;回调的原理;写一个回调demo; <br>
41+
18、泛型原理,举例说明; <br>
42+
*注意点:* <br>
43+
解析与分派; <br>
44+
19、抽象类与接口的区别;应用场景;抽象类是否可以没有方法和属性; <br>
45+
20、静态属性和静态方法是否可以被继承?是否可以被重写?以及原因? <br>
46+
21、修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法? <br>
47+
22、说说你对泛型的了解? <br>
48+
23、Java的异常体系? <br>
49+
24、如何控制某个方法允许并发访问线程的个数? <br>
50+
25、动态代理的区别,什么场景使用? <br>
51+
26、Dex加载过程和优化方式? <br>
52+
27、Jvm和Gc机制? <br>
53+
54+
### 叙述下令你印象最深刻的项目;
55+
*注意点:* <br>
56+
1、明确项目是做什么的 <br>
57+
2、明确项目的价值。
58+
*注意点:* <br>
59+
(为什么做这个项目,它解决了用户什么痛点,它带来什么价值?) <br>
60+
3、明确项目的功能。
61+
*注意点:* <br>
62+
(这个项目涉及哪些功能?) <br>
63+
4、明确项目的技术。
64+
*注意点:* <br>
65+
(这个项目用到哪些技术?) <br>
66+
5、明确个人在项目中的位置和作用。
67+
*注意点:* <br>
68+
(你在这个项目的承担角色?) <br>
69+
6、明确项目的整体架构。 <br>
70+
7、明确项目的优缺点,如果重新设计你会如何设计。 <br>
71+
8、明确项目的亮点。
72+
*注意点:* <br>
73+
(这个项目有什么亮点?) <br>
74+
9、明确技术成长。
75+
*注意点:* <br>
76+
(你通过这个项目有哪些技术成长?)
77+
78+
### Java基础
79+
1、List 和 Set 的区别? <br>
80+
2、HashSet 是如何保证不重复的? <br>
81+
3、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? <br>
82+
4、HashMap 的扩容过程? <br>
83+
5、HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的? <br>
84+
6、final finally finalize 区别? <br>
85+
7、强引用 、软引用、 弱引用、虚引用? <br>
86+
8、Java反射? <br>
87+
9、Arrays.sort 实现原理和 Collection 实现原理? <br>
88+
10、LinkedHashMap的应用? <br>
89+
11、cloneable接口实现原理? <br>
90+
12、异常分类以及处理机制? <br>
91+
13、wait和sleep的区别? <br>
92+
14、数组在内存中如何分配
93+
94+
### Java 并发
95+
1、synchronized 的实现原理以及锁优化? <br>
96+
2、volatile 的实现原理? <br>
97+
3、Java 的信号灯? <br>
98+
4、synchronized 在静态方法和普通方法的区别? <br>
99+
5、怎么实现所有线程在等待某个事件的发生才会去执行? <br>
100+
6、CAS?CAS 有什么缺陷,如何解决? <br>
101+
7、synchronized 和 lock 有什么区别? <br>
102+
8、Hashtable 是怎么加锁的 ? <br>
103+
9、HashMap 的并发问题? <br>
104+
10、ConcurrenHashMap 介绍?1.8 中为什么要用红黑树? <br>
105+
11、AQS 12、如何检测死锁?怎么预防死锁? <br>
106+
13、Java 内存模型? <br>
107+
14、如何保证多线程下 i++ 结果正确? <br>
108+
15、线程池的种类,区别和使用场景? <br>
109+
16、分析线程池的实现原理和线程的调度过程? <br>
110+
17、线程池如何调优,最大数目如何确认? <br>
111+
18、ThreadLocal原理,用的时候需要注意什么? <br>
112+
19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之间的差别? <br>
113+
20、LockSupport工具 <br>
114+
21、Condition接口及其实现原理 <br>
115+
22、Fork/Join框架的理解 <br>
116+
23、分段锁的原理,锁力度减小的思考 <br>
117+
24、八种阻塞队列以及各个阻塞队列的特性
118+
119+
### Spring
120+
1、BeanFactory 和 FactoryBean? <br>
121+
2、Spring IOC 的理解,其初始化过程? <br>
122+
3、BeanFactory 和 ApplicationContext? <br>
123+
4、Spring Bean 的生命周期,如何被管理的? <br>
124+
5、Spring Bean 的加载过程是怎样的? <br>
125+
6、如果要你实现Spring AOP,请问怎么实现? <br>
126+
7、如果要你实现Spring IOC,你会注意哪些问题? <br>
127+
8、Spring 是如何管理事务的,事务管理机制? <br>
128+
9、Spring 的不同事务传播行为有哪些,干什么用的? <br>
129+
10、Spring 中用到了那些设计模式? <br>
130+
11、Spring MVC 的工作原理? <br>
131+
12、Spring 循环注入的原理? <br>
132+
13、Spring AOP的理解,各个术语,他们是怎么相互工作的? <br>
133+
14、Spring 如何保证 Controller 并发的安全?
134+
135+
### Netty
136+
1、BIO、NIO和AIO? <br>
137+
2、Netty 的各大组件? <br>
138+
3、Netty的线程模型? <br>
139+
4、TCP 粘包/拆包的原因及解决方法? <br>
140+
5、了解哪几种序列化协议?包括使用场景和如何去选择? <br>
141+
6、Netty的零拷贝实现? <br>
142+
7、Netty的高性能表现在哪些方面?
143+
144+
### 分布式相关
145+
1、Dubbo的底层实现原理和机制? <br>
146+
2、描述一个服务从发布到被消费的详细过程? <br>
147+
3、分布式系统怎么做服务治理? <br>
148+
4、接口的幂等性的概念? <br>
149+
5、消息中间件如何解决消息丢失问题? <br>
150+
6、Dubbo的服务请求失败怎么处理? <br>
151+
7、重连机制会不会造成错误? <br>
152+
8、对分布式事务的理解? <br>
153+
9、如何实现负载均衡,有哪些算法可以实现? <br>
154+
10、Zookeeper的用途,选举的原理是什么? <br>
155+
11、数据的垂直拆分水平拆分? <br>
156+
12、zookeeper原理和适用场景? <br>
157+
13、zookeeper watch机制? <br>
158+
14、redis/zk节点宕机如何处理? <br>
159+
15、分布式集群下如何做到唯一序列号? <br>
160+
16、如何做一个分布式锁? <br>
161+
17、用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗? <br>
162+
18、MQ系统的数据如何保证不丢失? <br>
163+
19、列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题? <br>
164+
20、zookeeper的选举策略? <br>
165+
21、全局ID? <br>
166+
167+
### 数据库
168+
1、mysql分页有什么优化? <br>
169+
2、悲观锁、乐观锁? <br>
170+
3、组合索引,最左原则? <br>
171+
4、mysql 的表锁、行锁? <br>
172+
5、mysql 性能优化? <br>
173+
6、mysql的索引分类:B+,hash;什么情况用什么索引? <br>
174+
7、事务的特性和隔离级别 ?<br>
175+
176+
### 缓存
177+
1、Redis用过哪些数据数据,以及Redis底层怎么实现? <br>
178+
2、Redis缓存穿透,缓存雪崩? <br>
179+
3、如何使用Redis来实现分布式锁? <br>
180+
4、Redis的并发竞争问题如何解决? <br>
181+
5、Redis持久化的几种方式,优缺点是什么,怎么实现的? <br>
182+
6、Redis的缓存失效策略? <br>
183+
7、Redis集群,高可用,原理? <br>
184+
8、Redis缓存分片? <br>
185+
9、Redis的数据淘汰策略?<br>
186+
187+
### JVM
188+
1、详细jvm内存模型? <br>
189+
2、讲讲什么情况下回出现内存溢出,内存泄漏? <br>
190+
3、说说Java线程栈 <br>
191+
4、JVM 年轻代到年老代的晋升过程的判断条件是什么呢? <br>
192+
5、JVM 出现 fullGC 很频繁,怎么去线上排查问题? <br>
193+
6、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式? <br>
194+
7、类的实例化顺序? <br>
195+
8、JVM垃圾回收机制,何时触发MinorGC等操作? <br>
196+
9、JVM 中一次完整的 GC 流程(从 ygc 到 fgc)是怎样的? <br>
197+
10、各种回收器,各自优缺点?
198+
*注意点:* <br>
199+
重点CMS、G1 <br>
200+
11、各种回收算法? <br>
201+
12、说下OOM错误,stackoverflow错误,permgen space错误? <br>
202+
203+
204+
205+
---
206+
### 搬运工信息
207+
Author:Jason Lou <br>
208+
Email:vip.iotworld@gmail.com <br>
209+
Blog:https://blog.csdn.net/qq_21508727 <br>
210+
Github:https://github.com/JGPY/JavaGuideBooster <br>
211+
---

0 commit comments

Comments
 (0)