您的位置 首页 java

月薪30k 的Java面试题,哭着也要背完!(附答案)

你好,我是田哥

最近整理了一份面试题,只要你能好好地背,找工作就妥妥的稳。

话不多说,请看题。

注意:文章有点长。

java 基础

Java语言有哪些特点

面向对象和面向过程的区别

面向对象编程三大特性

八种基本数据类型的大小,以及他们的封装类

说说你对 JDK JRE JVM 的理解

说说标识符的命名规则

熟悉instanceof 关键字的作用吗?

说说Java自动装箱与拆箱

说说重载和重写的区别

Integer a= 127 与 Integer b = 127相等吗?

抽象类和接口的对比

什么是内部类?

内部类有什么优点?

内部类有哪些应用场景?

局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?

为什么 Java 中只有值传递?

熟悉JDK哪些包?

说说Java代码初始化顺序

说说你对 equals与== 的理解

说说 hashCode 的作用

String、 StringBuffer 和 StringBuilder

说说HashMap和 Hashtable 的区别

Collection与Collections的区别

熟悉 Java的对象引用类型吗?

说说泛型常用特点

Java创建对象有几种方式?

有没有可能两个不相等的对象有相同的hashcode

深拷贝和浅拷贝的区别是什么?

final有哪些用法?

final finally finalize区别

说说this关键字的用法

说说super关键字的用法

说说this与super的区别

static 都有哪些用法?

平时使用static应该注意些什么?

&和&&的区别?

switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?

两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不对?

a=a+b与a+=b有什么区别吗?

try catch finally,try里有return,finally还执行么?

说说你对Excption与Error包的理解

Java 序列化中如果有些字段不想进行序列化,怎么办?

说说Java 中 IO 流

简单说说 Java IO 与 NIO的区别

说说你对Java反射的理解

说说反射机制的优缺点

Object 有哪些常用方法?大致说一下每个方法的含义

获取一个类Class对象的方式有哪些?

String s = new String(“abc”)创建了几个String对象?

说说你对 String类 的intern()方法的理解

String 类 的常用方法都有哪些?

String字符串为什么说是不可变?

简单说说Java中接口和抽象类的区别

BIO、NIO、AIO 有什么区别?

Files的常用方法都有哪些?

JDK 1.8 之后有哪些新特性?

什么是多态机制?

值传递和引用传递有什么区别?

Class.forName和ClassLoader有什么区别 ?

简单说说List,Set,Map三者的区别?

Collection和Collections的区别

ArrayList 和 LinkedList 的区别有哪些?

有数组了为什么还要搞个 ArrayList 呢?

ArrayList是线程安全的么?

说说ArrayList 的扩容机制

ArrayList 在JDK1.7和JDK1.8版本初始化的区别

我想ArrayList集合中加入1万条数据,应该怎么提高效率?

HashMap 和 Hashtable 的区别

HashMap 的长度为什么是2的幂次方?

HashMap 是线程安全的么?

什么是加载因子?加载因子为什么是 0.75 ?

为什么 HashMap 的初始化长度是 16 ?

为什么树化是 8,退树化是 6?

请说说 HashMap 多线程操作导致死循环问题

为什么重写 equals 方法的时,需要重写 hashCode 方法呢?

ConcurrentHashMap 和 Hashtable 的区别

JDK1.8中满足什么条件后将 链表 转化成 红黑树 ?又什么时候转回来?

HashMap为什么会引入红黑树做查询优化呢?

为什么把8作为 阈值

HashMap如何解决冲突?

我们自定义类来作为 HashMap的key 吗?

HashMap 的长度为什么是 2 的 N 次方呢?

HashMap 与 ConcurrentHashMap 的异同

简单说说HashMap的put方法过程

说说我们写的java程序是如何执行的?

JVM

Java 是如何实现跨平台的?

什么是 JVM ?

说说JDK、JRE、JVM的关系?

请你描述一下 JVM 的内存区域?

运行时常量池的作用是什么?

直接内存是什么?

为什么使用元空间替换了永久代?

方法区、堆、栈之间到底有什么关系?

为什么需要两个大小一样的Survivor区?

新生代中Eden:S1:S2为什么是8:1:1?

请你描述一下 Java 中的类加载机制?

描述一下JVM加载Class文件的原理机制?

类加载器是有了解吗?

熟悉哪些类加载器?

每个类加载器加载哪个目录中的类库

Java 虚拟机 是如何判定两个 Java 类是相同的?

类加载器是如何加载 class 文件的?

说说什么是双亲委派模型以及作用

