超详细的Java面试题总结——Java高性能架构面试

前言:

一种是实际项目中确实有一些内存泄露,高并发的东西跟面试官说,还有就是可以假设(忽悠,似乎不太好),要是遇到类似的问题我如何解决,比如Java 内存泄露如何排查,用jstack,jmap,如何分析dump文件,找到问题,这个可以参照一些高质量公众号的文章内容,比如自己做的项目,如果并发很大,如何处理,redis 消息队列,数据如何优化,或者用hbase es等等,都要自己延展,找到一个点,深深的研究下去最好能够对springmvc mybatis springboot 在项目中用到的技术,进行深入研究,熟悉源码,说出底层处理过程,这个比较好

超详细的Java面试题总结——Java高性能架构面试

 

Java 核心面试题(一)

(1)基础类型(Primitives)与封装类型(Wrappers)的区别在哪里?

( 2 )final 与 static 关键字可以用于哪里?它们的作用是什么?

(3)阐述下 Java 中的访问描述符(Access Modifiers)。

(4)描述下 String,StringBuilder 以及 StringBuffer 区别。

(5)接口(Interface)与抽象类(Abstract Class)的区别在哪里。

(6)覆盖(Overriding)与重载(OverLoading)的区别在哪里。

(7)所谓的handle or declare原则应该如何理解?

(8)你是如何处理内存泄露或者栈溢出问题的?

(9)如何构建不可变的类结构?关键点在哪里?

(10)JVM,JDK,JRE之间的区别?

(11)JVM的内存分配区有几种类型?

(12)什么是JIT编译器?

(13)Java平台和其他平台有什么不一样?

(14)什么性质给予了”Java一次编译,到处运行“的特性?

(15)什么是类加载器?

分布式架构/分布式实战面试题(二)

(1)为什么要进行系统拆分?如何进行系统拆分?拆分后不用dubbo可以吗?dubbo和thrift有什么区别呢?

(2)说一下的dubbo的工作原理?注册中心挂了可以继续通信吗?

(3)dubbo支持哪些序列化协议?说一下hessian的数据结构?PB知道吗?为什么PB的效率是最高的?

(4)dubbo负载均衡策略和高可用策略都有哪些?动态代理策略呢?

(5)如何基于dubbo进行服务治理、服务降级、失败重试以及超时重试?

(6)分布式服务接口的幂等性如何设计(比如不能重复扣款)?

(7)分布式服务接口请求的顺序性如何保证?

(8)如何自己设计一个类似dubbo的rpc框架?

(9)使用redis如何设计分布式锁?使用zk来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?

(10)分布式事务了解吗?你们如何解决分布式事务问题的?TCC如果出现网络连不通怎么办?XA的一致性如何保证?

(11)集群部署时的分布式session如何实现?

(12)为什么使用消息队列啊?消息队列有什么优点和缺点啊?kafka、activemq、rabbitmq、rocketmq都有什么优点和缺点啊?

(13)es的分布式架构原理能说一下么(es是如何实现分布式的啊)?

(14)es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊?底层的lucene介绍一下呗?倒排索引了解吗?

(15)es在数据量很大的情况下(数十亿级别)如何提高查询效率啊?

Actvemq/Rabbitmq消息中间件面试题(三)

(1)如何确保消息正确地发送至RabbitMQ?

(2) 如何确保消息接收方消费了消息?

(3) 如何避免消息重复投递或重复消费?

(4) 消息基于什么传输?

(5) 消息如何分发?

(6) 如何确保消息不丢失?

(7)使用RabbitMQ有什么好处?

(8)如何在activemq.xml里面配置消息队列的大小,来保证队列不会溢出?

(9)如何保证消息队列的高可用啊?

(10)如何保证消息不被重复消费啊(如何进行消息队列的幂等性问题)?

(11)如何保证消息的可靠性传输(如何处理消息丢失的问题)?

(12)如何保证消息的顺序性?

(13)如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

(14)如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路

(15)为什么使用消息队列啊?消息队列有什么优点和缺点啊?kafka、activemq、rabbitmq、rocketmq都有什么优点和缺点啊?

Hibernate /mybatis 数据库面试题(四)

(1)什么是Hibernate的并发机制?怎么去处理并发问题?

(2)如何在控制台看到hibernate生成并执行的sql

(3)hibernate都支持哪些缓存策略

(4)hibernate里面的sorted collection 和ordered collection有什么区别

(5)Hibernate工作原理及为什么要用?

