阿⾩Java面试精华:红⿊树、HashMap与HashTable、并发编程深度解析

3星 · 超过75%的资源 需积分: 10 12 下载量 173 浏览量 更新于2024-07-15 收藏 1.48MB PDF 举报
"阿里Java最新版面试集锦2021.pdf" 阿里Java最新版的面试集锦涵盖了多个关键知识点,旨在帮助求职者准备阿里巴巴集团的Java工程师面试。以下是部分核心内容: 1. **红⿊树的特性** - 每个节点要么是红色要么是黑色。 - 根节点是黑色。 - 所有叶子节点(NIL或NULL)都是黑色。 - 如果一个节点是红色,其子节点必须是黑色。 - 从任一节点到其所有后代叶子节点的任何路径都包含相同数量的黑色节点。 - 红黑树是一种近似平衡的二叉查找树,保证了插入、删除和查找操作的平均时间复杂度为O(logn),提高了效率。 2. **HashMap和HashTable的不同点** - HashMap继承自抽象类`AbstractMap`,而HashTable直接继承自`Dictionary`。 - HashMap不线程安全,适合高并发环境;HashTable是线程安全的,但效率较低。 - HashMap允许键值为null,而HashTable不允许。 - HashMap使用`null`作为标识,表示没有映射;HashTable使用`null`键会导致抛出异常。 - HashMap使用`putEntryAt()`方法插入元素,HashTable使用`put()`方法。 3. **ConcurrentHashMap优于HashTable的原因** - ConcurrentHashMap使用分段锁技术,提供更高的并发性能,而不是整个表的全局锁。 - 它提供了更好的扩展性和更低的锁粒度,降低了锁冲突的可能性。 4. **ClassLoader的分类及加载顺序** - Bootstrap ClassLoader:加载JDK的类库。 - Extension ClassLoader:加载JRE的扩展目录下的类库。 - App ClassLoader:加载应用的`CLASSPATH`中的类库。 - 用户自定义ClassLoader:根据特定需求加载类。 5. **数据库事务的ACID特性** - 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成。 - 一致性(Consistency):事务完成后,数据库保持一致状态,所有约束都得到满足。 - 隔离性(Isolation):并发事务之间互不影响,如同顺序执行。 - 持久性(Durability):一旦事务提交,其更改将永久保存,即使系统故障。 6. **数据库事务的隔离级别** - READ UNCOMMITTED(读未提交):最低级别,可能产生脏读、不可重复读和幻读。 - READ COMMITTED(读已提交):每次读取的数据都是已提交的数据,防止脏读,但可能导致不可重复读。 - REPEATABLE READ(可重复读):防止脏读和不可重复读,但可能出现幻读。 - SERIALIZABLE(串行化):最高级别,完全避免脏读、不可重复读和幻读,但并发性能最差。 7. **中间件** - Redis:内存数据存储,用于缓存、消息队列等场景。 - Zookeeper:分布式协调服务,用于配置管理、命名服务等。 - MQ:消息中间件,实现解耦和异步处理。 - Dubbo:阿里巴巴的分布式服务框架,用于服务治理和服务调用。 8. **垃圾收集(GC)算法和收集器** - 对象存活判断:引用计数法、可达性分析。 - 垃圾收集算法:标记-清除、复制、标记-整理、分代收集。 - 常用收集器:Serial、ParNew、Parallel Scavenge、CMS、G1等。 - 收集器组合:如CMS+Parallel Old,G1等。 9. **TCP协议** - 三次握手建立连接。 - 四次挥手断开连接。 - 滑动窗口机制控制流量。 10. **HTTPS** - 通过SSL/TLS加密HTTP,提供安全的通信。 - 包含证书验证、密钥交换等步骤,保证数据传输的机密性和完整性。 11. **CAP原则** - 一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)。 - 在分布式系统中,无法同时满足三者,通常需要在CA和CP之间选择。 12. **一致性哈希** - 解决分布式缓存中数据分布问题,减少节点变化时的数据迁移。 以上内容涉及Java基础、数据结构、并发编程、数据库、网络协议、安全性等多个方面,是准备阿里巴巴Java面试的重要参考资料。了解并掌握这些知识点,能有效提升面试成功的几率。