双亲委派模型的工作过程?

如何破坏双亲委派模型?

你知道哪些打破双亲委派机制的例子?

如何自定义类加载器?

对象分配内存是否线程安全?

在 JVM 中,对象是如何创建的?

内存分配方式有哪些呢?

对象一定分配在堆中吗?

请你说一下对象的内存布局?

对象访问定位的方式有哪些?

GC是什么?为什么要GC

如何判断对象已经死亡?

说说你对Java 中四大引用类型的理解

如何判断一个不再使用的类?

了解finalize方法吗?

你知道哪些垃圾收集算法?

说一下 JVM 有哪些垃圾回收器?

如何选择垃圾收集器?

简单说说你对G1收集器的理解

ZGC了解吗?

能够触发条件 Full GC 有哪些?

说说垃圾回收过程

你知道哪些JVM调优参数?

8G内存的服务器该如何设置相应JVM参数?

如何排查线上系统 CPU 飙高

说说 内存泄漏 和内存溢出

生产环境服务器变慢,怎么办?

JVM 监控与分析工具你用过哪些?

如何开启和查看 GC 日志?

你们生产环境用的什么JDK?如何配置的垃圾收集器?

怎么打出线程栈信息?

线上出现 OOM 的问题,怎么排查?

MinorGC、MajorGC、FullGC 什么时候发生?

如何解决线上GC频繁的问题?

简述一下内存溢出的原因,如何排查线上问题?

并发编程

说说Java中实现 多线程 有几种方法

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

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

sleep()和wait() 有什么区别?

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

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

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

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

Java中interrupted 和 isInterruptedd方法的区别?

Java中 synchronized 和 ReentrantLock 有什么不同?

有三个线程T1,T2,T3,如何保证顺序执行?

SynchronizedMap和ConcurrentHashMap有什么区别?

什么是线程安全

Thread类中的 yield 方法有什么作用?

说一说自己对于 synchronized 关键字的了解

说说你是如何使用 synchronized 的?

Vector 是一个线程安全类吗?

volatile关键字的作用?

常用的 线程池 有哪些?

简述一下你对线程池的理解

ThreadPoolExecutor 有哪些常用的方法?

线程池中submit() 和 execute()方法有什么区别?

线程池中线程是如何复用的?

了解线程池状态吗?

锁的优化机制了解吗?

说说进程和线程的区别?

产生死锁的四个必要条件?

如何避免死锁?

线程池核心线程数怎么设置呢?

Java线程池中队列常用类型有哪些?

线程池原理知道吗?以及核心参数

线程池的拒绝策略有哪些?

线程安全需要保证几个基本特征?

说一下线程之间是如何通信的?

CAS的原理呢?

CAS有什么缺点吗?

引用类型有哪些?有什么区别?

说说 ThreadLocal 原理?

为什么要用ThreadLocal?

Entry的key为什么设计成弱引用?

ThreadLocal真的会导致内存泄露?

如何解决内存泄露问题?

线程池中如何共享数据?

ThreadLocal有哪些用途?

说说你对JMM内存模型的理解?为什么需要JMM?

多线程有什么用?

说说CyclicBarrier和CountDownLatch的区别?

什么是AQS?

什么是Callable和Future?

什么是阻塞队列?阻塞队列的实现原理是什么?

如何使用阻塞队列来实现生产者-消费者模型?

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

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

乐观锁 和悲观锁的理解及如何实现,有哪些实现方式?

spring

什么是spring?

你们项目中为什么使用Spring框架?

Autowired和Resource关键字的区别?

依赖注入的方式有几种,各是什么?

Spring核心模块有哪些?

说说你对 Spring MVC 的理解

Spring MVC常用的注解有哪些?

谈谈你对Spring的AOP理解

Spring AOP和AspectJ AOP有什么区别?

在Spring AOP 中,关注点和横切关注的区别是什么?

什么是通知呢?有哪些类型呢?

说说你对Spring的IOC是怎么理解的?

解释一下spring bean的生命周期

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

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

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

说说Spring 中 ApplicationContext 和 BeanFactory 的区别

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

Spring 是怎么解决循环依赖的?

说说事务的隔离级别

说说事务的传播级别

Spring 事务实现方式

Spring框架的事务管理有哪些优点

事务三要素是什么?

事务注解的本质是什么?

jsp 和 servlet 有什么区别?

jsp 有哪些内置对象?作用分别是什么?

说一下 jsp 的 4 种作用域?

session cookie 有什么区别?

说一下 session 的工作原理?

如果客户端禁止 cookie 能实现 session 还能用吗?