(6)Hibernate是如何延迟加载?

(7)Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)

(8)说下Hibernate的缓存机制

(9)Mybatis是如何进行分页的?分页插件的原理是什么?

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

(11)Mybatis执行批量插入,能返回数据库主键列表吗?

(12)Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?

(13)Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

(14)Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别。

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

Kafka/Memcached实战面试题(五)

1、Memcached是什么,有什么作用?

2、Memcached服务在企业集群架构中应用场景

3、Memcached服务在不同企业业务应用场景中的工作流程

4、Memcached服务分布式集群如何实现?

5、Memcached服务特点及工作原理是什么?

6、简述Memcached内存管理机制原理?

7、请说明什么是Apache Kafka?

8、请说明什么是传统的消息传递方法?

9、请说明Kafka相对传统技术有什么优势?

10、在Kafka中broker的意义是什么?

11、Kafka服务器能接收到的最大信息是多少?

12、解释Kafka的Zookeeper是什么?我们可以在没有Zookeeper的情况下使用Kafka吗?

13、解释Kafka的用户如何消费信息?

14、解释如何提高远程用户的吞吐量?

15、解释一下,在数据制作过程中,你如何能从Kafka得到准确的信息?

16、解释如何减少ISR中的扰动?broker什么时候离开ISR?

17、Kafka为什么需要复制?

18、如果副本在ISR中停留了很长时间表明什么?

19、请说明如果首选的副本不在ISR中会发生什么?

20、有可能在生产后发生消息偏移吗?

Spring系列框架面试题(六)

1、介绍下 Spring 的优势与缺陷。

2、你用过哪些 Spring 的模块?

3、Spring 中提供了几种自动注入的机制?

4、介绍下 Spring MVC。

5、Spring 中 Bean 的生命周期包含哪些步骤?

6、Spring Bean 与 EJB Bean 的区别在哪里?

7、简单介绍下SpringMVC和Struts2的区别?

8、SpringMVC中的控制器的注解一般用哪个?

9、SpringMVC的控制器是不是单例模式,如果是,有什么问题?

10、是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的

11、SpringMVC怎么样设定重定向和转发的?

12、springboot常用的starter有哪些

13、springboot读取配置文件的方式

14、springboot集成mybatis的过程

15、springcloud如何实现服务的注册和发现

16、springcloud断路器的作用

高性能缓存面试题(七)

1、MySQL的delete与truncate区别?

2、MySQL的存储过程是什么?

3、数据库语句优化有哪些?

4、MySQL数据库优化有哪些?

5、Oracle数据库优化有哪些?

6、为什么Redis需要把所有数据放到内存中?

7、Redis常见的性能问题怎么解决?

8、Redis与memcached有什么区别?

9、Redis有哪些数据结构?

10、Redis持久化方案区别以及优缺点?

11、如何来维护集群之间的关系,或者说集群之间如何建立连接?

12、在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果?

13、redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis比多线程的memcached效率要高得多?

14、redis都有哪些数据类型?分别在哪些场景下使用比较合适?

15、redis的过期策略都有哪些?手写一下LRU代码实现?

16、如何保证Redis高并发、高可用、持久化?redis的主从复制原理能介绍一下么?redis的哨兵原理能介绍一下么?

17、redis的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?

18、redis集群模式的工作原理能说一下么?在集群模式下,redis的key是如何寻址的?分布式寻址都有哪些算法?了解一致性hash算法吗?如何动态增加和删除一个节点?

19、了解什么是redis的雪崩和穿透?redis崩溃之后会怎么样?系统该如何应对这种情况?如何处理redis的穿透?

20、如何保证缓存与数据库的双写一致性?

高性能架构进阶专题

  1. 分布式架构思维
  2. Zookeeper分布式环境指挥官
  3. Nginx高并发分流进阶实战
  4. Actvemq消息中间件
  5. Rabbitmq消息中间件
  6. Kafka百万级吞实战
  7. Memcached进阶实战
  8. 高并发场景分布式解决方案实战
  9. Fastdfs分布式文件存储实战
  10. MySQL高性能存储实战
  11. 高性能缓存开发实战
  12. MongoDB进阶实战
  13. Redis高性能缓存数据库

超详细的Java面试题总结——Java高性能架构面试

 

需要面试题汇总(可私信我免费领取答案)请加群:909723834即可领取

附加java开发的资料(面试资源与经验总结,Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术****资料,架构思维导图,以及面试资料,了解最新的学习动态;了解最新的阿里、京东招聘资讯)