年后上来,马上将迎来金三银四。
想必,很多人都在为这个黄金时期做准备,跳槽、涨薪、找工作吧~但是真的要做一个规划是不是又觉得手足无措,不知从何下手复习呢。今天就给大家分享一份花了一些时间整理的专门突击金三银四的一套Java面试题,希望能够帮助到大家。
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、如何检测死锁?怎么预防死锁?
13、Java内存模型?
14、如何保证多线程下i++结果正确?
15、线程池的种类,区别和使用场景?
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直接内存。
11.Java类加载的过程。
12.双亲委派模型的过程以及优势。
13.常用的JVM调优参数。
14.dump文件的分析。
15.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中用到了那些设计模式?
11、Spring MVC的工作原理?
12、Spring循环注入的原理?
13、Spring AOP的理解,各个术语,他们是怎么相互工作的?
14.如果你也用过 struts2简单介绍下 springMVC和struts2的区别有哪些?
15.Spring Mvc怎么样设定重定向和转发的?
16.Spring Mvc里面拦截器是怎么写的?
17.什么是Spring IOC 容器?
18.什么是依赖注入?可以通过多少种方式完成依赖注入?
19.区分BeanFactory和ApplicationContext
20.Spring Bean 容器的生命周期是什么样的?
Redis相关面试题
1.RDB和AOF区别。
2.为什么RDB要fork子进程而不是线程。
3.redis基本数据类型。
4.zset的底层数据结构,跳表何时增加高度。
5.分布式redis,缓存和数据库读写不一致,答延迟双删。
6.面试官让随便讲讲Redis,所以还说了缓存穿透,击穿,雪崩以及处理方法。
7.Redis相比memcached有哪些优势?
8.Redis主要消耗什么物理资源?
9.Redis有哪几种数据淘汰策略?
10.Redis官方为什么不提供Windows版本?
11.一个字符串类型的值能存储最大容量是多少?
12.为什么Redis需要把所有数据放到内存中?
13.Redis集群方案应该怎么做?都有哪些方案?
14.Redis集群方案应该怎么做?都有哪些方案?
15.Redis集群方案什么情况下会导致整个集群不可用?
16.Redis有哪些适合的场景?
17.Redis和Redisson有什么关系?
18.Jedis与Redisson对比有什么优缺点?
19.说说Redis哈希槽的概念?
20.Redis集群如何选择数据库?
MySQL相关面试题
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 时怎么加排它锁?
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?
MyBatis相关面试题
1.Mybatis是什么?
2.Mybaits的优点?MyBatis 框架的缺点?
3.MyBatis框架适用场合
4.MyBatis与Hibernate有哪些不同?
5.#{}和${}的区别是什么?
6.模糊查询like语句该怎么写?
7.Mybatis是如何进行分页的?分页插件的原理是什么?
8.为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
9.MyBatis实现一对一有几种方式?具体怎么操作的?
10.MyBatis实现一对多有几种方式,怎么操作的?
Tomcat相关面试题
1.Tomcat是什么?
2.Tomcat的缺省端口是多少,怎么修改?
3.tomcat有哪几种Connector运行模式(优化)?
4.Tomcat有几种部署方式?
5.tomcat容器是如何创建servlet类实例?用到了什么原理?
ZooKeeper相关面试题
1.ZooKeeper是什么?
2.ZooKeeper提供了什么?
3.Zookeeper文件系统。
4.Zookeeper怎么保证主从节点的状态同步?
5.四种类型的数据节点Znode。
6.Zookeeper Watcher机制–数据变更通知。
7.客户端注册Watcher实现。
8.服务端处理Watcher实现。
9.客户端回调Watcher。
10.ACL权限控制机制。
微服务相关面试题
1.前后端分离是如何做的?微服务哪些框架?
2.说说 RPC的实现原理、说说Dubbo的实现原理
3.微服务架构有哪些优势?微服务有哪些特点?
4.设计微服务的最佳实践是什么?
5.微服务架构如何运作?
6.微服务架构的优缺点是什么?
7.单片,SOA和微服务架构有什么区别?
8.SOA和微服务架构之间的主要区别是什么?
9.API管理
10.服务熔(hystrix)、服务跟踪(starter-sleuth)
Netty相关面试题
1.Netty 是什么?
2.Netty 的特点是什么?
3.Netty 的优势有哪些?
4.Netty 的应用场景有哪些?
5.Netty 高性能表现在哪些方面?
6.BIO、NIO和AIO的区别?
7.NIO的组成?
8.Netty的线程模型?
9.TCP 粘包/拆包的原因及解决方法?
10.什么是 Netty 的零拷贝?
Java 并发编程相关面试题
1.什么是多线程中的上下文切换?
2.死锁与活锁的区别,死锁与饥饿的区别?
3.Java中用到的线程调度算法是什么?
4.什么是线程组,为什么在 Java 中不推荐使用?
5.为什么使用Executor 框架?
6.什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
7.什么是Callable 和 Future?
8.什么是FutureTask?使用 ExecutorService 启动任务
9.什么是并发容器的实现?
10.多线程同步和互斥有几种实现方法,都是什么?
11.Java中你怎样唤醒一个阻塞的线程?
12.在Java中CycliBarriar和CountdownLatch有什么区别?
13.什么是线程组,为什么在Java中不推荐使用?
数据库相关面试题
1.索引、常见索引原理 、限制索引的数目
2.mylasm、memory、tokudb、B+树、概念
3.排序二叉树、前缀树、红黑树、位图
4.数据库并发策略、乐观锁、悲观锁、时间戳
5.基于Redis分布式锁、两阶段提交协议、准备阶段、提交阶段、缺点
最后
考虑篇幅,就着重挑了一些常见的重要的面试题展示出来了。
所有的面试题目都不是一成不变的,上面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。
考虑篇幅,就着重挑了一些常见的重要的面试题展示出来了。
所有的面试题目都不是一成不变的,上面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。
**资料获取方式:添加小助理vx:mxzFAFAFA即可!!**
面试前的“练手”还是很重要的,所有开始面试之前一定要准备好哦,不然也是耽搁面试官和自己的时间。