spring mvc 有哪些组件?

说说Spring IoC调用过程

说说Spring DI调用过程

说说Spring AOP调用过程

说说Spring MVC 调用过程

Spring Boot

什么是 Spring Boot?

为什么要用Spring Boot

Spring Boot与Spring Cloud 区别

Spring Boot 有哪些优点?

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

Spring Boot 的自动配置是如何实现的?

什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?

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

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

SpringBoot支持什么前端模板,

SpringBoot的缺点

运行 Spring Boot 有哪几种方式?

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

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

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

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

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

熟悉 JavaConfig吗?

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

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

什么是 YAML

YAML 配置的优势在哪里 ?

Spring Boot 是否可以使用 XML 配置 ?

spring boot 核心配置文件是什么? bootstrap .properties 和 application.properties 有何区别 ?

什么是 Spring Profiles?

Spring Boot 中的监视器是什么?

如何优化对Spring Boot性能

您用过哪些 starter maven 依赖项?

Spring Boot 中的 starter 到底是什么 ?

spring-boot-starter-parent 有什么用 ?

Spring Boot如何实现打包

Spring Boot 源码分析

Spring Boot实战

Spring Cloud

什么是Spring Cloud ?

什么是 微服务

Spring Cloud有什么优势

微服务之间如何独立通讯的?

什么是服务熔断?什么是服务降级?

请说说Eureka和 zookeeper 的区别?

Spring Boot和Spring Cloud的区别?

负载平衡的意义什么?

什么是Hystrix?它如何实现容错?

什么是Hystrix断路器?我们需要它吗?

说说 RPC 的实现原理

Eureka自我保护机制是什么?

什么是Ribbon?

什么是 Netflix Feign?它的优点是什么?

Ribbon和Feign的区别?

Spring Cloud 的核心组件有哪些?

说说Spring Boot和Spring Cloud的关系

说说微服务之间是如何独立通讯的?

Spring Cloud如何实现服务的注册?

什么是服务熔断?

了解Eureka自我保护机制吗?

熟悉 Spring Cloud Bus 吗?

Spring Cloud 断路器有什么作用?

了解Spring Cloud Config 吗?

说说你对Spring Cloud Gateway的理解

为什么会出现Nacos?

Nacos服务是如何判定服务实例的状态?

Nacos中的负载均衡底层是如何实现的?

为什么 Nacos 需要一致性协议

为什么 Nacos 选择了 Raft 以及 Distro

MyBatis

JDBC 有几个步骤?

什么是MyBatis?

什么是ORM?

说说ORM的优缺点

说说MyBatis的优缺点

MyBatis是如何进行分页的?

分页插件的基本原理是什么?

简述Mybatis的插件运行原理?

说说Mybatis的缓存机制

MyBatis动态sql有什么用?

Xml映射文件中有哪些标签?

MyBatis是否支持延迟加载?

延迟加载的基本原理是什么?

mapper.xml文件对应的Dao接口原理是?

MyBatis中见过什么设计模式?

Dao接口里的方法,参数不同时能重载吗?

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

MyBatis执行批量插入,能返回数据库主键列表吗?

不同的xml映射文件,id是否可以重复?

MyBatis中Executor执行器的区别是?

为什么说MyBatis是半自动ORM映射工具?

MyBatis全局配置文件中有哪些标签?

当实体类中的属性名和表中的字段名不一样时怎么办 ?

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

MyBatis编程步骤?

简述一下MyBatis的手动编程步骤?

MyBatis工作的流程是?

如果是你来设计MyBatis,你会怎么设计?

MySQL

什么是MySQL?

简单说说MySQL的架构是怎样的

简述执行SQL语言的过程

三大范式? Innodb 与MyISAM的区别?

说说你对自增主键理解?

为什么自增主键不连续

Innodb为什么推介用自增ID?

说说My SQL 中in 和exists的区别

什么是 索引 ?有什么优缺点?

索引的类型有哪些?

索引有哪些种类?

索引底层数据结构?

索引的使用场景有哪些?

Hash索引和 B+树 的区别?

B树 与B+树区别?为何用B+树?

索引设计原则(查询快,占用空间少)

索引失效场景?

如何创建索引?

什么是聚簇索引,什么是非聚簇索引?

什么是回表?

非聚簇索引一定会回表查询吗?

联合索引的建立规则?

最左匹配原则?

什么是前缀索引?

count(1)、count(*) 与 count(列名) 的区别?

一条查询SQL执行顺序是什么?

什么是触发器?触发器的使用场景有哪些?

百万级数据如何删除

