回顾多灾多难的2021年,新冠疫情持续肆虐全球,疫情确诊曲线起伏跌宕,由此引发一系列事件:经济萎缩、 财政刺激、疫苗研发、经济复苏等等。无不牵动着市场的神经。“后疫情时代”将重新定义2022年,新旧交接之际,把握机遇。珍惜当下。关于面试,特整合了Java面试题,希望对找工作、跳槽的小伙伴有所帮助。总之一句话越基础的东西越重要,很多人认为自己会用它们写代码了,其实仅仅是知道如何调用api而已,离会用还差的远。互联网发展迅速的时代,只能跟上时代的进步,才不会被淘汰。
Java基础
1、List和Set的区别。
2、HashSet是如何保证不重复的?
3、HashMap是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?
4、HashMap的扩容过程。
5、HashMap1.7与1.8的 区别,说明1.8做了哪些优化,如何优化的?
6、final finally finalize。
7、强引用 、软引用、 弱引用、虚引用。
8、Java反射。
9、Arrays.sort 实现原理和Collection实现原理。
10、LinkedHashMap的应用。
11、cloneable接口实现原理。
12、wait和sleep的区别。
13、数组在内存中如何分配?
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、如何检测死锁?怎么预防死锁?
框架
- 看过哪些开源框架的源码
- 为什么要用Redis,Redis有哪些优缺点?Redis如何实现扩容?
- Netty是如何使用线程池的,为什么这么使用
- 为什么要使用Spring,Spring的优缺点有哪些
- Spring的IOC容器初始化流程
- Spring的IOC容器实现原理,为什么可以通过byName和ByType找到Bean
- Spring AOP实现原理
- 消息中间件是如何实现的,技术难点有哪些

-
JVM
1.JVM的内存结构。
2.JVM方法栈的工作过程,方法栈和本地方法栈有什么区别?
3.JVM的栈中引用如何和堆中的对象产生关联。
4.可以了解一下逃逸分析技术。
5.GC的常见算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。
6.标记清除和标记整理算法的理解以及优缺点。
7.eden survivor区的比例,为什么是这个比例,eden survivor的工作过程。
8.JVM如何判断一个对象是否该被GC,可以视为root的都有哪几种类型?
9.强软弱虚引用的区别以及GC对他们执行怎样的操作?
10.Java是否可以GC直接内存。
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中用到了那些设计模式?
SpringBoot-Spring Cloud
1、什么是Spring Boot?
2、SpringBoot有哪些优点?
3、什么是JavaConfig?
4、4、如何重新加载Spring Boot上的更改,而无需重新启动服务器?
5、Spring Boot中的监视器是什么?
6、如何在Spring Boot中禁用Actuator端点安全性?
7、如何在自定义端口上运行Spring Boot应用程序?
8、什么是YAML?
9、如何实现Spring Boot应用程序的安全性?
10、如何集成Spring Boot和ActiveMQ?
MySQL高频20题解析
1.事务四大特性(ACID)原子性、一致性、隔离性、持久性?
2.事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
3.MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
4.MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?
5.查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?
6.什么是临时表,临时表什么时候删除?
7.MySQL B+Tree索引和Hash索引的区别?
8.sql查询语句确定创建哪种类型的索引?如何优化查询?
9.聚集索引和非聚集索引区别?
10.有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?
多线程
1.Java实现多线程有哪几种方式?
2.Callable和Future的了解。
3.线程池的参数有哪些,在线程池创建一个线程的过程。
4.volitile关键字的作用,原理。
5.synchronized关键字的用法,优缺点。
6.Lock接口有哪些实现类,使用场景是什么?
7.可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁(ConcurrentHashMap中的segment)。
8.悲观锁,乐观锁,优缺点,CAS有什么缺陷,该如何解决?
9.ABC三个线程如何保证顺序执行。
ZooKeeper
1.ZooKeeper是什么?
2.ZooKeeper提供了什么?
3.Zookeeper文件系统。
4.Zookeeper怎么保证主从节点的状态同步?
5.四种类型的数据节点Znode。
6.Zookeeper Watcher机制–数据变更通知。
7.客户端注册Watcher实现。
8.服务端处理Watcher实现。
9.客户端回调Watcher。
10.ACL权限控制机制。

Netty
1.Netty 是什么?
2.Netty 的特点是什么?
3.Netty 的优势有哪些?
4.Netty 的应用场景有哪些?
5.Netty 高性能表现在哪些方面?
6.BIO、NIO和AIO的区别?
7.NIO的组成?
8.Netty的线程模型?
9.TCP 粘包/拆包的原因及解决方法?
10.什么是 Netty 的零拷贝?
Tomcat
1.Tomcat是什么?
2.Tomcat的缺省端口是多少,怎么修改?
3.tomcat有哪几种Connector运行模式(优化)?
4.Tomcat有几种部署方式?
5.tomcat容器是如何创建servlet类实例?用到了什么原理?
6.Tomcat工作模式。
7.Tomcat顶层架构。
8.Tomcat顶层架构小结。
9.Connector和Container的微妙关系。
10.Container架构分析。
Redis
1.RDB和AOF区别。
2.为什么RDB要fork子进程而不是线程。
3.redis基本数据类型。
4.zset的底层数据结构,跳表何时增加高度。
5.分布式redis,缓存和数据库读写不一致,答延迟双删。
最后
关注我,【点击此处】即可获取整理好的这份2022年牛客网最热门的八股文合集!
希望能帮助到你面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
