JVM 相关面试题

1.Java 中你怎样唤醒一个阻塞的线程?

2.在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?

3.为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?

4.垃圾回收与算法、如何确定垃圾、标记清除算法、复制算法、标记整理算法、分代收集算法

5.GC 分代收集算法 VS 分区收集算法、分代收集算法、分区收集算法

6.程序计数器(线程私有)、虚拟机栈(线程私有)

7.JVM 类加载机制、验证、加载、准备、直接引用、类构造器、符号引用......

 

8.描述一下 JVM 加载 class 文件的原理机制

9.堆(Heap-线程共享) -运行时数据区

10.JVM 运行时内存、新生代、老年代、永久代

11.描述一下 JVM 加载 class 文件的原理机制?

12.Java 对象创建过程、简述 Java 的对象结构、

13.如何判断对象可以被回收?

14.JVM 的永久代中会发生垃圾回收么

15.垃圾收集算法、GC 最基础的算法有哪几种?

 

Spring 相关面试题

1.如何理解 Spring Boot 中的 Starters?

2.什么是 spring Framework?

3.运行 Spring Boot 有哪几种方式?

4.如何使用 Spring Boot 实现异常处理?

5.Spring Boot 中的监视器是什么?

6.列举 spring Framework 的优点

7.什么是 spring 配置文件?

8.SpringBoot 实现热部署有哪几种方式

9.Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

10.服务注册和发现是什么意思?Spring Cloud 如何实现?

11.负载平衡的意义什么?什么是 Hystrix?它如何实现容错?

12.什么是 Spring Cloud Bus?我们需要它吗?

13.SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?

14.如果你也用过 struts2 简单介绍下 springMVC 和 struts2 的区别有哪些?

15.SpringMVC 怎么样设定重定向和转发的?

16.SpringMvc 里面拦截器是怎么写的?

17.什么是 Spring IOC 容器?

18.什么是依赖注入?可以通过多少种方式完成依赖注入?

19.区分 BeanFactory 和 ApplicationContext

20.spring bean 容器的生命周期是什么样的?

21.什么是 spring 的内部 bean?什么是 spring 装配?

22.@Component, @Controller, @Repository, @Service 有何区别?

23.@Required 注解有什么用?@Autowired 注解有什么用?

24.@RequestMapping 注解有什么用?@Qualifier 注解有什么用?

 

25.spring 支持哪些 ORM 框架?

26.什么是 Aspect?什么是切点(JoinPoint)?什么是通知(Advice)?有哪些类型的通知(Advice)?

27.描述一下 DispatcherServlet 的工作流程

28.介绍一下 WebApplicationContext

 

多线程并发相关面试题

1.Java 线程实现/创建方式、Java 并发知识库

2.继承 Thread 类、实现 Runnable 接口

3.volatile 是什么?可以保证有序性吗?

4.Thread 类中的 start() 和 run() 方法有什么区别?

5.为什么 wait 和 notify 方法要在同步块中调用?

6.为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?

7.线程生命周期(状态)、终止线程的 4 种方式、使用退出标记退出线程、stop 方法终止线程

 

8.线程唤醒(notify)、线程其他方法、进程、上下文。寄存器、程序计数器、PCB-“切换桢”

9.什么是 CAS(比较并交换-乐观锁机制-锁自旋)、概念及特性、原子包、ABA 问题

10.同步锁、死锁、线程池原理、线程复、线程池的组成

11.reentrantreadwritelock 实现独占锁和共享两种方式

12.sleep 与 wait 区别、start 与 run 区别、Java 后台线程

13.死锁与活锁的区别,死锁与饥饿的区别?

14.什么是多线程中的上下文切换?

15.Java 中用到的线程调度算法是什么?

16.什么是线程组,为什么在 Java 中不推荐使用?

17.什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?

18.什么是 FutureTask?使用 ExecutorService 启动任务

19.线程同步和互斥有几种实现方法,都是什么?

20.为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?

21.解释 Java 堆空间及 GC?

 

MyBatis 相关面试题

1.Mybatis 是什么?

2.Mybaits 的优点?MyBatis 框架的缺点?

3.MyBatis 框架适用场合