普通索引和唯一索引怎样选

一条SQL查询语句是怎么执行的?

使用 Innodb 的情况下,一条更新语句是怎么执行的?

说说MySQL使用explain的关键字段

两阶段提交(一条更新语句怎么执行?)

MySQL 的事务原理

什么是幻读,脏读,不可重复读呢?

事务的隔离级别有哪些?MySQL的默认隔离级别是什么?

为什么不要使用长事务?

MySQL的主从延迟,你怎么解决?

说说 ACID 实现原理

说说MySQL中几种日志log

那你说说redo log与bin log的区别?

说说幻读的问题

MySQL是如何解决幻读?

MySQL中有哪些锁?

熟悉MVVC吗

你对MVCC原理理解?

Read View里面包含些什么?

数据可见性规则是怎样实现的?

数据库表创建需要注意什么?

说说InnoDB引擎的行锁模式及其是如何实现的?

说说MySQL主从复制

一条SQL语句查询一直慢会是什么原因?

说说你的 SQL调优思路

MySQL优化手段有哪些

limit 1000000加载很慢的话,你是怎么解决的呢?

如何选择合适的分布式主键方案呢?

SQL优化的一般步骤是什么

如果某个表有近千万数据,CRUD比较慢,如何优化?

如何写sql能够有效的使用到复合索引?

说一下大表查询的优化方案

什么是数据库连接池?为什么需要数据库连接池呢?

一条sql执行过长的时间,你如何优化,从哪些方面入手?

有关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?

MySQL数据库CPU飙升的话,要怎么处理呢?

Redis

你觉得 Redis是什么?

Redis有哪些特点?

分布式缓存常见的技术选型方案有哪些?

说一下Memcache 与 Redis 的区别都有哪些?

现在让你实现本地缓存,你有哪些方式

为什么要用Redis?

Redis的应用场景有哪些?

说一下Redis 通讯协议是什么?有什么特点?

请说一下Redis 支持的哪些数据类型

一个字符串类型的值能存储最大容量是多少?

Redis 各个数据类型最大存储量分别是多少?

请介绍一下 Redis 的数据类型 SortedSet(zset)以及底层实现机制?

有了解过Redis 事务吗?原理是什么?

Redis 事务有相关命令有哪些?

Redis 事务的注意点有哪些?

Redis 支持回滚回滚吗?支与不支持的理由什么什么

请介绍一下 Redis 的 Pipeline(管道),以及使用场景

请说明一下 Redis 的批量命令与 Pipeline 有什么不同?

设置键的生存时间和过期时间有哪些命令?

请介绍一下 Redis 的发布订阅功能

Redis 的链表数据结构的特征有哪些?

请介绍一下 Redis 的 String 类型底层实现?

Redis 的 String 类型使用 SSD 方式实现的好处?

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

Redis 是多线程还是单线程?

Redis6.0 之后为何引入了多线程?

Redis 为什么设计成单线程的?

简单说说Redis单线程原理

Redis是单线程还是多线程?Redis为什么这么快?

什么是缓存穿透?怎么解决?

什么是缓存雪崩? 怎么解决?

缓存的更新策略有几种?分别有什么注意事项?

请介绍几个可能导致 Redis 阻塞的原因

怎么去发现 Redis 阻塞异常情况?

Redis 集群架构模式有哪几种?

哨兵选举过程是怎么样的?

Redis 集群最大节点个数是多少?

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

你知道的Redis 集群实现方案有哪些?

Redis 集群会有写操作丢失吗?为什么?

Redis 慢查询是什么?通过什么配置?

Redis 的慢查询修复经验有哪些?怎么修复的?

有做过Redis 服务的性能优化过吗?

说一下Redis 的主从复制模式的优缺点?

说一下Redis sentinel(哨兵)模式的优缺点?

熟悉Redis的连接数的操作吗?

介绍一些 Redis 常用的安全设置?

说一下 Redis 持久化机制有哪些?

说一下Redis持久化机制 AOF 和 RDB 什么不同?

说一下两种持久化的优缺点优缺点

你们用的是哪一种持久化?为什么这么用?

如果 AOF 文件的数据出现异常, Redis 服务怎么处理?

常见的淘汰算法有哪些?

Redis 淘汰策略有哪些?

Redis 缓存失效策略有哪些?

Redis 如何做内存优化?

什么是 bigkey? 有什么影响?

怎么发现 bigkey?

Redis 的内存消耗分类有哪些?内存统计使用什么命令?

简单介绍一下 Redis 的内存管理方式有哪些?

如何设置 Redis 的内存上限?有什么作用?

