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.如何停止一个正在运行的线程?

 

最后

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

 

 

资料获取方式:关注小编+转发文章

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