IDEA激活码|持续更新

微信扫码关注公众号,回复“999”

即可获取最新IDEA激活码

回复“永久”,获取永久激活方案










2021Java面试题库|附答案|持续更新

Java基础

  1. 说下面向对象四大特性
  2. 抽象类和接口的区别
  3. Java 8的接口新增了哪些特性?
  4. 重写和重载的区别
  5. ArrayList和LinkedList有什么区别?
  6. HashMap是怎么实现的?
  7. HashMap在Java7和Java8中的实现有什么不同?
  8. HashMap有时候会死循环,你知道是什么原因吗?
  9. ConcurrentHashMap是怎么实现的?
  10. 静态代理和动态代理的区别
  11. JDK动态代理和CGLIB动态代理的区别


微信扫码,关注公众号
回复“答案”,即可查看答案

Java多线程

  1. 说说synchronized的实现原理
  2. ReentrantLock与synchronized的区别
  3. ReentrantLock实现原理
  4. Java原子类AtomicInteger实现原理
  5. Java线程池实现原理
  6. ThreadLocal实现原理
  7. InheritableThreadLocal原理知道吗?
  8. 说一下synchronized锁升级过程
  9. 了解过什么是“伪共享”吗?
  10. “伪共享”出现的原因是什么?
  11. 如何避免“伪共享”?
  12. Java里的线程有哪些状态?
  13. 什么是悲观锁?什么是乐观锁?
  14. 怎么停止一个运行中的线程?
  15. 说一下你对volatile的理解?


微信扫码,关注公众号
回复“答案”,即可查看答案

Java虚拟机

  1. 说一下JVM的内存结构?
  2. 栈帧里面包含哪些东西?
  3. 程序计数器有什么作用?
  4. 字符串常量存放在哪个区域?
  5. 你熟悉哪些垃圾收集算法?
  6. Java里有哪些引用类型?
  7. JVM怎么判断一个对象是不是要回收?
  8. GC Roots 有哪些?
  9. 你知道哪些GC类型?
  10. 对象都是优先分配在年轻代上的吗?
  11. 你了解过哪些垃圾收集器?
  12. 说说CMS垃圾收集器的工作原理
  13. 说说G1垃圾收集器的工作原理
  14. 说说ZGC垃圾收集器的工作原理
  15. ZGC收集器中的染色指针有什么用?
  16. 说说类加载的过程
  17. 说下有哪些类加载器?
  18. 什么是双亲委派机制?
  19. 双亲委派机制可以被违背吗?请举例说明。
  20. Tomcat是怎么打破双亲委派机制的呢?
  21. Java对象的布局了解过吗?


微信扫码,关注公众号
回复“答案”,即可查看答案

MySQL

  1. 了解过哪些存储引擎?各有什么优缺点?
  2. 说一下什么是事务的ACID属性吧
  3. 事务的隔离级别了解过吗?
  4. 说说InnoDB的索引原理
  5. 说说InnoDB的MVCC机制
  6. 有了解过“回表”的概念吗?什么情况下会出现“回表”?
  7. MySQL索引的类型
  8. 有做过MySQL的索引优化吗?
  9. 什么是聚簇索引?
  10. InnoDB有聚簇索引吗?MyIsam呢?
  11. MyIsam的数据是怎么存储的?
  12. InnoDB的数据是怎么存储的?
  13. InnoDB主键索引跟非主键索引在数据存储上的差异
  14. InnoDB删除某条记录后,内部会怎么处理?
  15. InnoDB如果没有设置主键的话,它内部会怎么处理?
  16. 为什么InnoDB一定会生成主键?
  17. MySQL分库分表了解过吗?
  18. MySQL的redo日志和undo日志分别有什么用?
  19. MySQL的redo日志的刷盘时机
  20. MySQL有哪些锁?以及各种锁的作用?


微信扫码,关注公众号
回复“答案”,即可查看答案