Redis 报内存不足怎么处理?

Redis 适用场景有哪些?

Redis有哪些常见应用场景 ?

Redis 支持的 Java 客户端有哪些?

请简单描述一下 Jedis 的基本使用方法?

Jedis 连接池链接方法有什么优点?

什么是分布式锁?有什么作用?

分布式锁可以通过什么来实现?

介绍一下分布式锁实现需要注意的事项?

Redis 怎么实现分布式锁?

缓存命中率表示什么?

怎么提高缓存命中率?

请介绍一下 Spring 注解缓存

商品售卖排名怎么做?

Redis是单线程还是多线程?

Redis单线程为什么还这么快?

Redis中的I/O多路复用模型

Redis中的跳表原理

Redis 中 key已经过期了,但为什么内存并没有释放?

删除key的命令会阻塞Redis吗?

主从复制、哨兵、 Cluster 三种集群模式优缺点

Redis集群数据hash分片算法原理

Redis线上问题,导致缓存雪崩

Redis缓存雪崩、缓存击穿、缓存穿透

Redis是如何实现分布式锁的

如何保证缓存和数据库的一致性?

Redis集群为什么推荐奇数个节点?

Dubbo

Dubbo是什么?

什么是 RPC?

能说说RPC原理吗?

说说Dubbo的分层?

能说下Dubbo的工作原理吗?

在 provider 上可以配置的 consumer 端的属性有哪些?

Dubbo内置了哪几种服务容器?

Dubbo需要 Web 容器吗?

为什么要通过代理对象通信?

说说服务暴露的流程?

说说服务引用的流程?

有哪些负载均衡策略?

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

说几个Dubbo 核心的配置

集群容错方式有哪些?

服务读写推荐的容错策略是怎样的?

如何禁用某个服务的启动检查?

说说你对Dubbo序列化的了解

知道Dubbo SPI机制吗?

Dubbo服务之间的调用是阻塞的吗?

注册中心宕机了,有什么影响?

说说Dubbo的优先级配置

Dubbo如何优雅停机?

怎么实现动态感知服务下线的呢?

Dubbo的管理控制台能做什么?

dubbo 协议为什么要消费者比提供者个数多?

dubbo 协议为什么不能传大包?

说说dubbo 协议

Dubbo 用到哪些设计模式?

如果让你实现一个RPC框架,你会怎么设计?

Dubbo 和 Spring Cloud 的区别?

如何设计一个注册中心

Zookeeper

ZooKeeper 是什么?

ZooKeeper 能做什么?

Zookeeper 的系统架构又是怎么样的?

Zookeeper 怎么保证主从节点的状态同步?

说说zookeeper有哪些数据节点

Znode里面都存储了什么?

Zookeeper初始化是如何进行Leader选举的?

如果Leader挂了,进入崩溃恢复,怎么选举Leader?

选举 leader 后是怎么进行数据同步的

说说Zookeeper Watcher 机制

客户端是如何注册 Watcher 实现

服务端是如何处理 Watcher 实现

客户端是如何回调 Watcher

熟悉ACL 权限控制机制吗?

了解Chroot 特性吗

熟悉会话管理吗

服务器有哪些角色

Zookeeper 下 Server 工作状态

能说说数据是如何同步的吗?

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

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

zk 节点宕机如何处理?

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

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

集群最少要几台机器,集群规则是怎样的?集群中有 3 台服务器,其中一个节点宕机,这个时候 Zookeeper 还可以使用吗?

集群支持动态添加机器吗?

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

Zookeeper 的 java 客户端都有哪些?

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

说几个 zookeeper 常用的命令

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

那你详细给我讲讲 ZAB 协议吧

Zookeeper 的典型应用场景

Zookeeper 都有哪些功能?

说一下 Zookeeper 的通知机制?

Zookeeper 和 Dubbo 的关系?

Zookeeper的作用

zookeeper和dubbo的关系

Zookeeper 和Eureka、Consul、Nacos有什么区别?

RabbitMQ

说说你对MQ的理解

说说MQ的优缺点

常用的消息队列性能对比

如何避免消息堆积?

如何避免重复消费?

如何保证消息不丢失?

如何保证消息顺序一致性?

推与拉取的架构模型是怎么样的?

有哪些消费模式?

RabbitMQ是什么?

RabbitMQ特点?

AMQP是什么?

熟悉AMQP协议吗?

说说AMQP模型的三大组件

说说你对Broker服务节点、Queue队列、Exchange交换器的理解

说说生产者Producer和消费者Consumer?

说说RabbitMQ的作用

