关于Java面试可能出现的问题--整合

### Java基础
1、List 和 Set 的区别?   
2、HashSet 是如何保证不重复的?   
3、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?   
4、HashMap 的扩容过程?    
5、HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的?   
6、final finally finalize 区别?   
7、强引用 、软引用、 弱引用、虚引用?   
8、Java反射?   
9、Arrays.sort 实现原理和 Collection 实现原理?   
10、LinkedHashMap的应用?   
11、cloneable接口实现原理?   
12、异常分类以及处理机制?   
13、wait和sleep的区别?  
14、数组在内存中如何分配
1、集合类以及集合框架;HashMap与HashTable实现原理,线程安全性,hash冲突及处理算法;ConcurrentHashMap  
2、进程和线程的区别?  
3、Java的并发、多线程、线程模型?  
4、什么是线程池,如何使用?  
5、数据一致性如何保证?  
*注意点:*  
Synchronized关键字,类锁,方法锁,重入锁; 
6、Java中实现多态的机制是什么?  
7、如何将一个Java对象序列化到文件里?  
8、说说你对Java反射的理解?  
9、同步的方法;多进程开发以及多进程应用场景?  
10、在Java中wait和seelp方法的不同?  
*注意点:*  
最大的不同是在等待时wait 会释放锁,而sleep 一直持有锁。wait 通常被用于线程间交互,sleep 通常被用于暂停执行。  
11、synchronized 和volatile 关键字的作用和区别?  
*注意点:*  
volatile 本质是在告诉jvm 当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;
synchronized 则是锁定当前变量,只有当前线程可以访问该变量,
其他线程被阻塞住。  
(1).volatile 仅能使用在变量级别;synchronized 则可以使用在变量、方法、和类级别的  
(2).volatile 仅能实现变量的修改可见性,并不能保证原子性;synchronized 则可以保证变量的修改可见性和原子性  
(3).volatile 不会造成线程的阻塞;synchronized 可能会造成线程的阻塞。  
(4).volatile 标记的变量不会被编译器优化;synchronized 标记的变量可以被编译器优化  
12、服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达?  
13、ThreadLocal原理,实现及如何保证Local属性?  
14、String StringBuilder StringBuffer对比?  
15、你所知道的设计模式有哪些?  
*注意点:*  
(Java 中一般认为有23 种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。下面列出了所有的设计模式。
需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。  
总体来说设计模式分为三大类:  
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。  
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。  
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

16、Java如何调用c、c++语言?  
17、接口与回调;回调的原理;写一个回调demo;  
18、泛型原理,举例说明;  
*注意点:*  
解析与分派;  
19、抽象类与接口的区别;应用场景;抽象类是否可以没有方法和属性;  
20、静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?  
21、修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法?  
22、说说你对泛型的了解?  
23、Java的异常体系?  
24、如何控制某个方法允许并发访问线程的个数?  
25、动态代理的区别,什么场景使用?  
26、Dex加载过程和优化方式?  
27、Jvm和Gc机制?  

### Java 并发
1、synchronized 的实现原理以及锁优化?
2、volatile 的实现原理? 
3、Java 的信号灯?  
4、synchronized 在静态方法和普通方法的区别? 
5、怎么实现所有线程在等待某个事件的发生才会去执行?  
6、CAS?CAS 有什么缺陷,如何解决?
7、synchronized 和 lock 有什么区别?
8、Hashtable 是怎么加锁的 ?
9、HashMap 的并发问题?
10、ConcurrenHashMap 介绍?1.8 中为什么要用红黑树?
11、AQS 12、如何检测死锁?怎么预防死锁?
13、Java 内存模型? 
14、如何保证多线程下 i++ 结果正确? 
15、线程池的种类,区别和使用场景? 
16、分析线程池的实现原理和线程的调度过程? 
17、线程池如何调优,最大数目如何确认? 
18、ThreadLocal原理,用的时候需要注意什么?
19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之间的差别?
20、LockSupport工具
21、Condition接口及其实现原理  
22、Fork/Join框架的理解  
23、分段锁的原理,锁力度减小的思考
24、八种阻塞队列以及各个阻塞队列的特性

### Spring
1、BeanFactory 和 FactoryBean? 
2、Spring IOC 的理解,其初始化过程?
3、BeanFactory 和 ApplicationContext?
4、Spring Bean 的生命周期,如何被管理的?
5、Spring Bean 的加载过程是怎样的? 
6、如果要你实现Spring AOP,请问怎么实现? 
7、如果要你实现Spring IOC,你会注意哪些问题? 
8、Spring 是如何管理事务的,事务管理机制?  
9、Spring 的不同事务传播行为有哪些,干什么用的? 
10、Spring 中用到了那些设计模式?
11、Spring MVC 的工作原理? 
12、Spring 循环注入的原理?
13、Spring AOP的理解,各个术语,他们是怎么相互工作的?
14、Spring 如何保证 Controller 并发的安全?

### JVM
1、详细jvm内存模型?
2、讲讲什么情况下回出现内存溢出,内存泄漏?  
3、说说Java线程栈
4、JVM 年轻代到年老代的晋升过程的判断条件是什么呢? 
5、JVM 出现 fullGC 很频繁,怎么去线上排查问题?
6、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式?
7、类的实例化顺序?
8、JVM垃圾回收机制,何时触发MinorGC等操作?
9、JVM 中一次完整的 GC 流程(从 ygc 到 fgc)是怎样的?
10、各种回收器,各自优缺点?
*注意点:*
重点CMS、G1  
11、各种回收算法? 
12、说下OOM错误,stackoverflow错误,permgen space错误?

***************************************

参照网址:https://github.com/JGPY/JavaGuideBooster

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值