Redis

  1. Redis有哪些数据结构?
  2. Redis为什么那么快?
  3. Redis如何实现分布式锁?
  4. Redis是单线程还是多线程?
  5. 缓存失效?缓存穿透?缓存雪崩?缓存并发?
  6. Redis中的热key怎么处理?
  7. Redis中的大key怎么处理?
  8. 使用Redis统计网站的UV,应该怎么做?
  9. Redis事务机制了解过吗?
  10. Redis key的淘汰策略有哪些?
  11. Redis在什么情况下会触发key的回收?
  12. Redis的持久化了解过吗?
  13. Redis在集群种查找key的时候,是怎么定位到具体节点的?
  14. Redis集群各个节点之间是怎么保持数据一致性的?
  15. 用Redis做延时队列,具体应该怎么实现?
  16. Redis String的内部编码有哪些?


微信扫码,关注公众号
回复“答案”,即可查看答案

Spring

  1. Spring是怎么解决循环依赖的?
  2. Spring Boot手动装配有哪几种方式?
  3. Spring Boot自动配置原理


微信扫码,关注公众号
回复“答案”,即可查看答案

Netty

  1. 你了解过哪些IO模型?
  2. 什么是Reactor模型?Reactor的3种版本都知道吗?
  3. 了解过粘包拆包吗?为什么会出现粘包拆包?怎么处理粘包拆包?
  4. UDP协议会有粘包拆包的问题吗?为什么?


微信扫码,关注公众号
回复“答案”,即可查看答案

微服务

  1. 微服务有哪些优缺点?
  2. 作为注册中心,Zookeeper和Eureka有什么区别?
  3. Service Mesh了解过吗?


微信扫码,关注公众号
回复“答案”,即可查看答案

Zookeeper

  1. Zookeeper有哪些节点类型?
  2. 了解过Zookeeper的ZAB协议吗?
  3. Zookeeper怎么实现分布式锁?
  4. Zookeeper是怎么保证数据一致性的?
  5. Zookeeper Leader选举过程是怎样的?
  6. Zookeeper怎么实现服务注册?


微信扫码,关注公众号
回复“答案”,即可查看答案

消息队列

  1. 消息队列有哪些应用场景?
  2. 消息队列的弊端有哪些?
  3. 使用消息队列,怎么确保消息不丢失?
  4. 使用消息队列,如果处理重复消息?
  5. Kafka的消息是有序的吗?如果保证Kafka消息的顺序性?


微信扫码,关注公众号
回复“答案”,即可查看答案

计算机网络

  1. 说下TCP三次握手的过程
  2. TCP为什么需要3次握手
  3. TCP为什么需要4次挥手
  4. TCP time_wait状态是主动断开方才有,还是被动断开方才有?还是两边都有?
  5. TCP的keepalive机制了解过吗?
  6. HTTP的keepalive和TCP的keepalive,有什么区别?
  7. TCP与UDP的区别?
  8. 简述 HTTP1.0/1.1/2.0 的区别
  9. HTTPS的原理了解过吗?
  10. TCP里Nagle算法了解过吗?可以禁用吗?在Java里怎么禁用?
  11. HTTP协议为什么无法实现服务端推送?
  12. websocket协议升级过程了解过吗?
  13. websocket帧结构了解过吗?


微信扫码,关注公众号
回复“答案”,即可查看答案

数据结构与算法

  1. 说下你熟悉的排序算法
  2. 布隆过滤器了解过吗?
  3. 一致性hash算法了解过吗?


微信扫码,关注公众号
回复“答案”,即可查看答案

设计模式

  1. Java怎么实现单例模式?
  2. 什么是代理模式?什么是动态代理?Java中动态代理有哪些实现方式?
  3. 什么是模板方法模式?试举例说明。


微信扫码,关注公众号
回复“答案”,即可查看答案