为什么选择RabbitMQ

RabbitMQ的特点是什么

生产者producer和消费者consumer有哪些知识点?

RabbitMQ消息持久化中的坑

RbbitMQ持久化的工作原理

持久化的优缺点

说说Rabbitmq的ack应答机制

简单说说RabbitMQ 的组成

简单说说RabbitMQ 的六种模式

说说存储机制

RabbitMQ中消息可能有的几种状态

熟悉RabbitMQ 的队列结构吗?

交换器无法根据自身类型和路由键找到符合条件队列时,会如何处理?

如何保证消息的可靠性?

集群中的节点类型有哪些?

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

说说你对交换器的理解

说说生产者消息运转多次

说说消费者接收消息过程

导致的死信的几种原因?

说说RabbitMQ 优先级队列

说说RabbitMQ 事务机制

生产者如何将消息可靠投递到MQ?

MQ如何将消息可靠投递到消费者?

RabbitMQ高级问题

RocketMQ

为什么要使用消息队列呢?

为什么要选择RocketMQ?

RocketMQ有什么优缺点?

消息队列有哪些消息模型?

那RocketMQ的消息模型呢?

消息的消费模式了解吗?

RoctetMQ基本架构了解吗?

那能介绍一下这四部分吗?

如何保证消息的可用性/可靠性/不丢失呢?

如何处理消息重复的问题呢?

怎么处理消息积压?

顺序消息如何实现?

如何实现消息过滤?

延时消息了解吗?

RocketMQ怎么实现延时消息的?

怎么实现分布式消息事务的?半消息?

死信队列知道吗?

如何保证RocketMQ的高可用?

说一下RocketMQ的整体工作流程?

为什么RocketMQ不使用Zookeeper作为注册中心呢?

Broker是怎么保存数据的呢?

说说RocketMQ怎么对文件进行读写的?

说说什么是零拷贝?

消息刷盘怎么实现的呢?

能说下 RocketMQ 的负载均衡是如何实现的?

RocketMQ消息长轮询了解吗?

Kafka

什么是消息中间件?

kafka 是什么?有什么作用?

kafka 的架构是怎么样的?

Kafka Replicas是怎么管理的?

如何确定当前能读到哪一条消息?

生产者发送消息有哪些模式?

发送消息的分区策略有哪些?

Kafka 支持读写分离吗?为什么?

那 Kafka 是怎么去实现负载均衡的?

Kafka 的负责均衡会有什么问题呢?

Kafka 的可靠性是怎么保证的?

Kafka 的消息消费方式有哪些?

分区再分配是做什么的?解决了什么问题?

副本 leader 是怎么选举的?

失效副本是指什么?有那些应对措施?

分区数越多越好吗?吞吐量就会越高吗?

如何增强消费者的消费能力?

消费者与 topic 的分区分配策略有哪些?

kafka 控制器是什么?有什么作用

kafka 控制器是怎么进行选举的?

kafka 为什么这么快?

什么情况下 kafka 会丢失消息?

Kafka中的事务是怎么实现的?

Kafka消息是采用Pull模式,还是Push模式?

数据传输的事务有几种?

Kafka 高效文件存储设计特点

Kafka 是如何实现高吞吐率的?

Netty

Netty 是什么?

Netty 的特点是什么?

Netty 的优势有哪些?

Netty 的应用场景有哪些?

Netty 高性能表现在哪些方面?

BIO、NIO和AIO的区别?

NIO的组成?

Netty的线程模型?

TCP 粘包/拆包的原因及解决方法?

什么是 Netty 的零拷贝?

Netty 中有哪种重要组件?

Netty 发送消息有几种方式?

默认情况 Netty 起多少线程?何时启动?

什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作熟悉哪几种序列化协议?

如何选择序列化协议?

Netty 支持哪些心跳类型设置?

Netty 和 Tomcat 的区别?

什么是内核空间

MySQL优化

优化可能带来的问题?

优化的需求?

优化由谁参与?

优化什么?

优化的范围有哪些?

优化维度?

数据库问题排查常用工具有哪些

数据库层面问题解决思路?

系统层面优化有哪些?

系统层面问题解决办法?

优化思路?

硬件如何优化?

服务器硬件优化?

系统如何优化?

系统优化参数有哪些?

系统应用优化?

数据库优化

数据库优化参数有哪些?

存储引擎层(innodb基础优化参数)?

熟悉哪些SQL优化?

分布式

单表数据达到多少的时候会影响数据库的查询性能?为什么?

主从复制的原理是什么?常见的形式有哪些?

