Next-gen Tech Edu
Next-gen Tech Edu
笔记(万篇)
知识图谱
实验室
Craft 方块世界
3D 知识卡牌
其他阅读渠道
知乎
SegmentFault
掘金
By Jimmy Song's Template
02.数据结构
搜索...
/
Back
|
Books
Java-Notes
01.语法基础
01.快速开始
Hello World
包
开发环境
Jetbrains Idea
工具链
02.背景与特性
Java 简史
Java 设计理念
版本特性
Java 10
Java 11
Java 12
Java 13
Java 14
Java 15
Java 8
Java 9
兼容性方法
03.变量操作
变量与常量
变量作用域
赋值与拷贝
04.数据类型基础
Object
类型转换
枚举
枚举的内部实现
引用类型
原始类型
05.运算符
赋值运算符
关系运算符
逻辑运算符
算术运算符
位运算符
06.流程控制
条件选择
循环
07.类与对象
抽象与继承
抽象类
多态
继承
接口
重写与重载
对象
this
初始化顺序
单例
构造方法
泛型
泛型案例
泛型类
通配符与上下界
类结构
Struct
Union
类声明
方法
访问修饰符
非访问修饰符
内部类
元编程
OGNL
反射与注解
99.参考资料
2020-heibaiying-Java 反射与注解
反射
08.函数式编程
99.参考资料
2020-heibaiying-Java 函数式编程
Lambda
Lambda 语法
函数式接口
上下文与作用域
Stream API
并发流
操作符
异常处理
Vavr
Collections
Collections
Functions
Pattern Matching
Tuples
Validation
Values
09.文件 IO
IO 类
Buffered Reader & Writer
ByteArrayStream
DataStream
File Reader & Writer
File Stream
控制台
第三方工具
FileUtils
Okio
文件处理
目录
文件读取
文件写入
10.异常处理
try-with-resources
失败重试
异常操作
异常类
02.数据结构
01.数值类型
Math
包装类型
浮点数
随机数
02.字符串
String
工具类
正则表达式
字符
03.时间与日期
Date
LocalDateTime
时间戳
时区
04.数组
Arrays
简单数组
05.空处理
Optional
10.集合类型
Map
HashMap
hashCode
HashMap 源码分析
构造函数
快速存取
语法使用
Queue
BlockingQueue
集合框架
集合操作
集合转换
20.序列化
Json
FastJson
基本使用
GSON
Jackson
JSON Tree Model
ObjectMapper
泛型
基础使用
类注解
Serialization
Externalizable
XML
XML 与 HTML 处理
21.Object Mapping
MapStruct
99.参考资料
常用开发库 - MapStruct 工具库详解
ModelMapper
基础使用
快速开始
03.并发编程
00.JUC 概览
J.U.C 概览
01.线程与线程池
01.线程
ThreadLocal
ThreadLocal
ThreadLocalRandom
线程管理
Thread 与 Runnable
生命周期
守护线程
线程创建
02.线程池
99.参考资料
2023-深入理解 Java 线程池:线程池参数调优与技巧
线程调优
自定义线程池
03.Executors
ExecutorService
Executors
ThreadPoolExecutor
快速开始
任务执行
Future
Callable 与 Future
CompletableFuture
04.ForkJoin
ForkJoin 内部实现
ForkJoin 语法使用
05.定时器
定时器
10.协程
99.参考资料
2020-致远-Java 线程池实现原理及其在美团业务中的实践
02.线程安全
并发容器
ConcurrentHashMap
不安全的 HashMap
语法使用
源码分析
JDK 7 与 JDK 8 对比
构造与扩容
值存取
重要的内部类
ConcurrentSkipListMap
CopyOnWrite
同步器
CountDownLatch
CyclicBarrier
Exchanger
Semaphore
内存模型
volatile
锁
99.参考资料
2021-互斥锁(mutex)的底层原理是什么? 操作系统具体是怎么实现的??
AQS
AQS 框架
ReentrantLock 实现
Java 中锁概览
ReentrantLock
Condition
LockSupport
ReadWriteLock
ReentrantLock
synchronized
实现原理
锁的升级
死锁
避免死锁
死锁案例
锁优化
01.减小锁的持有时间
02.锁粒度的优化
03.锁分离
04.无锁
原子变量
AtomicReference
03.并发框架
Akka
Actor 基础
WebSocket
并发控制与事务
异常处理与持久化
邮箱与路由
RxJava
操作符
变换操作
创建操作
错误处理
辅助操作
过滤操作
结合操作
聚合操作
条件和布尔操作
反应式编程
反应式库比较
工程实践
线程调度
应用案例
基础使用
Completable
Flowable
Observable
快速开始
架构机制
原理浅析
04.并发 IO
Java 中的BIO,NIO 与 AIO
Netty
HTTP
NIO
99.参考资料
2020-heibaiying-Java NIO
Buffers
Channel
HTTP
Selector
05.典型案例
计数器
生产者-消费者
99.参考资料
2020-heibaiying-Java 并发编程基础
04.工程实践
编码规约
Lint
Findbugs
SpotBugs
P3C
Alibaba P3C
常用规约
安全规约
测试规约
代码规约
命名与注释
性能规约
性能优化
异常与日志规约
第三方库
Apache Common
类型增强
Guava
并发
ListenableFuture
SettableFuture
RateLimiter
缓存
CacheBuilder
MapMaker
容器
AtomicLongMap
集合类
EvictingQueue
其他
Preconditions
Lombok
Utils
Builder
类属性
数据对象
构建工具
Gradle
01.快速开始
安装配置
项目初始化
02.构建脚本
公共脚本
任务
项目与资源
03.插件
插件
04.Java 实践
多项目结构
依赖管理
应用构建
Maven
Java 构建工具对比
工程实践
测试
发布
项目构建
应用执行
基础配置
快速开始
生命周期
项目结构
依赖调停
依赖管理
界面编程
Swing
WebView
界面基础
网络编程
HTTP 库
OkHttp
基础请求
其他设置
文件上传
Socket
BIO
Socket 编程
SPI
HSF SPI
SPI 使用
系统调用
RMI
跨语言调用
命令执行
05.设计模式
99.参考资料
2020-heibaiying-设计模式
06.JVM 与性能优化
01.0.内存管理
01.内存结构
01.程序计数器
02.栈
03.堆
04.Metaspace
05.直接内存
02.内存分配
对象结构
内存分配
逃逸分析
03.内存溢出与泄漏
内存泄漏
内存溢出
01.1.垃圾回收
GC 调优
GC 参数
GC 日志
GC 优化案例
基本概念
GC 算法
并发算法
分代算法
基础 GC 算法
增量算法
对象存活性判断
分类与对比
引用类型
02.程序编译
分层编译
字节码
02.类与加载器
类加载流程
类加载器
内建类加载器
类文件结构
03.性能调优
调试工具
99.参考资料
2020-heibaiying-JVM 性能监控之可视化工具
2020-heibaiying-JVM 性能监控之命令行工具
Arthas
99.参考资料
2021-【死磕JVM】用Arthas排查JVM内存
热更新
MAT
99.参考资料
2020-hprof 文件分析工具:JVM 内存分析工具 MAT
内置工具
jstack
jstat
埋点与插桩
埋点与插桩
指标度量
04.运行时
JVM 线程
10.JDK
HotSpot
OpenJDK
99.参考资料
2016-深入理解 Java 虚拟机
01.Java 内存管理机制
00.Java 内存区域详解
01.OOM 异常
02.垃圾收集(GC)
03.Java 内存分配策略
02.Java 虚拟机程序执行
00.Class 文件的组成结构
01.虚拟机的类加载机制
02.虚拟机字节码执行引擎_00-虚拟机栈栈帧结构
02.虚拟机字节码执行引擎_01-方法调用
02.虚拟机字节码执行引擎_02-基于栈的字节码解释执行引擎
附录0-实现Java类的热替换
03.虚拟机性能监控及故障处理
00.常用虚拟机性能监控工具
01.JVM常见参数设置
02.虚拟机调优案例分析
04.Java 程序运行优化
00.Java 运行期优化
2020-heibaiying-Java 虚拟机
09.实践案例
面试题
Java 核心技术 36 讲面试题
10.Scala
20.Clojure
快速开始
99.参考资料
2019-《Clojure 学习笔记》
01.环境搭建
02.快速上手
03.小火汁,没想到你也是序列
Baeldung-Introduction to Clojure
99.参考资料
On Java 8
00-Introduction
01-What-is-an-Object
02-Installing-Java-and-the-Book-Examples
03-Objects-Everywhere
04-Operators
05-Control-Flow
06-Housekeeping
07-Implementation-Hiding
08-Reuse
09-Polymorphism
10-Interfaces
11-Inner-Classes
12-Collections
13-Functional-Programming
14-Streams
15-Exceptions
16-Validating-Your-Code
17-Files
18-Strings
19-Type-Information
20-Generics
21-Arrays
22-Enumerations
23-Annotations
24-Concurrent-Programming
25-Patterns
Appendix-Becoming-a-Programmer
Appendix-Benefits-and-Costs-of-Static-Type-Checking
Appendix-Collection-Topics
Appendix-Data-Compression
Appendix-IO-Streams
Appendix-Javadoc
Appendix-Low-Level-Concurrency
Appendix-New-IO
Appendix-Object-Serialization
Appendix-Passing-and-Returning-Objects
Appendix-Programming-Guidelines
Appendix-Standard-IO
Appendix-Supplements
Appendix-The-Positive-Legacy-of-C-plus-plus-and-Java
Appendix-Understanding-equals-and-hashCode
GLOSSARY
Think in Java
01.对象入门
1.1 抽象的进步
1.10 永久性
1.11 Java和因特网
1.12 分析和设计
1.13 Java还是C++
1.2 对象的接口
1.3 实现方案的隐藏
1.4 方案的重复使用
1.5 继承:重新使用接口
1.6 多态对象的互换使用
1.7 对象的创建和存在时间
1.9 多线程
02.一切都是对象
2.1 用指针操纵对象
2.10 总结
2.11 练习
2.2 所有对象都必须创建
2.3 绝对不要清除对象
2.4 新建数据类型:类
2.5 方法、自变量和返回值
2.6 构建Java程序
2.7 我们的第一个Java程序
2.8 注释和嵌入文档
2.9 编码样式
03.控制程序流程
3.1 使用Java运算符
3.2 执行控制
3.3 总结
3.4 练习
04.初始化和清除
4.1 用构造器自动初始化
4.2 方法重载
4.3 清除:收尾和垃圾收集
4.4 成员初始化
4.5 数组初始化
4.6 总结
4.7 练习
05.隐藏实施过程
5.1 包:库单元
5.2 Java访问指示符
5.3 接口与实现
5.4 类访问
5.5 总结
5.6 练习
06.类再生
6.1 合成的语法
6.10 总结
6.11 练习
6.2 继承的语法
6.3 合成与继承的结合
6.4 到底选择合成还是继承
6.5 protected
6.6 累积开发
6.7 上溯造型
6.8 final关键字
6.9 初始化和类装载
07.多态性
7.1 上溯造型
7.10 练习
7.2 深入理解
7.3 覆盖与重载
7.4 抽象类和方法
7.5 接口
7.6 内部类
7.7 构造器和多态性
7.8 通过继承进行设计
7.9 总结
08.对象的容纳
8.1 数组
8.2 集合
8.3 迭代器
8.4 集合的类型
8.5 排序
8.6 通用集合库
8.7 新集合
8.8 总结
8.9 练习
09.异常差错控制
9.10 练习
9.6 用finally清除
9.7 构造器
9.9 总结
10.Java IO 系统
10.1 输入和输出
10.10 总结
10.11 练习
10.2 增添属性和有用的接口
10.3 本身的缺陷:RandomAccessFile
10.4 File类
10.5 IO流的典型应用
10.6 StreamTokenizer
10.7 Java 1.1的IO流
10.8 压缩
10.9 对象序列化
11.运行期类型鉴定
11.1 对RTTI的需要
11.2 RTTI 语法
11.3 反射:运行期类信息
11.4 总结
11.5 练习
12.传递和返回对象
12.1 传递指针
12.2 制作本地副本
12.3 克隆的控制
12.4 只读类
12.5 总结
12.6 练习
14.多线程
14.1 反应灵敏的用户界面
14.2 共享有限的资源
14.3 堵塞
14.4 优先级
14.5 回顾runnable
14.6 总结
14.7 练习
15.网络编程
15.1 机器的标识
15.10 练习
15.2 套接字
15.3 服务多个客户
15.4 数据报
15.5 一个Web应用
15.6 Java与CGI的沟通
15.7 用JDBC连接数据库
15.8 远程方法
15.9 总结
16.设计范式
16.1 范式的概念
16.10 练习
16.2 观察器范式
16.3 模拟垃圾回收站
16.4 改进设计
16.5 抽象的应用
16.6 多重派遣
16.7 访问器范式
16.8 RTTI真的有害吗
16.9 总结
17.项目
17.1 文字处理
17.2 方法查找工具
17.3 复杂性理论
17.4 总结
17.5 练习
附录A 使用非JAVA代码
附录B 对比C++和Java
附录C Java编程规则
附录D 性能
附录E 关于垃圾收集的一些话
附录F 推荐读物
写在前面的话
引言
INTRODUCTION
目录
03.时间与日期
Java 中时间与日期