Java学习笔记

0x00 Java基础知识

HashMap的实现 本文共5104字,阅读大约需要20分钟

本文详细讲述了Java中的HashMap基本原理,同时给出了针对JDK1.8中HashMapput, get, remove, resize, hash五个方法的源代码进行解析。同时给出了HashMap为什么不是线程安全的原因以及其与HashSetHashTable等其它集合框架的对比。

Java引用 本文共769字,阅读大约需要3分钟

本文讲述了Java传参时的引用传递和值传递,以及数组的传递方式。

序列化与反序列化 本文共1416字,阅读大约需要6分钟

本文详细讲述了Java的序列化与反序列化机制,以及Java序列化算法的实现过程,以及Serializable接口的使用和重写相关序列化与反序列化算法的实现过程,同时讲述了transient关键字的意义和使用方法。

浅拷贝与深拷贝 本文共662字,阅读大约需要3分钟

本文讲述了Java中浅拷贝与深拷贝的概念,并通过相关实例阐述了二者之间的不同,同时揭示了通过实现Cloneable接口以实现对象深拷贝的方法。

0x01 服务端开发

布隆过滤器 本文共2112字,阅读大约需要9分钟

本文讲述了布隆过滤器的适用场景和基本原理,以及开源项目基于Redis的布隆过滤器RedisBloom及其控制台和Java API的使用。

缓存穿透、缓存击穿、缓存雪崩 本文共877字,阅读大约需要4分钟

本文讲述了用户请求来袭时,服务端正常的缓存处理流程,以及三种退化情况缓存穿透、缓存击穿、缓存雪崩的概念及解决方案。

分布式唯一id生成策略 本文共4748字,阅读大约需要12分钟

本文详细讲述了几种分布式唯一id生成策略及其优缺点,例如:数据库自增长字段、UUID、Snowflake算法等,并给出了Snowflake算法的Java实现以及美团公司的2种分布式唯一id生成方案——Leaf-segment方案和Leaf-snowflake方案——的详细介绍。