Java高级面试题

  Redis面试题

Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

什么是Redis?

Redis的数据类型有哪些?

Redis有什么优点?

Redis有什么缺点?

Redis相比memcached有哪些优势?

Redis和memcached有哪些区别?

redis是否是单进程单线程方式,为什么?

Redis持久化有哪几种方式?都有什么优缺点?

Redis常见的性能问题和解决方法

Redis内存回收策略(淘汰策略)?

Redis的过期键删除策略有哪几种?

Redis中Pipeline有什么好处,为什么要用pipeline?

Redis是如何实现的同步机制?

什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?

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

Redis集群的原理是什么?

Redis集群在什么情况下会导致整个集群不可用?

Redis集群的主从复制模型是怎样的?

Redis key的过期时间和永久有效分别怎么设置?

Redis支持的Java客户端都有哪些?官方推荐用哪个?

说说Redis哈希槽的概念?

怎么理解Redis事务?

Redis集群如何复制?最大节点数?是否支持选择数据库?

Redis和Redisson有什么关系?

Jedis与Redisson对比有什么优缺点?

怎么理解Redis事务?相关命令有哪些?

如果有大量的key需要设置同一时间过期,一般需要注意什么?

Redis适合的场景有哪些?

一个Redis实例最多能存放多少的keys?List、Set、Sorted Set他们最多能存放多少元素?

Redis持久化数据和缓存怎么做扩容?

Redis如何做内存优化?

Redis回收进程如何工作的?

  MyBatis面试题

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs映射成数据库中的记录。

什么是Mybatis?

Mybaits框架优缺点,适用于什么场合?

MyBatis与Hibernate有哪些不同?

在MyBatis框架中#{}和${}的区别是什么?

在实体类中的属性名和表中的字段名不同如何解决?

模糊查询like语句一般怎么写?

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

如何获取自动生成的(主)键值?

在mapper中如何传递多个参数?

Mybatis动态sql有什么用?有哪些动态sql?简述一下执行原理?

为什么Mybatis是半自动ORM映射工具?它与全自动有什么区别?

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

简述Mybatis的插件运行原理及如何编写一个插件?

Mybatis都有哪些Executor执行器?它们之间的区别是什么?

什么情况下用注解绑定,什么情况下用xml绑定?

MyBatis实现一对一有几种方式?它们之间的区别有哪些?

Mybatis是否支持延迟加载?如果支持,其实现原理是什么?

Mybatis有哪些Executor执行器?有什么区别?

Mybatis中不同的Xml映射文件id是否可以重复?

 Zookeeper面试题

Zookeeper是一个开源的分布式协调服务,由雅虎创建是Google Chubby的开源实现。分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。

ZooKeeper是什么?

ZooKeeper提供了什么?

Zookeeper文件系统是什么?

Zookeeper是如何保证事务的顺序一致性的?

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

Zookeeper是如何选取主leader的?

说一说对Zookeeper分布式锁如何理解的?

Zookeeper负载均衡和nginx负载均衡区别

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

集群不得少于几台服务器,集群规则是什么?

Zookeeper的java客户端都有哪些?

说一说zookeeper常用的命令有哪些?

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

Zookeeper负载均衡和Nginx负载均衡有什么区别?

客户端注册Watcher实现原理。

Zookeeper是如何保证事务的顺序一致性的?

Zookeeper对节点的watch监听通知是永久的吗?为什么?

Zookeeper节点宕机如何处理?

集群支持动态添加服务器吗?

Zookeeper的典型应用场景举例。

  Dubbo面试题

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。

为什么要用Dubbo?

Dubbo的整体架构设计有哪些分层?

Dubbo默认使用的是什么通信框架,还有其他的选择吗?

Dubbo服务调用是阻塞的吗?

Dubbo一般使用什么注册中心?还有其他的选择吗?

Dubbo默认使用什么序列化框架,还有哪些序列化框架?

Dubbo推荐使用什么协议?

同一个服务多个注册的情况下可以直连某一个服务吗?

画一画服务注册与发现的流程图?

Dubbo配置文件是如何加载到Spring中的?

Dubbo集群容错有几种方案?

Dubbo支持分布式事务吗?

Dubbo可以对结果进行缓存吗?

Dubbo服务降级,失败重试怎么做?

如何Dubbo解决服务调用链过长的问题?

Dubbo Monitor实现原理?

Dubbo支持服务降级吗?

Dubbo用到哪些设计模式?

Dubbo telnet命令有什么用?

Dubbo必须依赖的包有哪些?

Dubbo如何优雅停机?

如何理解Dubbo服务暴露的过程?

服务上线怎么兼容旧版本?

Dubbo和Spring Cloud的区别?

Dubbo使用过程中都遇到了些什么问题?

  MySQL面试题

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL索引是什么?有什么作用以及缺点?

MySQL中什么是事务,事务特性?

MySQL如何开启慢日志查询?

针对MySQL对于大表的常见优化手段有哪些?

MySQL优化SQL的方法,举例不少于5条。

谈谈三大范式,什么时候使用反范式设计?

MySQL中myisam与innodb的区别?

