5 min read
1-17 福利:Java基础面试考点清单
带着问题与技术关键词,有目标的开启体系化学习之旅~
-
基础:
-
- 强引用、弱引用、虚引用、软引用
- final关键字的作用 (方法、变量、类)
- 泛型、泛型继承、泛型擦除
- jdk ServiceLoader
- LinkedList、LinkedHashMap、LRU
- 装饰者模式、代理模式、责任链模式、工厂模式、适配器模式、建造者模式、单例模式、模板模式、观察者模式…
- 关于精度损失问题:int、long 超过最大值
- 关于注解:元注解的种类、继承java.lang.Annotation、注解的基础类型、注解的常用方法
- 关于ClassLoader,类加载器,双亲委派模型
-
J.U.C
-
- 线程池参数说明,线程池的线程回收、shutdown
- 线程池的生命周期?
- 线程池的核心模型Worker对象的运作流程是怎样的?
- 线程池的拒绝策略有哪4种?
- 线程池的提交,execute与submit有什么区别?在实际开发中需要注意哪些问题?
- threadlocal原理,数据结构
- 并发集合类了解哪些?
-
-
- ConcurrentHashMap
- CopyOnWrite集合、原理、锁机制
- ConcurrentLinkedQueue、LinkedTransferQueue、ArrayBlockingQueue、PriorityBlockingQueue、SynchronousQueue、DelayQueue
-
-
- AQS 原理:
-
-
- 独占 & 共享
- state & CHL队列
-
-
- 锁:
-
-
- Synchronized、ReentrantLock、RWLock、Condition、LockSupport、StampedLock、
- 概念:CAS 自旋、重入、偏向
-
-
- volatile:
-
-
- 多线程共享 & 阻止指令重排序
- jvm的逃逸分析 & Tlab & 消除伪共享 & UNsafe &
-
-
- atomic:
-
-
- CAS的缺点,自旋、ABA问题
- atomic 原子性、Reference、referenceArray、longadder
-
-
- 并发控制:
- barrier、countdownlatch、exchanger、future、semaphore
-
jvm虚拟机:
-
- 虚拟机内存模型
- 新生代(Eden S0 S1)、老年代 、MetaSpace (比例)
- 垃圾回收算法(引用计数、标记压缩、清除、复制算法、分区)、垃圾收集器
- GC停顿、吞吐量,进入老年代阈值、大对象回收问题等
- jvm性能调优、参数配置
- 常用命令:jstat、jmap、jstack等
- 内存溢出分析:堆内、堆外 (含义、如何设置)
- CPU飙升:死锁、线程阻塞
- 关于GC: minor major full
-
-
- stw,安全点等
-
-
数据结构&算法
-
- 数组、链表、树、队列…
- 关于时间复杂度,时间换空间转换案例
- 关于排序、冒泡、快排、递归、二分搜索、位运算
-
Spring
-
- Spring生命周期,流程梳理
- Spring扩展点作用
- Spring IOC AOP 基本原理
- 动态代理
- BeanPostProcessor 作用?
- ApplicationContextAware 的作用和使用?
- BeanNameAware与BeanFactoryAware的先后顺序?
- InitializingBean 和 BeanPostProcessor 的after方法先后顺序?
- ApplicationListener监控的Application事件有哪些?
- Spring模块装配的概念,比如@EnableScheduling @EnableRetry @EnableAsync,@Import注解的作用?
- ImportBeanDefinitionRegistrar 扩展点用于做什么事情?
- ClassPathBeanDefinitionScanner 的作用?
- NamespaceHandlerSupport 命名空间扩展点的作用?
- 如何实现动态注入一个Bean?
- 如何把自定义注解所在的Class 初始化注入到Spring容器?
- BeanDefinition指的是什么,与BeanDefinitionHolder的区别,Spring如何存储BeanDefinition实例?
- ASM 与 CGlib
- Spring的条件装配,自动装配
-
RPC通信框架
-
- Dubbo
-
-
- Dubbo的Spi机制?
- Dubbo的核心模型 invoker、invocation、filter
- Dubbo的隐式传递?
- Dubbo的泛化调用?
- Dubbo的export与importer时机?
- Dubbo的服务调用过程?
- Dubbo的负载均衡策略?
- Dubbo的集群容错?
-
-
网络通信
-
- IO / NIO
-
-
- IO NIO区别?
- 多路复用的概念,Selector
- Channel的概念、Bytebuf的概念,flip、position…
- FileChannel 如何使用?
- RAF使用,seek、skip方法
-
-
- Netty
-
-
- 关于Netty的Reactor实现?
- Netty的ByteBuf有哪些?
- 内存与非内存Bytebuffer的区别与使用场景?
- 池化与非池化buffer的区别与使用场景?
- 关于Netty的请求Buffer和响应Buffer?
- Netty的ChannelPipeline设计模式?
- Netty的核心option参数配置?
- Netty的ChannelInboundHandlerAdapter和SimpleChannelInboundHandler关系?
- Netty的EventLoop核心实现?
- Netty的连接管理事件接口有哪些常用方法(ChannelDuplexHandler)?
- Netty的编解码与序列化手段
- Netty的FastThreadLocal实现?
- Netty中应用的装饰者 和 观察者模式在哪里体现?
-
-
MQ
-
- API使用,常用生产消费模型,集群架构搭建
- 常见问题,消息可靠性投递、幂等性保障
- 概念、原理、存储、消息投递、通信机制、性能相关优化
- MQ常见的作用于目的、服务解耦、削峰填谷等
-
-
- RocketMQ
- Kafka
- RabbitMQ
- ActiveMQ
-
-
缓存
-
- 内存缓存
-
-
- 堆外内存缓存 回收释放
-
-
- Redis
-
-
- 缓存穿透、雪崩、热点Key、大Key、无底洞问题,缓存更新与淘汰、缓存与数据库的一致性
- Redis的幂等性
- Redis的分布式锁实现
- Redis的原子性,Redis的特点
- Redis集群相关问题、一致性hash、slot概念等
-
-
流控组件
-
- Hystrix
- Sentinel
-
高可用服务中间件
-
- Zookeeper / Curator
- Nginx
- Haproxy
- LVS
- Haproxy
-
数据库存储&调度
-
- Sharding-JDBC
- ElasticJob
- 调度平台相关:DAG、airflow等
-
搜索相关度
-
- ELK ,数据库加速、主搜(算法)
-
Logback、Slf4j2
-
Solr & Lucene

Kim
Time waits for no one.