4.MyBatis 与 Hibernate 有哪些不同?

5.#{}和 ${}的区别是什么?

6.模糊查询 like 语句该怎么写?

7.Mybatis 是如何进行分页的?分页插件的原理是什么?

8.为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

9.MyBatis 实现一对一有几种方式?具体怎么操作的?

10.MyBatis 实现一对多有几种方式,怎么操作的?

 

11.Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?

12.Mybatis 的一级、二级缓存

13.什么是 MyBatis 的接口绑定?有哪些实现方式?

14.使用 MyBatis 的 mapper 接口调用时有哪些要求?

15.Mapper 编写有哪几种方式?

16.MyBatis 实现一对一有几种方式?具体怎么操作的 ?

17.Mybatis 是如何进行分页的?分页插件的原理是什么?

18.一对一、一对多的关联查询 ?

19.简述 Mybatis 的插件运行原理,以及如何编写一个插件。

20.为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

 

微服务相关面试题

1.前后端分离是如何做的?微服务哪些框架?

2.说说 RPC 的实现原理、说说 Dubbo 的实现原理

3.微服务架构有哪些优势?微服务有哪些特点?

4.设计微服务的最佳实践是什么?

5.微服务架构如何运作?

6.微服务架构的优缺点是什么?

7.单片,SOA 和微服务架构有什么区别?

8.SOA 和微服务架构之间的主要区别是什么?

9.API 管理

10.服务熔(hystrix)、服务跟踪(starter-sleuth)

11.什么是有界上下文?什么是双因素身份验证?什么是客户证书?

12.PACT 在微服务架构中的用途是什么?

13.什么是 OAuth?康威定律是什么?什么是端到端微服务测试?

14.您对微服务架构中的语义监控有何了解?该如何进行跨功能测试?

15.什么是消费者驱动的合同(CDC)?

 

ZooKeeper 相关面试题

1.ZooKeeper 是什么?

2.ZooKeeper 提供了什么?

3.Zookeeper 文件系统

4.四种类型的 znode

5.Zookeeper 通知机制

6.Zookeeper 做了什么?

7.客户端注册 Watcher 实现、服务端处理 Watcher 实现

8.客户端回调 Watcher

9.ACL 权限控制机制

10.Chroot 特性

11.会话管理、服务器角色

12.Zookeeper 分布式锁(文件系统、通知机制)

13.获取分布式锁的流程

14.分布式集群中为什么会有 Master?

15.zookeeper 负载均衡和 nginx 负载均衡区别

16.Zookeeper 有哪几种几种部署模式?

 

17.说几个 zookeeper 常用的命令

18.ZAB 和 Paxos 算法的联系与区别?

19.Zookeeper 的典型应用场景

20.chubby 是什么,和 zookeeper 比你怎么看?

21.Zookeeper 的 java 客户端都有哪些?

22.Zookeeper 有哪几种几种部署模式?

23.Zookeeper 队列管理(文件系统、通知机制)

24.zk 的命名服务(文件系统)

25.zk 的配置管理(文件系统、通知机制)**

26.Zookeeper 集群管理(文件系统、通知机制)**

27.Zookeeper 的典型应用场景

28.ZAB 和 Paxos 算法的联系与区别?

 

数据库相关面试题

1.索引、常见索引原理 、限制索引的数目

2.mylasm、memory、tokudb、B+树、概念

3.排序二叉树、前缀树、红黑树、位图

4.数据库并发策略、乐观锁、悲观锁、时间戳

5.基于 Redis 分布式锁、两阶段提交协议、准备阶段、提交阶段、缺点

 

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 中不推荐使用?

14.LinkedBlockingDeque

15.什么是 Daemon 线程?它有什么意义?

16.notify()和 notifyAll()有什么区别?

17.如何停止一个正在运行的线程?

 

最后

考虑篇幅,就着重挑了一些常见的重要的面试题展示出来了。所有的面试题目都不是一成不变的,上面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。

 

 

资料获取方式:一键三连支持小编一下后“查看下图”即可无偿获取到!

面试前的“练手”还是很重要的,所有开始面试之前一定要准备好哦,不然也是耽搁面试官和自己的时间。