MySQL中varchar与char的区别及varchar(50)中50代表什么含义?

MySQL binlog有几种日志录入格式及有什么区别?

MySQL数据库CPU飙升到500%的话如何处理?

MySQL备份恢复失败如何处理?

如何从mysqldump全库备份中只恢复某一个库、某一张表?

如何设计一个高并发的系统?

 Elasticsearch面试题

Elasticsearch是一个高度可扩展的、开源的、基于 Lucene 的全文搜索和分析引擎。

为什么要使用Elasticsearch?

Elasticsearch中的群集是什么?

ElasticSearch中的分片是什么?

Elasticsearch数据储存方式。

Elasticsearch可以取代数据库吗?

Elasticsearch中如何删除索引,常用命令有哪些?

Elasticsearch是如何实现Master选举的?

在Elasticsearch中搜索的方式有哪些?

详细描述一下Elasticsearch索引文档的过程。

如何在Elasticsearch群集中添加或创建索引?

详细描述一下Elasticsearch搜索的过程。

Elasticsearch对于大数据量(上亿量级)的聚合如何实现?

在并发情况下,Elasticsearch如果保证读写一致?

ElasticSearch中的集群、节点、索引、文档、类型是什么?

Elasticsearch索引数据如何调优和部署?

Elasticsearch在部署时,对Linux设置有哪些优化方法?

详细描述一下Elasticsearch更新和删除文档的过程。

  Spring面试题

Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器。Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。

Spring是什么?

Spring的优点?

谈谈对Spring的AOP理解

谈谈对Spring IoC的理解?

谈谈对Spring DI的理解?

BeanFactory接口和ApplicationContext接口有什么区别?

请介绍你熟悉的Spring核心类,并说明有什么作用?

什么是Spring Bean的生命周期?

Spring支持的几种bean的作用域?

介绍Spring事务、实现方式及实现原理。

Spring框架中的单例Beans是线程安全的么?

Spring如何处理线程并发问题?

Spring基于xml注入bean的几种方式?

Spring中都用到了哪些设计模式?

Spring框架中有哪些不同类型的事件?

说一下Spring AOP中名词的含义?

  Spring Boot面试题

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者。

什么是Spring Boot?

Spring Boot有哪些优点?为什么要用Spring Boot?

Spring Boot的核心注解?它主要由哪几个注解组成?

Spring Boot的配置文件有哪几种格式?它们有什么区别?

开启Spring Boot特性有哪几种方式?

Spring Boot需要独立的容器运行吗?

运行Spring Boot有哪几种方式?

Spring Boot自动配置原理是什么?

Spring Boot中的监视器是什么?

如何在Spring Boot中禁用Actuator端点安全性?

Spring Boot的目录结构是怎样的?

如何理解Spring Boot 中的Starters?

如何在Spring Boot启动时运行一些特定的代码?

Spring Boot有哪几种读取配置的方式?

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

如何集成Spring Boot和ActiveMQ?

如何使用Spring Boot部署到不同的服务器?

Spring Boot、Spring MVC和 Spring有什么区别?

如何使用Spring Boot实现分页和排序?

Spring Boot支持哪些日志框架?推荐和默认的日志框架是哪个?

如何理解Spring Boot 配置加载顺序?

Spring Boot如何定义多套不同环境配置?

Spring Boot还提供了其它的哪些Starter Project Options?

Spring Initializr是创建Spring Boot Projects的唯一方法吗,为什么?

Spring Boot 2.X有什么新特性?与1.X有什么区别?

  MQ面试题

MQ全称为Message Queue, 消息队列(MQ)是应用程序“对”应用程序的通信方法。

什么场景使用MQ?直接掉接口不可以吗?

MQ都有什么优点和缺点?

Kafka、ActiveMQ、RabbitMQ、RocketMQ有什么区别?

Kafka与传统MQ消息系统之间有三个关键区别?

如何保证消息队列的高可用?

如何保证消息不被重复消费?如何保证消费的时候是幂等的?

如何保证消息的可靠性传输?如果消息丢失了如何处理?

MQ消息的顺序是怎么进行保证的?

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

如果写一个消息队列,该如何进行架构设计?

  JVM面试题

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

JVM在什么情况下会发生栈内存溢出?

详解介绍JVM内存模型

JVM内存为什么要分成新生代,老年代,持久代?新生代中为什么要分为Eden和Survivor?

JVM三大性能调优参数,JVM有哪些重要参数?

JVM如何调优?

描述JVM中一次Full gc过程。

强引用、软引用、弱引用、虚引用的区别?

你知道哪几种垃圾收集器?各自的优缺点,重点说一说cms和G1,包括原理,流程,优缺点。

JVM内存模型的相关知识了解吗?介绍一下重排序,内存屏障,happen-before,主内存,工作内存。

Java垃圾回收机制。

Java 中都有哪些引用类型?

JVM中类加载机制,类加载过程,什么是双亲委派模型?,类加载器有哪些

如何判断是否有内存泄露?定位 Full GC 发生的原因,有哪些方式?

你可能感兴趣的:(Java高级面试题)