分布式

  1. 分布式id如何生成?
  2. 雪花算法了解过吗?
  3. 什么是CAP定理?
  4. 分布式事务了解过吗?
  5. 什么是二阶段提交(2PC)?什么是三阶段提交(3PC)?
  6. TCC了解过吗?
  7. Paxos算法了解过吗?
  8. Zookeeper的Zab协议了解过吗?
  9. 知道什么是Gossip协议吗?


微信扫码,关注公众号
回复“答案”,即可查看答案

Docker

  1. 什么Docker
  2. Docker与虚拟机有何不同
  3. 什么是Docker镜像
  4. 什么是Docker容器
  5. Docker容器有几种状态
  6. DockerFile中最常见的指定是什么?
  7. Docker的常用命令?
  8. 容器与主机之间的数据拷贝命令?
  9. 启动nginx容器(随机端口映射),并挂载本地文件目录到容器html的命令?
  10. 如何使用 Docker 技术创建与环境无关的容器系统?
  11. 有什么方法确定一个 Docker 容器运行状态
  12. Docker Image 和 Docker Layer (层) 有什么不同
  13. 如何停止所有正在运行的容器?
  14. 如何清理批量后台停止的容器?
  15. 如何临时退出一个正在交互的容器的终端,而不终止它?
  16. Docker 群(Swarm)是什么
  17. 在使用 Docker 技术的产品中如何监控其运行
  18. 什么是孤儿卷及如何删除它?
  19. 在 Windows 系统上可以运行原生的 Docker 容器吗?
  20. 在 非 Linux 操作系统平台上如何运行 Docker ?


微信扫码,关注公众号
回复“答案”,即可查看答案

Dubbo

  1. Dubbo是什么?
  2. 为什么要用Dubbo?
  3. Dubbo 和 Dubbox 有什么区别?
  4. dubbo都支持什么协议,推荐用哪种?
  5. Dubbo需要 Web 容器吗?
  6. Dubbo内置了哪几种服务容器?
  7. Dubbo默认使用什么注册中心,还有别的选择吗?
  8. Dubbo有哪几种配置方式?
  9. 在 Provider 上可以配置的 Consumer 端的属性有哪些?
  10. Dubbo启动时如果依赖的服务不可用会怎样?
  11. Dubbo推荐使用什么序列化框架,你知道的还有哪些?
  12. Dubbo默认使用的是什么通信框架,还有别的选择吗?
  13. 注册了多个同一样的服务,如果测试指定的某一个服务呢?
  14. Dubbo支持服务多协议吗?
  15. 当一个服务接口有多种实现时怎么做?
  16. 服务上线怎么兼容旧版本?
  17. Dubbo可以对结果进行缓存吗?
  18. Dubbo服务之间的调用是阻塞的吗?
  19. Dubbo支持分布式事务吗?
  20. Dubbo支持服务降级吗?
  21. Dubbo如何优雅停机?
  22. 服务提供者能实现失效踢出是什么原理?
  23. 如何解决服务调用链过长的问题?
  24. 服务读写推荐的容错策略是怎样的?
  25. Dubbo必须依赖的包有哪些?
  26. Dubbo的管理控制台能做什么?
  27. 说说 Dubbo 服务暴露的过程。


微信扫码,关注公众号
回复“答案”,即可查看答案

Elasticsearch

  1. 为什么要使用Elasticsearch?
  2. Elasticsearch是如何实现Master选举的?
  3. Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?
  4. 详细描述一下Elasticsearch索引文档的过程。
  5. 详细描述一下Elasticsearch更新和删除文档的过程
  6. 详细描述一下Elasticsearch搜索的过程
  7. Elasticsearch对于大数据量(上亿量级)的聚合如何实现?
  8. 在并发情况下,Elasticsearch如果保证读写一致?
  9. ElasticSearch中的集群、节点、索引、文档、类型是什么?
  10. ElasticSearch中的分片是什么?
  11. 什么是ElasticSearch?
  12. Elasticsearch中的倒排索引是什么?
  13. Elasticsearch中的分析器是什么?
  14. 说说Elasticsearch常用的调优手段?
  15. Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
  16. 客户端在和集群连接时,如何选择特定的节点执行请求?
  17. 在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?
  18. 对于 GC 方面,在使用 Elasticsearch 时要注意什么?
  19. 在并发情况下,Elasticsearch 如果保证读写一致?
  20. 如何监控 Elasticsearch 集群状态?


