Skip to content

Commit dd01034

Browse files
committed
update Java面试强化测试题
1 parent bf4da79 commit dd01034

1 file changed

Lines changed: 74 additions & 76 deletions

File tree

‎data/books/面试强化资料/Java面试强化测试题.md‎

Lines changed: 74 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,5 @@
11
## Java面试强化测试题
22

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-
783
### Java基础
794
1、List 和 Set 的区别? <br>
805
2、HashSet 是如何保证不重复的? <br>
@@ -194,13 +119,86 @@ synchronized 则是锁定当前变量,只有当前线程可以访问该变量
194119
7、类的实例化顺序? <br>
195120
8、JVM垃圾回收机制,何时触发MinorGC等操作? <br>
196121
9、JVM 中一次完整的 GC 流程(从 ygc 到 fgc)是怎样的? <br>
197-
10、各种回收器,各自优缺点?
122+
10、各种回收器,各自优缺点? <br>
198123
*注意点:* <br>
199124
重点CMS、G1 <br>
200125
11、各种回收算法? <br>
201126
12、说下OOM错误,stackoverflow错误,permgen space错误? <br>
202127

128+
### Java基础综合
129+
1、集合类以及集合框架;HashMap与HashTable实现原理,线程安全性,hash冲突及处理算法;ConcurrentHashMap <br>
130+
2、进程和线程的区别? <br>
131+
3、Java的并发、多线程、线程模型? <br>
132+
4、什么是线程池,如何使用? <br>
133+
5、数据一致性如何保证? <br>
134+
*注意点:* <br>
135+
Synchronized关键字,类锁,方法锁,重入锁;<br>
136+
6、Java中实现多态的机制是什么? <br>
137+
7、如何将一个Java对象序列化到文件里? <br>
138+
8、说说你对Java反射的理解? <br>
139+
9、同步的方法;多进程开发以及多进程应用场景? <br>
140+
10、在Java中wait和seelp方法的不同? <br>
141+
*注意点:* <br>
142+
最大的不同是在等待时wait 会释放锁,而sleep 一直持有锁。wait 通常被用于线程间交互,sleep 通常被用于暂停执行。 <br>
143+
11、synchronized 和volatile 关键字的作用和区别? <br>
144+
*注意点:* <br>
145+
volatile 本质是在告诉jvm 当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;
146+
synchronized 则是锁定当前变量,只有当前线程可以访问该变量,
147+
其他线程被阻塞住。 <br>
148+
(1).volatile 仅能使用在变量级别;synchronized 则可以使用在变量、方法、和类级别的 <br>
149+
(2).volatile 仅能实现变量的修改可见性,并不能保证原子性;synchronized 则可以保证变量的修改可见性和原子性 <br>
150+
(3).volatile 不会造成线程的阻塞;synchronized 可能会造成线程的阻塞。 <br>
151+
(4).volatile 标记的变量不会被编译器优化;synchronized 标记的变量可以被编译器优化 <br>
152+
12、服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达? <br>
153+
13、ThreadLocal原理,实现及如何保证Local属性? <br>
154+
14、String StringBuilder StringBuffer对比? <br>
155+
15、你所知道的设计模式有哪些? <br>
156+
*注意点:* <br>
157+
(Java 中一般认为有23 种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。下面列出了所有的设计模式。
158+
需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。 <br>
159+
总体来说设计模式分为三大类: <br>
160+
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 <br>
161+
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 <br>
162+
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
163+
)
164+
16、Java如何调用c、c++语言? <br>
165+
17、接口与回调;回调的原理;写一个回调demo; <br>
166+
18、泛型原理,举例说明; <br>
167+
*注意点:* <br>
168+
解析与分派; <br>
169+
19、抽象类与接口的区别;应用场景;抽象类是否可以没有方法和属性; <br>
170+
20、静态属性和静态方法是否可以被继承?是否可以被重写?以及原因? <br>
171+
21、修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法? <br>
172+
22、说说你对泛型的了解? <br>
173+
23、Java的异常体系? <br>
174+
24、如何控制某个方法允许并发访问线程的个数? <br>
175+
25、动态代理的区别,什么场景使用? <br>
176+
26、Dex加载过程和优化方式? <br>
177+
27、Jvm和Gc机制? <br>
203178

179+
### 叙述下令你印象最深刻的项目;
180+
*注意点:* <br>
181+
1、明确项目是做什么的 <br>
182+
2、明确项目的价值。
183+
*注意点:* <br>
184+
(为什么做这个项目,它解决了用户什么痛点,它带来什么价值?) <br>
185+
3、明确项目的功能。
186+
*注意点:* <br>
187+
(这个项目涉及哪些功能?) <br>
188+
4、明确项目的技术。
189+
*注意点:* <br>
190+
(这个项目用到哪些技术?(技术选型)) <br>
191+
5、明确个人在项目中的位置和作用。
192+
*注意点:* <br>
193+
(你在这个项目的承担角色?) <br>
194+
6、明确项目的整体架构。 <br>
195+
7、明确项目的优缺点,如果重新设计你会如何设计。 <br>
196+
8、明确项目的亮点。
197+
*注意点:* <br>
198+
(这个项目有什么亮点?or难点解决方案) <br>
199+
9、明确技术成长。
200+
*注意点:* <br>
201+
(你通过这个项目有哪些技术成长?)
204202

205203
---
206204
### 搬运工信息

0 commit comments

Comments
 (0)