分库分表,解释一下垂直和水平 2 种不同的拆分?

垂直拆分会带来哪些问题?

分布式数据存储中间件 MyCat 的核心流程是什么?

概述一下 MyCat?

解释一下全局表、ER 表、分片 表?

MyCat 在分库分表之后,是怎么支持连表查询的?

库表拆分时,拆分规则怎么取舍?

全局 ID 方案有哪些?程序自定义全局 ID 方案有哪些?

说说一致性 hash 的原理?

一致性Hash算法的容错性和可扩展性是怎么做的

Hash环的数据倾斜问题是如何解决的?

四层负载和七层负载谁性能更高,为什么?

讲一讲MySQL 的高可用方案?

分布式幂等性如何设计?

简单一次完整的 HTTP 请求所经历的步骤?

说说你对分布式事务的了解

你知道哪些分布式事务解决方案?

什么是二阶段提交?

什么是三阶段提交?

什么是补偿事务?

消息队列是怎么实现的?

那你说说Sagas事务模型

分布式ID生成有几种方案?

幂等解决方法有哪些?

常见负载均衡算法有哪些?

你知道哪些限流算法?

说说什么是计数器(固定窗口)算法

说说什么是滑动窗口算法

说说什么是漏桶算法

说说什么是令牌桶算法

数据库如何处理海量数据?

如何将长链接转换成短链接,并发送短信?

长链接和短链接如何互相转换?

长链接和短链接的对应关系如何存储?

如何提高系统的并发能力?

ElasticSearch

谈谈分词与倒排索引的原理

说说分段存储的思想

谈谈你对段合并的策略思想的认识

了解文本相似度 TF-IDF吗

能说说ElasticSearch 写索引的逻辑吗?

熟悉ElasticSearch 集群中搜索数据的过程吗?

了解ElasticSearch 深翻页的问题及解决吗?

熟悉ElasticSearch 性能优化

ElasticSearch 查询优化手段有哪些?

elasticsearch 是如何实现 master 选举的?

elasticsearch 索引数据多了怎么办,如何调优,部署?

说说你们公司 es 的集群架构,索引数据大小,分片有多少?

什么是ElasticSearch?

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

ElasticSearch中的分片是什么?

ElasticSearch中的副本是什么?

ElasticSearch中的分析器是什么?

什么是ElasticSearch中的编译器?

什么是ElasticSearch中的过滤器?

启用属性,索引和存储的用途是什么?

tomcat

tomcat的缺省端口是多少,怎么修改?

tomcat 有哪几种Connector 运行模式(优化)?

Tomcat有几种部署方式?

tomcat容器是如何创建servlet类实例?用到了什么原理?

tomcat 如何优化?

熟悉tomcat的哪些配置?

Tomcat是什么?

什么是Servlet呢?

什么是Servlet规范?

为什么我们将tomcat称为Web容器或者Servlet容器 ?

tomcat是如何处理Http请求流程的?

tomcat结构目录有哪些?

操作系统

进程和线程的区别?

协程与线程的区别?

并发和并行有什么区别?

进程与线程的切换流程?

为什么虚拟地址空间切换会比较耗时?

进程间通信方式有哪些?

进程间同步的方式有哪些?

线程同步的方式有哪些?

线程的分类?

什么是临界区,如何解决冲突?

什么是死锁?死锁产生的条件?

如何处理死锁问题

进程调度策略有哪几种?

进程有哪些状态?

什么是分页?

什么是分段?

分页和分段有什区别?

什么是交换空间?

物理地址、逻辑地址、有效地址、线性地址、虚拟地址的区别?

页面替换算法有哪些?

什么是缓冲区溢出?有什么危害?

什么是虚拟内存?

虚拟内存的实现方式有哪些?

讲一讲IO多路复用?

硬链接和软链接有什么区别?

中断的处理过程?

中断和轮询有什么区别?

什么是用户态和内核态?

用户态和内核态是如何切换的?

说说Unix 常见的IO模型

说说select、poll 和 epoll 之间的区别?

计算机网络

什么是网络编程

说一下 OSI 的七层体系结构

说说TCP/IP 四层体系结构

说一下OSI模型(七层)和TCP/IP模型(四层)有什么关系

知道各个层使用的是哪个数据交换设备?

网络编程中两个主要的问题

网络协议是什么

为什么要对网络协议分层

什么是TCP/IP和UDP

TCP与UDP区别

说说TCP和UDP的应用场景

说说你对TCP和UDP的理解

说说运行在TCP 或UDP的应用层协议

什么是ARP协议?