微信扫码,关注公众号
回复“答案”,即可查看答案

Java集合

  1. 常见的集合有哪些?
  2. 常见的集合底层实现
  3. HashMap与HashTable的区别?
  4. ConcurrentHashMap和Hashtable的区别?
  5. ConcurrentHashMap实现原理
  6. ArrayList 和 Vector 的区别?
  7. ArrayList和LinkedList的区别?
  8. HashMap 默认的初始化长度是多少?
  9. 谈谈对HashMap 构造方法中初始容量、加载因子的理解
  10. Java集合框架是什么?说出一些集合框架的优点?
  11. 集合框架中的泛型有什么优点?
  12. 为何Collection不从Cloneable和Serializable接口继承?
  13. 为何Map接口不继承Collection接口?
  14. Iterator是什么?
  15. Enumeration和Iterator接口的区别?
  16. Iterater和ListIterator之间有什么区别?
  17. fail-fast与fail-safe有什么区别?
  18. hashCode()和equals()方法有何重要性?
  19. 我们能否使用任何类作为Map的key?
  20. 如何决定选用HashMap还是TreeMap?
  21. 哪些集合类提供对元素的随机访问?
  22. BlockingQueue是什么?
  23. 队列和栈是什么,列出它们的区别?
  24. Collections类是什么?
  25. Comparable和Comparator接口有何区别?


微信扫码,关注公众号
回复“答案”,即可查看答案

Java高并发

  1. 什么是进程
  2. 什么是线程
  3. 进程间如何通讯
  4. 线程间如何通讯
  5. 同步和异步有何不同,在什么情况下分别使用它们?举例说明
  6. 进程调度算法
  7. Java中Unsafe类详解
  8. 如何测试并发量?
  9. 有三个线程T1,T2,T3,怎么确保它们按顺序执行?
  10. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?
  11. 数据库死锁?
  12. 什么是锁顺序死锁?
  13. 死锁的避免与诊断?
  14. 常见的并发容器?
  15. 常见的同步工具类?
  16. Nginx多进程模型是如何实现高并发的?
  17. CopyOnWriteArrayList
  18. AQS
  19. Java里的阻塞队列
  20. Fork/Join框架


微信扫码,关注公众号
回复“答案”,即可查看答案

Kubernetes

  1. 什么是Kubernetes?
  2. Kubernetes与Docker有什么关系?
  3. 什么是Container Orchestration?
  4. Kubernetes如何简化容器化部署?
  5. 什么是Google容器引擎?
  6. 什么是Heapster?
  7. 什么是Minikube?
  8. 什么是Kubectl?
  9. 什么是Kubelet?
  10. Kubernetes Architecture的不同组件有哪些?
  11. 你对Kube-proxy有什么了解?
  12. 您能否介绍一下Kubernetes中主节点的工作情况?
  13. kube-apiserver和kube-scheduler的作用是什么?
  14. 你能简要介绍一下Kubernetes控制管理器吗?
  15. 什么是etcd?
  16. 你对Kubernetes的负载均衡器有什么了解?
  17. 什么是Ingress网络,它是如何工作的?
  18. 您对云控制器管理器有何了解?
  19. 什么是Container资源监控?
  20. Replica Set 和 Replication Controller之间有什么区别?


微信扫码,关注公众号
回复“答案”,即可查看答案

