Java面试知识点路线
2023-04-11 19:12:58 0 举报
AI智能生成
自我复习
作者其他创作
大纲/内容
基础
I/O
IO 密集=NCPU*2 是怎么计算出来?
I/O 模型有哪几种?
I/O 多路复用实现方式有哪些?
集合
Map
HashMap 的扩容机制是怎样的?
HashMap 的底层数据结构是怎样的 ?
ConcurrentHashMap 的存储结构是怎样的?
用过ConcurrentHashMap,讲一下他和 HASHTABLE 的不同之处?
ConcurrentHashMap 1.7 与 1.8 区别?
ConcurrentHashMap线程安全的具体实现方式是怎样的?
HashMap 的长度为什么是 2 的幂次方?
HashMap 和 ConcurrentHashMap 的区别
如果使用 OBJECT 作为 HashMap 的 KEY,应该怎么办呢?
为什么 HashMap 中 String、Integer 这样的包装类适合作为 K?
HashMap 结构,线程不安全举个例子?
SynchronizedMap 和 ConcurrentHashMap 有什么区别?
List
ArrayList和 LinkedList 的区别在哪里?
Array 和 ArrayList 有何区别?
Arrays.asList 获得的 List 应该注意什么?
CopyOnWriteArrayList 可以用于什么应用场景?
Set
HashSet 如何检查重复?
TreeMap 和 TreeSet 在排序时如何比较元素?Collections 工具类中的 SORT()方法如何比较元素?
比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
如何选用集合?
说说 LIST, SET, QUEUE, MAP 四者的区别?
Comparable 和 Comparator 的区别?
无序性和不可重复性的含义是什么
什么是哈希冲突?
你知道 FAIL-FAST 和 FAIL-SAFE 吗?
试比较 QUEUE 与 DEQUE 的区别
HashMap 和 HashTable 的区别?
COLLECTION 和 COLLECTIONS 有什么区别?
JAVA 常用集合及特点?
线程池
线程池大小如何设置?
什么是线程池? 为什么要使用它?
创建线程的三个方法是什么?
线程池有哪几种创建方式?
线程池参数有哪些?
线程池拒绝策略有哪些?
你认为对线程池的核心参数实现自定义可配置,三个核心参数是?
ThreadpoolExecutor线程池,CorepoolSize=5, MaximumPoolSize=10,Queuecapacity=10,有 20 个耗时
任务 交给这个线程池执行,线程池会如何执行这 20 个任务?
任务 交给这个线程池执行,线程池会如何执行这 20 个任务?
线程/进程
多线程
什么时候用多线程、为什么要设计多线程?
多线程越多效率越高吗?
多线程会产生哪些并发问题 ?
JAVA 怎么获取多线程的返回值?
多线程越多效率越高吗?
多线程会产生哪些并发问题 ?
什么是多线程中的上下文切换?
线程与进程的区别?
描述 ThreadLocal(线程本地变量)的底层实现原理及常用场景。
了解线程 & 进程的区别吗?
JAVA 进程间的几种通信方式?
请描述线程的生命周期,它们之间如何切换?
什么情况线程会进入 WAITING 状态?
孤儿进程和僵尸进程有什么区别?
在 JAVA 中守护线程和本地线程区别?
什么是线程组,为什么在 JAVA 中不推荐使用?
为什么我们调用 START()方法时会执行 RUN() 方法,为什么我们不能直接调用 RUN()方法?
Notify()和 Notifyall()有什么区别?
JAVA 如何实现多线程之间的通讯和协作?
一个线程运行时发生异常会怎样?
如何在两个线程间共享数据?
Lambda
Lambda 表达式是啥?优缺点?
讲一下Lambda的表达式作用域
异常
简述下 JAVA 的异常体系。
EXCEPTION 和 ERROR 有什么区别
代理
静态代理和动态代理的区别,什么场景使用?
动态代理是基于什么原理
并发
为什么使用 Executor 框架?
Executor 和 Executors 的区别?
什么是原子操作?在 JAVA CONCURRENCY API 中有哪些原子类(ATOMIC CLASSES)?
Java Concurrency API 中的 Lock 接口(Lock InterFace)是什么?对比同步它有什么优势?
什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
什么是 Callable 和 Future?
什么是并发容器的实现?
多线程同步和互斥有几种实现方法,都是什么?
什么是竞争条件?你怎样发现和解决竞争?
什么是不可变对象,它对写并发应用有什么帮助?
Volatile 有什么用?能否用一句话说明下 Volatile 的应用场景?
什么叫线程安全?Servlet 是线程安全吗?
什么是 ThreadLocal 变量?
反射
说说你对 JAVA 反射的理解。
泛型
谈谈你对泛型的理解?
JAVA 中实现多态的机制是什么?
如何将一个 JAVA 对象序列化到文件里?
说说你对 JAVA 注解的理解。
String 为什么要设计成不可变的?
数组和链表的区别?当数组内存过大时会出现什么问题?链表增删过多会出现的什么问题?
说下类加载器与类加载?加载的类信息放在哪个区域?
Final、Finally、Finallize?Finally 是在 Return 之前执行还是之后?Finally 块里的代码一定会执行吗?
哈希算法解决哈希冲突方式有哪些?
什么是双亲委派机制,它有什么作用?
锁
乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
互斥锁(MUTEX)和自旋锁(SPINLOCK)分别在什么场景使用?
什么是可重入锁( ReentrantLock)?
一个对象的两个方法加Synchronized,一个线程进去 Sleep,另一个线程可以进入到另一个方法吗?
描述 Synchronized、ReentrantLock的区别 ?
死锁与活锁的区别,死锁与饥饿的区别?
怎么检测一个线程是否拥有锁?
Jvm
请问 JDK 与 JVM 有什么区别?
OracleJDK 与 OpenJDK 有什么区别?
开发中使用哪个版本的 JDK?生产环境呢? 为什么这么选?
什么是 JAVA 字节码?
字节码文件中包含哪些内容?
什么是常量?
你怎么理解常量池?
JVM 的运行时数据区有哪些?
什么是堆内存?
堆内存包括哪些部分?
什么是非堆内存?
什么是内存溢出?
什么是内存泄露?
两者有什么关系?
常用的 JVM 启动参数有哪些?
设置堆内存 XMX 应该考虑哪些因素?
假设物理内存是 8G,设置多大堆内存比较合适?
设置的值与 JVM 进程所占用的内存有什么关系?
怎样开启 GC 日志?
使用过哪些 JVM 相关的工具?
查看 JVM 进程号的命令是什么?
怎么查看剩余内存?
查看线程栈的工具是什么?
你碰到过哪些 JVM 问题?
栈和队列,举个使用场景例子?
JVM 如何加载类的?
栈帧的大小什么时候确定?
栈会溢出吗?什么时候溢出?方法区会溢出吗?
垃圾回收
JAVA8 默认使用的垃圾收集器是什么?
JAVA11 的默认垃圾收集器是什么?
常见的垃圾收集器有哪些?
什么是串行垃圾收集?
什么是并行垃圾收集?
什么是并发垃圾收集器?
什么是增量式垃圾收集?
G1 收集器有哪些特点?
什么是年轻代?
什么是 GC 停顿(GC PAUSE)?
GC 停顿与 STW 停顿有什么区别?
你有哪些手段来排查 OOM 的问题?
哪些情况下的对象会被垃圾回收机制处理掉?
数据库
Mysql
三大范式
存储引擎
MYISAM 与 INNODB 区别
MYISAM 表类型将在哪里存储,并且还提供其存储格式?
MYSQL 为什么 INNODB 是默认引擎?
索引
MYISAM 索引与 INNODB 索引的区别?
什么是索引?
索引有哪些优缺点?
索引有哪几种类型?
创建索引时需要注意什么?
使用索引查询一定能提高查询的性能吗?为什么?
什么是最左前缀原则?什么是最左匹配原则
什么是聚簇索引?何时使用聚簇索引与非聚簇索引
MYSQL 索引底层结构为什么使用 B+树?
B+ 树的叶子节点链表是单向还是双向?
索引失效的情况有哪些?
锁
MYSQL 中有哪几种锁?
事务
MYSQL 中 INNODB 支持的四种事务隔离级别名称,以及逐级之间的区别?
MVCC 是什么?它的底层原理是什么?
UNDO LOG 具体怎么回滚事务 ?
Binlog
Mysql的 Binlog有有几种录入格式?分别有什么区别?
数据
CHAR 和 VARCHAR 的区别?
主键和候选键有什么区别?
MYSQL 里记录货币用什么字段类型好?
百万级别或以上的数据如何删除
如何查询慢 SQL 产生的原因?
什么是散列表? SELECT * 和 SELECT 1?
MYSQL 的主从复制了解吗?
幻读是什么,用什么隔离级别可以防止幻读?
介绍下 MYSQL 的主从复制原理?产生主从延迟的原因?
Oracle
MongoDB
Redis
什么是 Redis?
Redis的数据类型?
使用 REDIS 有哪些好处?
Redis 相比 MEMCACHED 有哪些优势?
Redis是单进程单线程的?
Redis的持久化机制是什么?各自的优缺点?
Redis常见性能问题和解决方案
Redis过期键的删除策略?
Redis 的回收策略(淘汰策略)?
为什么Redis需要把所有数据放到内存中?
Redis的同步机制了解么?
PIPELINE 有什么好处,为什么要用 PIPELINE?
是否使用过Redis 集群,集群的原理是什么?
Redis集群方案什么情况下会导致整个集群不可用?
Redis支持的 JAVA 客户端都有哪些?官方推荐用哪个?
JEDIS 与 REDISSON 对比有什么优缺点?
说说Redis希槽的概念?
Redis集群的主从复制模型是怎样的?
Redis集群会有写操作丢失吗?为什么?
Redis集群之间是如何复制的?
Redis集群最大节点个数是多少?
Redis集群如何选择数据库?
怎么理解Redis事务?
Redis事务相关的命令有哪几个?
Redis KEY 的过期时间和永久有效分别怎么设置?
Redis 如何做内存优化?
Redis 回收进程如何工作的?
都有哪些办法可以降低Redis的内存使用情况呢?
Redis的内存用完了会发生什么?
一个 Redis实例最多能存放多少的 KEYS? LIST、SET、SORTED SET 他们最多能存放多少元素?
MYSQL 里有 2000W 数据,Redis 中只存 20W 的数据,如何保证 Redis 中的数据都是热点数据?Redis 内存数
据集大小上升到一定大小的时候,就会施行数据淘汰策略。 相关知识:Redis 提供 6 种数据淘汰策略
据集大小上升到一定大小的时候,就会施行数据淘汰策略。 相关知识:Redis 提供 6 种数据淘汰策略
Redis 最适合的场景?
假如Redis 里面有 1 亿个 KEY,其中有 10W 个 KEY 是以某个固定的已知的前缀开头的,如果将 它们全部找
出来?
出来?
如果有大量的 KEY 需要设置同一时间过期,一般需要注意什么?
使用过 Redis 做异步队列么,你是怎么用的?
使用过 Redis分布式锁么,它是什么回事
谈一谈缓存穿透、缓存击穿和缓存雪崩,以及解决办法?
LRU 是什么?如何实现?
memcache
MEMCACHE 与Redis的区别都有哪些?
其他问题
谈谈你对 SQL 注入式攻击的理解?
大数据
HBase
消息队列
RabbitMQ
RabbitMQ 如何保证消息不丢失 ?
RocketMQ
Kafka
Kafka的架构说一下?
怎么保证消息是有序的?
怎么保证消息不丢失?
怎么解决重复消费?
为什么有 TOPIC 还要用 Patition?
为什么使用消息队列?
消息队列有什么优点和缺点?
Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?
如何保证消息不被重复消费?
如何保证消息消费的幂等性?
如何保证消息的可靠性传输?(如何处理消息丢失的问题)
如何解决消息队列的延时以及过期失效问题?
消息队列满了以后该怎么处理?
如何保证高可用的?
如何保证顺序消费?
网络
七层网络协议
描述下 TCP 连接 4 次挥手的过程?为什么要 4 次挥手?
TCP 和 UDP 区别?
TCP/IP 协议涉及哪几层架构?
客户端和服务器之间最多能建立多少个连接 ?
框架
Springcloud
Springboot
什么是Springboot?
Springboot有哪些优点?
使用Springboot 开发分布式微服务时,我们需要关注哪些问题?
Mybatis
Mybatis 如何将对象转换成 SQL?
Spring
什么是 SPRING?
AOP 底层原理
什么是 IOC 容器?
Spring 中有多少种 IOC 容器?
列举 IOC 的一些好处
什么是依赖注入?
可以通过多少种方式完成依赖注入?
区分构造函数注入和 SETTER 注入
什么是 Aspect?
什么是切点
什么是通知
BEAN 容器的生命周期是什么样的?
Spring框架事务注解用什么注解?使用该注解的失效场景?
区分 BeanFactory 和 ApplicationContext
Spring 提供了哪些配置方式?
Netty
为什么要用 Netty 呢?
Netty有哪些应用场景?
Netty的优势有哪些?
Netty核心组件有哪些?分别有什么作用?
EventLoopGroup了解么?和 Eventloop啥关系?
请说下对 bootstrap和 severbootstrop的了解?
请说下 Netty线程模型?
什么是 TCP 粘包/拆包? .
如何在 Netty 中解决 TCP 粘包问题?
TCP 长连接和短连接了解么?
为什么需要心跳机制?Netty 中心跳机制了解么?
讲讲 Netty的零拷贝
Netty和 Tomcat的区别?
Netty发送消息有几种方式?
微服务
你对微服务是怎么理解的?
说说微服务架构的优势。
微服务有哪些特点?
单体应用、SOA 和微服务架构有什么区别?
在使用微服务架构时,你面临的挑战是什么?
服务注册和发现是什么意思?
负载平衡的意义什么?
什么是Hystrix?
什么是Netflix feign?它的优点是什么?
Springcloud断路器的作用
场景
如果 CPU 使用率突然飙升,你会怎么排查?
在生产环境 LINUX 服务器上,发现某台运行 JAVA 服务的服务器的 CPU100%,不借助任何可视化工具,怎么
进行问题的定位?
进行问题的定位?
如果系统响应变慢,你会怎么排查?
系统性能一般怎么衡量?
1 亿个数据取出最大前 100 个有什么方法?
LIMIT 1000000 加载很慢的话,你是怎么解决的呢?
分布式
分布式锁
常见分布式锁的几种实现方式?
分布式服务接口的幂等性如何设计?
分布式系统中的接口调用如何保证顺序性?
说说 ZOOKEEPER 一般都有哪些使用场景?
说说你们的分布式 SESSION 方案是啥?怎么做的?
分布式事务了解吗?
请讲一下你对 CAP 理论的理解
请讲一下你对 BASE 理论的理解
请讲一下 BASE 理论的三要素
请说一下对两阶段提交协议的理解
分布式与集群的区别是什么?
设计模式
算法
常见排序算法和分别的复杂度?
项目管理
代码管理
Git
Svn
项目管理
maven
Gradle
Bug管理
禅道
Jira
领歌
收藏
0 条评论
下一页