JAVA8 官网笔记教程
Home
基础篇
学习 JAVA
基本类(必修)
集合框架
日期时间 API
部署
高级篇
自定义网络
扩展机制
泛型
国际化 i18n
JavaBeans
JDBC 数据库访问
所有导航
项目介绍
笔记精选汇总
GitHub 站
国内镜像站
GitHub
#
Summary
本层级与官网层级基本一致
#
官方教程 - 基础
学习 Java
面向对象编程概念
什么是对象
什么是类
什么是继承
什么是接口
什么是包
问题和练习
语言基础
变量
原始数据类型
数组
变量总结
问题和练习
运算符
分配、算术和一元运算符
平等、关系和条件运算符
按位和位移操作符
运算符总结
表达式、语句和块
表达式、语句和块问题和练习
控制流程语句
if-then和if-then-else语句
switch语句
while和do-while语句
for
分支语句
流程总结
问题与练习
类和对象
类
声明类
声明成员变量
定义方法
为您的class提供构造
将信息传递个方法或构造函数
对象
创建对象
使用对象
类的更多信息
从方法返回值
使用this关键字
控制对类成员的访问
了解类成员
初始化字段
创建和使用类和对象的总结
创建-问题和练习
对象-问题和练习
嵌套类
内部类范例
本地类
匿名类
Lambda表达式
Lambda表达式-方法引用
何时使用嵌套类和Lambda表达式
问题与练习-嵌套类
枚举类型
问题与练习-枚举
注解
注解基础
声明一个注解类型
预定义注解类型
注解类型和可插拨类型系统
重复注解
问题和练习
接口和继承
接口
定义一个接口
实现一个接口
使用接口作为类型
不断发展的接口
默认方法
接口总结
问题和练习
继承
多继承
覆盖和隐藏方法
多态性
隐藏的字段
使用关键字 super
Object作为超类
编写最终类和方法-final
抽象方法和类
继承总结
问题和练习
数字和字符串
数字-Number
Number类
格式化打印输出
超越基础算术
总结
问题和练习
字符
字符串
转换数字和字符串
操纵字符串中的字符
比较字符串和部分字符串
StringBuilder类
总结
自动装箱和拆箱
问题和练习
泛型
为什么要使用泛型?
泛型类型
原始类型
泛型方法
有界类型参数
泛型方法和有界类型参数
泛型,继承和子类型
类型推断
通配符
上界通配符
无界通配符
下界通配符
通配符和子类型
通配符捕获和辅助方法
通配符使用指南
类型擦除
擦除泛型类型
擦除泛型方法
类型擦除和桥接方法的影响
不可确定的类型
对泛型的限制
问题和练习
包package
创建和使用包
创建包
命名包
使用包成员
管理源文件和类文件
包总结
基本类(必修)
异常
什么是异常?
捕获或指定需求
捕获和处理异常
try
catch
finally
try-with-resources
组合示例
指定方法抛出异常
如何抛出异常
异常链
创建异常类
非检查异常 - 争议
异常的优点
总结
练习
基础I/O
I/O流
字节流
字符流
缓冲流
扫描和格式化
扫描
格式化
命令行IO
数据流
对象流
文件I/O (nio.2)
什么是路径?
Path类?
Path操作
文件操作
检查文件或目录
删除文件或目录
复制文件或目录
移动文件或目录
管理元数据
读、写、创建文件
随机访问文件
创建和读取目录
符号链接或其他
文件树
查找文件
监视目录的变化
其他有用的方法
传统文件I / O代码
总结
问题和练习
并发
进程和线程
Tread对象
线程的定义和启动
暂停执行与睡眠
中断
Joins
简单示例
同步
线程干扰
内存一致性错误
同步方法
隐式锁和同步
原子访问
活跃度
死锁
饥饿和活锁
守护块
不可变对象
同步类示例
定义不可变对象的策略
高级并发对象
锁对象
执行器
执行器接口
线程池
Fork/Join
并发集合
原子变量
并发随机数
进一步阅读
问题和练习:并发
问题和练习的答案:并发
平台环境
配置工具
属性
命令行参数
环境变量
其他配置实用程序
系统工具
命令行IO对象
系统属性
安全管理器
System的其他方法
PATH和CLASSPATH
正则表达式
介绍
测试
字符串文字
字符类
预定义字符类
量词
捕获组
边界匹配
Pattern类的方法
Matcher类的方法
PatternSyntaxException的方法
Unicode支持
其他资源
问题与答案
集合框架
集合简介
接口
Collection接口
Set接口
List接口
Queue接口
Deque接口
Map接口
对象排序
SortedSet接口
SortedMap接口
接口总结
问题与练习
聚合操作
reduction
parallelism
问题与练习
实现
set实现
list实现
map实现
queue实现
deque实现
wrapper实现
convenience实现
总结
问题和练习
算法
自定义实现
互操作性
兼容性
API设计
日期,时间API
日期时间设计原则
时间包
方法命名约定
标准日历
概述
DayOfWeek和Month枚举
日期类 / Date
日期和时间类 / Date and Time
时区和偏移类 / Zone and Offset
瞬时类 / Instant
解析与格式化
Temporal 包
时间调节器/adjusters
时间查询/queries
周期和持续时间 / Period and Duration
clock
非ISO日期转换
旧版日期时间代码
总结/概要
问题和练习
部署
打包jar
使用Jar文件:基础
创建Jar文件
查看Jar文件内容
提取/解压Jar文件内容
更新Jar文件
运行Jar文件
使用清单文件:基础知识
了解默认清单
修改清单文件
设置应用程序的入口点
将类添加到JAR文件的类路径
设置包版本信息
在JAR文件中密封包
用清单属性增强安全性
签名和验证Jar文件
了解签名和验证
签名JAR文件
验证JAR文件
使用JAR相关的API
JarClassLoader
JarRunner
#
官方教程 - 高级篇
自定义网络
网络概述
你可能已经知道关于Java中的网络
网络基础知识
使用URL
什么是URL?
创建一个URL
解析URL
直接从URL中读取
连接到一个URL
URLConnection的读和写
套接字 Sockets
什么是套接字
读取和写入
编写服务器端
扩展机制
创建和使用扩展
已安装扩展
下载扩展
理解扩展类加载
创建可扩展的应用程序
使扩展安全
泛型
定义简单泛型
泛型和子类型化
通配符
通用方法
与旧版代码互操作
细节
Class 类作为运行时类型令牌
通配符带来更多乐趣
将旧版代码转换为使用泛型
国际化
简介
一个简单的例子
检查清单
设置 Locale
创建 Locale
BCP 47 扩展
识别可用的语言环境
语言标记过滤和查找
语言环境的范围
Locale 敏感类服务 SPI
隔离指定 Locale 数据
关于 ResourceBundle 类
准备使用 ResourceBundle
使用 PropertyResourceBundle
使用 ListResourceBundle
自定义资源包加载
格式化
数字和货币
使用预定义格式
自定义格式
日期和时间
使用预定义格式
自定义格式
更改日期格式符号
文本信息
处理复合信息
处理复数
使用文本
检查字符(Character)属性
字符串比较
执行与 Locale 敏感的比较
自定义排序规则
改善排序性能
Unicode
术语
补充字符作为扩展
字符和字符串 API
用法示例
设计注意事项
更多信息
检查文本边界
关于
BreakIterator
类
字符边界
单词边界
句子边界
换行符边界
将拉丁数字转换为其他 Unicode 数字
转换非 unicode 文本
字节编码和字符串
字符和字节流
规范化文本
使用 JTextComponent 类处理双向文本
网络资源国际化
国际化服务提供商
将自定义资源包作为扩展安装
JavaBeans
JDBC 数据库访问