MongoDB

  1. 什么是MongoDB?
  2. MongoDB的优势有哪些
  3. 什么是集合(表)?
  4. 什么是文档(记录)
  5. 为什么用MOngoDB?
  6. 在哪些场景使用MongoDB
  7. MongoDB中的命名空间是什么意思?
  8. MongoDB中的分片什么意思
  9. 为什么要在MongoDB中使用分析器
  10. MongoDB支持主键外键关系吗
  11. MongoDB支持哪些数据类型
  12. 为什么要在MongoDB中用"Code"数据类型
  13. 为什么要在MongoDB中用"Regular Expression"数据类型
  14. 为什么在MongoDB中使用"Object ID"数据类型
  15. "ObjectID"有哪些部分组成
  16. 在MongoDb中什么是索引
  17. 在MongoDB中什么是副本集
  18. MongoDB支持存储过程吗?如果支持的话,怎么用?
  19. 如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
  20. 为什么MongoDB的数据文件很大?


微信扫码,关注公众号
回复“答案”,即可查看答案

Nginx

  1. 请解释一下什么是 Nginx ?
  2. 为什么要用Nginx?
  3. Nginx怎么处理请求的?
  4. Nginx的优缺点?
  5. Nginx应用场景?
  6. 使用“反向代理服务器”的优点是什么?
  7. 列举Nginx服务器的最佳用途。
  8. 请解释Nginx如何处理HTTP请求。
  9. 在Nginx中,如何使用未定义的服务器名称来阻止处理请求?
  10. 在Nginx中如何在URL中保留双斜线?
  11. ngx_http_upstream_module的作用是什么?
  12. fastcgi 与 cgi 的区别?
  13. Nginx 常用命令?
  14. Nginx 常用配置?
  15. 请陈述stub_status和sub_filter指令的作用是什么?


微信扫码,关注公众号
回复“答案”,即可查看答案

RocketMQ

  1. RocketMQ中的Topic和JMS的queue有什么区别?
  2. RocketMQ Broker中的消息被消费后会立即删除吗?
  3. RocketMQ消费模式有几种?
  4. 消费消息是push还是pull?
  5. broker如何处理拉取请求的?
  6. RocketMQ如何做负载均衡?
  7. 消息重复消费如何解决?
  8. 如何让RocketMQ保证消息的顺序消费?
  9. RocketMQ如何保证消息不丢失?
  10. rocketMQ的消息堆积如何处理
  11. RocketMQ在分布式事务支持这块机制的底层原理?
  12. 如果让你来动手实现一个分布式消息中间件,整体架构你会如何设计实现?
  13. 高吞吐量下如何优化生产者和消费者的性能?
  14. 再说说RocketMQ 是如何保证数据的高容错性的?
  15. 任何一台Broker突然宕机了怎么办?


微信扫码,关注公众号
回复“答案”,即可查看答案

shiro

  1. 什么是shiro
  2. 解释下Shiro的核心概念:Subject、SecurityManager、Realm
  3. Shiro的优点
  4. Shiro有哪些组件?
  5. 说下Authentication 身份验证的流程
  6. Authorization 授权的方式和流程是怎样的?
  7. Cryptography 加密的过程是这样的?
  8. Realm 域如何使用?
  9. shiro拦截器的执行流程
  10. Session Manager 会话管理介绍一下


微信扫码,关注公众号
回复“答案”,即可查看答案

Servlet

  1. Servlet的生命周期?
  2. Servlet和JSP的区别?
  3. Servlet的基本架构
  4. 什么情况下调用doGet()和doPost()?
  5. 页面间对象传递的方法
  6. 四种会话跟踪技术
  7. Request对象的主要方法
  8. 如何配置Servlet的初始化参数?
  9. 如何读取Servlet的初始化参数?
  10. init(ServletConfig)方法执行次数
  11. init(ServletConfig)方法与异常


微信扫码,关注公众号
回复“答案”,即可查看答案

Tomcat

  1. Tomcat的缺省端口是多少,怎么修改?
  2. tomcat 有哪几种Connector 运行模式(优化)?
  3. Tomcat有几种部署方式?
  4. tomcat容器是如何创建servlet类实例?用到了什么原理?
  5. tomcat 如何优化?
  6. tomcat内存调优了解过吗?
  7. tomcat垃圾回收策略调优了解吗?
  8. tomcat共享session如何处理?
  9. 如何添加JMS远程监控
  10. Tomcat一个请求的完整过程


