# java知识点 **Repository Path**: liuguoxiong/java-knowledge-points ## Basic Information - **Project Name**: java知识点 - **Description**: 记录java面试的知识点 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-11-17 - **Last Updated**: 2022-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java知识点 # 介绍 记录java面试的知识点,按照类型分类 第一步:先只记录知识点 第二步:再来整理回答的技巧 ## JAVA基础 ### HashMap 底层数据结构 存取原理 hash的计算规则 jdk1.7 1.8区别 扩容机制 为什么大小都是2的幂? ### ConcurrentHashMap 底层数据结构 线程安全怎么做的 存取原理 jdk1.7 1.8区别 ### ArrayList和LinkedList 区别 初始化大小 扩容机制 值传递还是引用传递 float和double为什么为精度丢失,BigDecimal为什么不会 深拷贝和浅拷贝 == 和 equals() 的区别 String、StringBuffer、StringBuilder 的区别 BIO、NIO 和 AIO 的区别 反射原理 4种引用类型 ### CAS CAS是啥 作用 ABA问题 volatile ### synchronized 用法 锁对象锁方法锁类的区别 锁升级 锁粗化 锁膨胀 对象头 ### ReentrantLock,AQS CountDownLatch使用 CyclicBarrier使用 Semaphore使用 ### ThreadLocal 原理 使用场景 InheritableThreadLocal transmittable-thread-local Atomic 原子类 ### 线程池 工作原理 7个核心参数 阻塞队列有几种 拒绝策略有几种 创建方式 4种快捷创建的线程池和使用隐患 核心线程数设置多少合理 ## JVM 可达性分析算法中根节点有哪些 内存模型 jvm 调优参数 垃圾回收算法 垃圾收集器 类加载 双亲委派机制 调优 ## Spring BeanFactory与ApplicationContext区别 Bean的生命周期 循环依赖 springboot和spring的区别 ioc流程 aop实现原理 过滤器、拦截器 动态代理 ## MYSQL 一条SQL查询语句在MySQL中如何执行的 MVCC MyISAM与InnoDB 的区别 索引结构 聚集索引与非聚集索引的区别 Buffer Pool Change Buffer 事务得四大特性 4种隔离级别 事物传播 索引失效场景 锁 sql优化 行转列 列转行 多层级设计 explain 命令 用b+树的原因,各种树对比优劣势 索引分类 回表 覆盖索引 最左匹配原则 binlog Undo Log Redo Log 死锁如何解决 乐观锁和悲观锁 主从复制流程 索引下推 生产环境下数据库的配置要求 ## Redis 数据类型 使用场景 缓存雪崩 击穿 穿透分析 布隆过滤实现 为什么快,底层结构 IO多路复用 select poll epoll区别 哪些地方用到了多线程 持久化机制各自的优缺点 key过期删除策略 淘汰策略 跳表实现 lru算法实现 redision jedis区别 和数据库一致性如何保证 ## RocketMq 消息不丢失 处理重复消息 消息有序性 消息堆积处理 ## 分布式 CAP理论 ## ES ## ZK ## 网络 TCP三次握手 TCP与UDP的差别 ## 设计题 如何设计一个秒杀系统 数据库如何设计省市县多层级关系,当层级不确定的情况怎么设计 ## 额外知识点 快速失败(fail—fast)和安全失败(fail—safe) 逃逸分析 雪花算法 ### 参与贡献 地址迁移: https://mw1ogya4yz.feishu.cn/base/bascncToxBrYFYx4stCGDncjctf?table=tblLTwSuD8dpzUZY&view=vewApkDIGY