什么是NAT (Network Address Translation, 网络地址转换)?

从输入址到获得页面的过程?

什么是TCP的三次握手

建立连接可以两次握手吗?为什么?

可以采用四次握手吗?为什么?

第三次握手中,如果客户端的ACK未送达服务器,会怎样?

如果已经建立了连接,但客户端出现了故障怎么办?

初始序列号是什么?

什么是TCP的四次挥手

为什么不能把服务器发送的ACK和FIN合并起来,变成三次挥手(CLOSE_WAIT状态意义是什么)?

如果第二次挥手时服务器的ACK没有送达客户端,会怎样?

客户端TIME_WAIT状态的意义是什么?

什么是Socket?

说说Socket通讯的过程

能用Java Socket写一个TCP协议?

说说 Socket的常用类

什么是Http协议?

说说Socket和http的区别和应用场景

说说http的请求体有哪些内容?

http的响应报文有哪些?

简单说说HTTP和HTTPS的区别?

说说HTTPS工作原理

一次完整的HTTP请求所经历几个步骤?

常用HTTP状态码是怎么分类的,有哪些常见的状态码?

Http协议中有哪些请求方式?

GET方法与POST方法的区别

知道http有哪些版本?

什么是对称加密与非对称加密

cookie和session对于HTTP有什么用?

什么是cookie?

什么是session?

说说cookie与session的区别

cookie和session对于HTTP有什么用?

HR常见问题

你觉得自己有什么缺点

你对加班怎么看?

入职后你怎么开展自己的工作?

请做一个自我介绍

你有什么问题要问我吗?

您在选择工作中更看重的是什么?

上一家公司为什么选择离职呢?

Git

Git和SVN有什么区别?

什么是Git?

在 Git 中提交的命令是什么?

什么是 Git 中的“裸存储库”?

Git 是用什么语言编写的?

在Git中,你如何还原已经 push 并公开的提交?

git pull 和 git fetch 有什么区别?

git中的“staging area”或“index”是什么?

什么是 git stash?

什么是git stash drop?

如何找到特定提交中已更改的文件列表?

git config 的功能是什么?

提交对象包含什么?

如何在Git中创建存储库?

怎样将 N 次提交压缩成一次提交?

什么是 Git bisect?如何使用它来确定(回归)错误的来源?

如果想要在提交之前运行代码性检查工具,并在测试失败时阻止提交,该怎样配置 Git 存储库?

描述一下你所使用的分支策略?

如果分支是否已合并为master,你可以通过什么手段知道?

什么是SubGit?

列举工作中常用的几个git命令?

如果本次提交误操作,如何撤销?

你使用过git stash命令吗?你一般什么情况下会使用它?

如何查看分支提交的历史记录?查看某个文件的历史记录呢?

使用过git merge和git rebase吗?它们之间有什么区别?

使用过git cherry-pick,有什么作用?

Maven

什么是maven?

Maven能为我们解决什么问题?

说说maven有什么优缺点?

什么是Maven的坐标?

讲一下maven的生命周期

说说你熟悉哪些maven命令?

如何解决依赖传递引起的版本冲突?

说说maven的依赖原则

说说依赖的解析机制?

说说插件的解析机制

系统设计

如何设计一个注册中心?

如何设计一个持久化框架?

秒杀系统怎么设计?

微博这类系统如何设计?

抢红包如何设计?

短网址如何设计?

点赞系统如何设计?

如何设计一个消息队列?

如何设计一个缓存框架?

如何设计一个Tomcat?

如何设计一个RPC框架?

如何设计一个百万级消息推送系统?

如何设计一个订单系统?

如何设计一个抽奖系统?

如何设计一个用户中心?

如何设计一个购物车?

如何设计一个推送系统?

如何设计一个支付系统?

项目问题

XXX是个什么样的项目?

你们这个XXX项目并发高吗?

有没有接触过高并发业务?

项目中用过多线程吗?

画一下你们整个项目架构?

项目中,有没有遇到什么难的问题,最后是怎么解决的?

你最擅长什么?

项目使用Spring了吗?用了它的哪些东西?

Spring Cloud 是怎么使用的?

接口是怎么定义的?采用什么数据格式?如何实现?

有没做过性能优化?

前后端开发时具体流程是什么?

前端采用什么技术栈?

关注我,私信回复 77 ,免费获取面试题答案!

文章来源:智云一二三科技

文章标题:月薪30k 的Java面试题,哭着也要背完!(附答案)

文章地址:https://www.zhihuclub.com/184022.shtml

关于作者: 智云科技

热门文章

网站地图