微信扫码,关注公众号
回复“答案”,即可查看答案

java8

  1. Java 8 新特性简介:
  2. 抽象类 和 接口的 异同?
  3. Java8支持函数编程是什么意思?
  4. Java 8中的可选项是什么?
  5. hashMap原理,java8做的改变
  6. 解释Java 8-中间操作与终端操作?
  7. 什么是Lambda表达式?
  8. Lambda函数的优点:
  9. 什么是Java8中的MetaSpace?它与PermGen Space有何不同?
  10. 是什么使Java SE 8优于其他?
  11. Lambda表达式的参数列表与Lambda箭头运算符有何不同?


微信扫码,关注公众号
回复“答案”,即可查看答案

密码学

  1. 什么是base64
  2. MD5
  3. SHA
  4. HMAC
  5. 密码的常用术语
  6. 单向加密算法
  7. 复杂的对称加密(DES、PBE)、非对称加密算法
  8. 非对称加密
  9. DES


微信扫码,关注公众号
回复“答案”,即可查看答案

操作系统

  1. 说下进程的状态
  2. 说下进程和线程的联系与区别
  3. 为什么进程上下文切换比线程上下文切换代价高?
  4. 说下你对进程同步的理解
  5. 进程的通信方式有哪些
  6. 进程调度的种类有哪些?
  7. 非抢占式调度与抢占式调度的区别是什么?
  8. 说下你知道的调度算法
  9. 一个程序从开始运行到结束的完整过程(四个过程)
  10. 死锁出现的条件?
  11. 如何处理死锁问题
  12. 如何处理死锁问题
  13. 什么是临界资源
  14. 介绍一下内存池、进程池、线程池
  15. 动态链接库与静态链接库的区别
  16. 说下对虚拟内存的理解
  17. 页面置换算法了解多少?
  18. 中断与系统调用了解吗?
  19. 用户态切换到内核态的方式有哪些?
  20. 用户态和核心态(内核态)之间的区别是什么呢?
  21. 内部碎片与外部碎片分别是什么?
  22. 系统调用与库函数的区别
  23. 守护、僵尸、孤儿进程的概念


微信扫码,关注公众号
回复“答案”,即可查看答案

编译原理

  1. 词法分析
  2. 语法分析
  3. 语义分析
  4. 中间代码生成
  5. 目标代码生成
  6. 表格管理程序
  7. 出错处理
  8. 句型、句子、语言
  9. 有穷自动机(有限自动机)
  10. 全局优化


微信扫码,关注公众号
回复“答案”,即可查看答案

计算机组成原理

  1. 计算机系统由哪两部分组成?计算机系统性能取决于什么?
  2. 计算机系统5层层次结构从下到上由哪五层组成?哪些是物理机,哪些是虚拟机?
  3. 在计算机系统结构中,什么是翻译?什么是解释?
  4. 什么是计算机体系结构?什么是计算机组成?以乘法指令为例说明二者区别。
  5. 冯诺依曼机器的主要特点?
  6. 程序访问的局部性
  7. 字长
  8. Cache的基本工作原理
  9. Cache和主存之间的映射方式
  10. Cache中主存块的替换算法
  11. 二进制一般使用什么方法转换成十进制?
  12. 计算机直接使用原码计算有什么缺点?
  13. 请计算12、124、1023、-1、-127的二进制原码。
  14. 计算机的补码解决了什么问题?
  15. 什么是溢出?什么是上溢?什么是下溢?
  16. 浮点数之间做加减法运算需要几个步骤?每个步骤都是必须的吗?为什么?
  17. 虚拟存储器的基本概念
  18. 页式虚拟存储器
  19. 段式虚拟存储器
  20. 段页式虚拟存储器


微信扫码,关注公众号
回复“答案”,即可查看答案