Java™ 教程-Java Tutorials 中文版
Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
真正的大索引
The Java™ Tutorials 中所有内容页面的列表
路径:
入门
Java 技术现象
- 关于 Java 技术
- Java 技术可以做什么?
- Java 技术将如何改变我的生活?
"Hello World!" 应用
- "Hello World!" for the NetBeans IDE
- "Hello World!" for Microsoft Windows
- "Hello World!" for Solaris OS and Linux
仔细看看 "Hello World!" 应用
- 问题和练习:入门
常见问题(及其解决方案)
路径:
学习 Java 语言
面向对象的编程概念
- 什么是对象?
- 什么是类?
- 什么是继承?
- 什么是接口?
- 什么是包?
- 问题和练习:面向对象的编程概念
语言基础
- 变量
- 基本数据类型
- 数组
- 变量总结
- 问题和练习:变量
- 运算符
- 赋值,算术和一元运算符
- 相等性,关系和条件运算符
- 位运算和移位运算符
- 运算符总结
- 问题和练习:运算符
- 表达式,语句和块
- 问题和练习:表达式,语句和块
- 控制流语句
- if-then 和 if-then-else 语句
- switch 语句
- while 和 do-while 语句
- for 语句
- 分支语句
- 控制流语句总结
- 问题和练习:控制流语句
类和对象
- 类
- 声明类
- 声明成员变量
- 定义方法
- 为你的类提供构造函数
- 将信息传递给方法或构造函数
- 对象
- 创建对象
- 使用对象
- 更多关于类
- 从方法中返回一个值
- 使用 this 关键字
- 控制对类成员的访问
- 理解类成员
- 初始化字段
- 创建及使用类和对象的总结
- 问题和练习:类
- 问题和练习:对象
- 嵌套类
- 内部类示例
- 局部类
- 匿名类
- Lambda 表达式
- 方法引用
- 何时使用嵌套类,本地类,匿名类和 Lambda 表达式
- 问题和练习:嵌套类
- 枚举类型
- 问题和练习:枚举类型
注解
- 注解基础
- 声明一个注解类型
- 预定义的注解类型
- 类型注解和可插入类系统
- 重复注解
- 问题和练习:注解
接口和继承
- 接口
- 定义一个接口
- 实现一个接口
- 使用接口作为类型
- 不断发展的接口
- 默认方法
- 接口总结
- 问题和练习:接口
- 继承
- 状态,实现和类型的多重继承
- 覆盖和隐藏方法
- 多态
- 隐藏字段
- 使用 super 关键字
- Object 作为超类
- 编写 final 类和方法
- 抽象方法和类
- 继承总结
- 问题和练习:继承
数字和字符串
- 数字
- 数字类
- 格式化数字打印输出
- 基础算术之外的补充
- 数字总结
- 问题和练习:数字
- 字符
- 字符串
- 在数字和字符串之间转换
- 操作字符串中的字符
- 比较字符串和字符串的部分
- StringBuilder 类
- 字符和字符串总结
- 自动装箱和拆箱
- 问题和练习:字符和字符串
泛型(更新)
- 为什么要使用泛型?
- 泛型类型
- 原始类型
- 泛型方法
- 有界类型形参
- 泛型方法和有界类型形参
- 泛型,继承和子类型
- 类型推断
- 通配符
- 上界通配符
- 无界通配符
- 下界通配符
- 通配符和子类型
- 通配符捕获和辅助方法
- 通配符使用指南
- 类型擦除
- 删除泛型类型
- 泛型方法的擦除
- 类型擦除和桥接方法的影响
- 不可具体化的类型
- 对泛型的限制
- 问题和练习:泛型
包
- 创建和使用包
- 创建一个包
- 命名一个包
- 使用包成员
- 管理源文件和类文件
- 创建和使用包总结
- 问题和练习:创建和使用包
路径:
必要类
异常
- 异常是什么?
- The Catch or Specify Requirement
- 捕获和处理异常
- try 块
- catch 块
- finally 块
- try-with-resources 语句
- 把它们放在一起
- 指定方法抛出的异常
- 如何抛出异常
- 链式异常
- 创建异常类
- 非检查型异常 争议
- 异常的优点
- 总结
- 问题和练习
基本 I/O
- I/O 流
- 字节流
- 字符流
- 缓冲流
- 扫描和格式化
- 扫描
- 格式化
- 来自命令行的 I/O
- 数据流
- 对象流
- 文件 I/O(采用 NIO.2)
- 什么是路径?(和其他文件系统事实)
- 路径类
- 路径操作
- 文件操作
- 检查文件或目录
- 删除文件或目录
- 复制文件或目录
- 移动文件或目录
- 管理元数据(文件和文件存储属性)
- 读取、写入和创建文件
- 随机访问文件
- 创建和读取目录
- 链接,符号或其他
- 遍历文件树
- 查找文件
- 观察目录中的更改
- 其他有用的方法
- 旧版文件 I/O 代码
- 总结
- 问题和练习:基本 I/O
并发
- 进程和线程
- 线程对象
- 定义和启动一个线程
- 用 Sleep 来暂停执行
- Interrupts (中断)
- Joins
- SimpleThreads 示例
- Synchronization (同步)
- 线程干扰
- 内存一致性错误
- 同步方法
- 内部锁和同步
- 原子访问
- Liveness (活跃度)
- Deadlock (死锁)
- Starvation and Livelock (饥饿和活锁)
- Guarded Blocks (保护块)
- Immutable Objects (不可变对象)
- 一个同步类的例子
- 定义不可变对象的策略
- 高级并发对象
- 锁对象
- Executors (执行器)
- 执行器接口
- 线程池
- Fork/Join
- 并发集合
- 原子变量
- 并发随机数
- 扩展阅读
- 问题和练习:并发
平台环境
- 配置实用程序
- 属性
- 命令行参数
- 环境变量
- 其他配置实用程序
- 系统实用程序
- 命令行 I/O 对象
- 系统属性
- 安全管理
- System 中的其他方法
- PATH 和 CLASSPATH
- 问题和练习:平台环境
正则表达式
- 介绍
- 测试工具
- 字符串字面量
- 字符类
- 预定义的字符类
- 量词
- 捕获组
- 边界匹配
- Pattern 类的方法
- Matcher 类的方法
- PatternSyntaxException 类的方法
- Unicode 支持
- 其他资源
- 问题和练习:正则表达式
路径:
部署
Java Applets
- Applet 入门
- 定义 Applet 子类
- 里程碑方法
- Applet 的生命周期
- Applet 的执行环境
- 开发 Applet
- 部署 Applet
- 使用 Applet 标记进行部署
- 使用 Applet 做更多事情
- 查找和加载数据文件
- 定义和使用 Applet 参数
- 显示短状态字符串
- 在浏览器中显示文档
- 从 Applet 调用 JavaScript 代码
- 从 JavaScript 代码调用 Applet 方法
- 使用事件处理程序处理初始化状态
- 操纵 Applet 网页的 DOM
- 显示自定义加载进度指示器
- 将诊断写入标准输出和错误流
- 开发可拖动的 Applet
- 与其他 Applet 通信
- 使用服务器端应用程序
- 网络客户端 Applet 示例
- Applet 可以做什么和不能做什么
- 解决常见的 Applet 问题
- 问题和练习:Applets
Java Web Start
- 开发 Java Web Start 应用程序
- 获取资源
- 部署 Java Web Start 应用程序
- 设置 Web 服务器
- 显示自定义加载进度指示器
- 运行 Java Web Start 应用程序
- Java Web Start 和 Security
- 常见的 Java Web Start 问题
- 问题和练习:Java Web Start
使用 Java Rich Internet Applications 做更多事情
- 设置受信任的参数和安全属性
- 系统属性
- JNLP API
- 使用 JNLP API 访问客户端
- Cookies
- 访问 Cookie
- 自定义加载体验
- 富 Internet 应用程序中的安全性
- 保护富 Internet 应用程序的准则
- 问题和练习:利用富 Internet 应用程序做更多事
深入部署
- 用户接受 RIA
- 部署工具包
- 部署 Applet
- 自定义加载屏幕
- 在 Applet 标记中嵌入 JNLP 文件
- 部署 Java Web Start 应用程序
- 更改启动按钮
- 部署无代码库
- 检查客户端 JRE 软件版本
- Java 网络启动协议
- JNLP 文件的结构
- 部署最佳实践
- 减少下载时间
- 避免不必要的更新检查
- 确保 JRE 软件的存在
- 问题和练习:深入部署
部署自包含的应用程序
- 打包自包含应用程序的先决条件
- 转换现有应用程序
- 使用文件关联
- 添加外部库
- 提供默认参数
- 为所有平台使用通用构建文件
- 使用多个入口点
- 问题和练习:自包含的应用程序
JAR 文件中的打包程序
- 使用 JAR 文件:基础知识
- 创建 JAR 文件
- 查看 JAR 文件的内容
- 提取 JAR 文件的内容
- 更新 JAR 文件
- 运行 JAR 打包的软件
- 使用清单文件:基础知识
- 理解默认清单
- 修改清单文件
- 设置应用程序的入口点
- 将类添加到 JAR 文件的类路径中
- 设置包版本信息
- 在 JAR 文件中密封包
- 使用清单属性增强安全性
- 签名和验证 JAR 文件
- 理解签名和验证
- 签名 JAR 文件
- 验证签名的 JAR 文件
- 使用与 JAR 相关的 API
- JarClassLoader 类
- JarRunner 类
- 问题和练习:JAR
路径:
使用 JFC/Swing 创建 GUI
Swing 入门
- 关于 JFC 和 Swing
- 编译和运行 Swing 程序
使用 NetBeans IDE 学习 Swing
- 设置 CelsiusConverter 项目
- NetBeans IDE 基础知识
- 创建 CelsiusConverter GUI
- 调整 CelsiusConverter GUI
- 添加应用程序逻辑
- 问题和练习:使用 NetBeans IDE 学习 Swing
使用 Swing 组件
- 使用顶级容器
- JComponent 类
- 使用文本组件
- 文本组件功能
- 文本组件 API
- 如何使用各种组件
- 如何制作 applet
- 如何使用按钮,复选框和单选按钮
- 如何使用 ButtonGroup 组件
- 如何使用颜色选择器
- 如何使用组合框
- 如何制作对话框
- 如何使用编辑器窗格和文本窗格
- 如何使用文件选择器
- 如何使用格式化文本框
- 如何制作框架(主窗口)
- 如何使用内部框架
- 如何使用标签
- 如何使用分层窗格
- 如何使用列表
- 如何使用菜单
- 如何使用面板
- 如何使用密码框
- 如何使用进度条
- 如何使用根窗格
- 如何使用滚动窗格
- 如何使用分隔符
- 如何使用滑块
- 如何使用微调器
- 如何使用拆分窗格
- 如何使用选项卡式窗格
- 如何使用表格
- 如何使用文本区域
- 如何使用文本框
- 如何使用工具栏
- 如何使用工具提示
- 如何使用树
- 如何在 Swing 组件中使用 HTML
- 如何使用模型
- 如何使用图标
- 如何使用边框
- 解决常见的组件问题
- 问题和练习:使用 Swing 组件
Swing 中的并发性
- 初始线程
- 事件调度线程
- 工作者线程和 SwingWorker
- 简单的后台任务
- 具有临时结果的任务
- 取消后台任务
- 绑定属性和状态方法
- 问题和练习:Swing 中的并发性
使用其他 Swing 功能
- 如何与桌面类集成
- 如何创建半透明和形状的 Windows
- 如何使用 JLayer 类装饰组件
- 如何使用动作
- 如何使用 Swing 计时器
- 如何支持辅助技术
- 如何使用焦点子系统
- 如何使用键绑定
- 如何在对话框中使用模态
- 如何打印表格
- 如何打印文本
- 如何创建启动画面
- 如何使用系统托盘
- 使用其他 Swing 特性解决常见问题
在容器中布置组件
- 布局管理器的可视指南
- 使用布局管理器
- 布局管理的工作原理
- 如何使用各种布局管理器
- 如何使用 BorderLayout
- 如何使用 BoxLayout
- 如何使用 CardLayout
- 如何使用 FlowLayout
- 如何使用 GridBagLayout
- 如何使用 GridLayout
- 如何使用 GroupLayout
- GroupLayout 示例
- 如何使用 SpringLayout
- 创建自定义布局管理器
- 没有布局管理器(绝对定位)
- 解决常见布局问题
- 问题和练习:在容器中布置组件
修改外观和感觉
- 如何设置外观和感觉
- 合成的外观和感觉
- 合成例
- Nimbus 外观和感觉
- 更改 Nimbus 的外观
- 调整组件大小
- 更改颜色主题
拖放和数据传输
- DnD 简介
- 默认 DnD 支持
- 演示 - BasicDnD
- TransferHandler 类
- 导出方法
- 导入方法
- TransferSupport 类
- 设置丢弃模式
- 演示 - DropDemo
- 选择放置操作
- 演示 - ChooseDropAction
- 显示放置位置
- 位置敏感放置
- 演示 - LocationSensitiveDemo
- 空表放置
- 放置位置渲染
- 顶级放置
- 添加剪切,复制和粘贴(CCP)
- 文本组件中的 CCP
- 非文本组件中的 CCP
- 使用和创建 DataFlavor
- 把它们放在一起--DnD 和 CCP
- 解决常见的数据传输问题
编写事件监听器
- 事件监听器简介
- 关于编写事件监听器的一般信息
- Swing 组件支持的监听器
- 为常见事件实现监听器
- 如何编写动作监听器
- 如何编写插入符号监听器
- 如何编写变更监听器
- 如何编写组件监听器
- 如何编写容器监听器
- 如何编写文档监听器
- 如何编写焦点监听器
- 如何编写内部框架监听器
- 如何编写项目监听器
- 如何编写按键监听器
- 如何编写列表数据监听器
- 如何编写列表选择监听器
- 如何编写鼠标监听器
- 如何编写鼠标运动监听器
- 如何编写鼠标滚轮监听器
- 如何编写属性更改监听器
- 如何编写表模型监听器
- 如何编写树展开监听器
- 如何编写树模型监听器
- 如何编写树选择监听器
- 如何编写树将展开监听器
- 如何编写可撤销的编辑监听器
- 如何编写窗口监听器
- 监听器 API 表
- 解决常见的事件处理问题
- 问题和练习:编写事件监听器
执行自定义绘画
- 创建演示应用程序(步骤 1)
- 创建演示应用程序(步骤 2)
- 创建演示应用程序(步骤 3)
- 改进设计
- 仔细研究 Patin 机制
- 总结
- 解决常见的绘画问题
- 问题和练习:执行自定义绘画
路径:
集合
集合简介
接口
- Collection 接口
- Set 接口
- List 接口
- Queue 接口
- Deque 接口
- Map 接口
- 对象排序
- SortedSet 接口
- SortedMap 接口
- 接口总结
- 问题和练习:接口
聚合操作
- 缩减
- 并行
- 问题和练习:聚合操作
实现
- Set 实现
- List 实现
- Map 实现
- Queue 实现
- Deque 实现
- 包装器实现
- 便利实现
- 实现摘要
- 问题和练习:实现
算法
自定义集合实现
互操作性
- 兼容性
- API 设计
路径:
日期时间
日期时间概述
- 日期时间设计原则
- 日期时间包
- 方法命名规范
标准日历
- 概述
- DayOfWeek 和 Month 枚举
- 日期类
- 日期和时间类
- 时区和偏移类
- Instant 类
- 解析和格式化
- Temporal 包
- Temporal Adjuster
- Temporal Query
- Period 和 Duration
- Clock
- 非 ISO 日期转换
- 旧版日期时间代码
- 总结
- 问题和练习:日期时间 API
路径:
国际化
介绍
- 一个简单的例子
- 国际化前
- 国际化后
- 运行示例程序
- 国际化示例程序
- 清单
设置语言环境
- 创建语言环境
- BCP 47 扩展
- 识别可用的语言环境
- 语言标签过滤和查找
- 语言环境的范围
- 区域敏感服务 SPI
隔离特定于语言环境的数据
- 关于 ResourceBundle 类
- 准备使用 ResourceBundle
- 使用属性文件支持 ResourceBundle
- 使用 ListResourceBundle
- 自定义资源包加载
格式化
- 数字和货币
- 使用预定义格式
- 自定义格式
- 日期和时间
- 使用预定义格式
- 自定义格式
- 更改日期格式符号
- 消息
- 处理复合消息
- 处理复数
使用文本
- 检查字符属性
- 比较字符串
- 执行与语言环境无关的比较
- 自定义排序规则
- 提高排序性能
- Unicode
- 术语
- 称为代理的补充字符
- 字符和字符串 API
- 示例使用
- 设计注意事项
- 更多信息
- 检测文本边界
- 关于 BreakIterator 类
- 字符边界
- 单词边界
- 句子边界
- 行边界
- 将拉丁数字转换为其他 Unicode 数字
- 转换非 Unicode 文本
- 字节编码和字符串
- 字符和字节流
- 规范化文本
- 使用 JTextComponent 类处理双向文本
网络资源国际化
- 国际化域名
国际化服务提供者
- 将自定义资源包安装为扩展
路径:
2D 图形
Java 2D API 概念概述
- 坐标
- Java 2D 渲染
- 几何图元
- Text
- 图片
- 打印
图形入门
使用几何
- 绘制几何图元
- 绘制任意形状
- 描边和填充图元
使用文本 API
- 字体概念
- 文本布局概念
- 物理和逻辑字体
- 测量文本
- 高级文本显示
- 使用渲染提示显示抗锯齿文本
- 使用文本属性来设置文本样式
- 绘制多行文本
- 使用双向文本
使用图像
- 读/加载图像
- 绘制图像
- 创建和绘制图像
- 写/保存图像
打印
- 基本打印程序
- 使用“打印设置”对话框
- 打印多页文档
- 使用打印服务和属性
- 打印用户接口的内容
- Swing 组件中的打印支持
Java2D 中的高级主题
- 转换形状,文本和图像
- 剪切绘图区域
- 合成图形
- 控制渲染质量
- 从几何图元构造复杂形状
- 支持用户交互
路径:
声音
- 采样包概述
- 访问音频系统资源
- 播放音频
- 捕获音频
- 使用控件处理音频
- 使用文件和格式转换器
- MIDI 包概述
- 访问 MIDI 系统资源
- 发送和接收 MIDI 信息
- 序列器简介
- 使用序列器方法
- 使用高级序列器功能
- 合成声音
- 服务提供者接口简介
- 提供采样音频服务
- 提供 MIDI 服务
路径:
JavaBeans(TM)
快速开始
- 创建项目
- 按钮是一个 Bean
- 连接应用程序
- 使用第三方 Bean
编写 JavaBeans 组件
- 属性
- 方法
- 事件
- 使用 BeanInfo
高级 JavaBeans 主题
- Bean 持久性
- 长期持久性
- Bean 自定义
路径:
JDBC(TM) 数据库访问
JDBC 简介
- JDBC 架构
- 关系数据库概述
JDBC 基础知识
- 入门
- 使用 JDBC 处理 SQL 语句
- 建立连接
- 连接 DataSource 对象
- 处理 SQLExceptions
- 设置表
- 从结果集中获取和修改值
- 使用准备好的语句
- 使用事务
- 使用 RowSet 对象
- 使用 JdbcRowSet 对象
- 使用 CachedRowSet 对象
- 使用 JoinRowSet 对象
- 使用 FilteredRowSet 对象
- 使用 WebRowSet 对象
- 使用高级数据类型
- 使用大对象
- 使用 SQLXML 对象
- 使用数组对象
- 使用 DISTINCT 数据类型
- 使用结构化对象
- 使用自定义类型映射
- 使用数据链接对象
- 使用 RowId 对象
- 使用存储过程
- 将 JDBC 与 GUI API 结合使用
路径:
Java 管理扩展(JMX)
JMX 技术概述
- 为什么使用 JMX 技术?
- JMX 技术的架构
- 监视和管理 Java 虚拟机
介绍 MBean
- 标准 MBean
- MXBeans
通知
远程管理
- 通过 JConsole 公开资源以进行远程管理
- 创建自定义 JMX 客户端
路径:
用于 XML 处理的 Java API(JAXP)
JAXP 简介
- 包概述
- XML API 的简单 API
- 文档对象模型 API
- 可扩展样式表语言转换 API
- 用于 XML API 的流式 API
- 查找 JAXP 示例程序
- 你从这里去哪里?
简单的 XML API
- 何时使用 SAX
- 使用 SAX 解析 XML 文件
- 实现 SAX 验证
- 处理词汇事件
- 使用 DTDHandler 和 EntityResolver
- 更多的信息
文档对象模型
- 何时使用 DOM
- 将 XML 数据读入 DOM
- 使用 XML Schema 进行验证
- 更多的信息
可扩展样式表语言转换
- 介绍 XSL,XSLT 和 XPath
- XPath 如何工作
- 将 DOM 写为 XML 文件
- 从任意数据结构生成 XML
- 使用 XSLT 转换 XML 数据
用于 XML 的流式 API
- 为何选择 StAX?
- StAX API
- 使用 StAX
- Oracle 的流式 XML 分析器实现
- 示例代码
- 更多的信息
JAXP 1.5 和新属性
- 背景
- 外部资源
- 新属性
- 范围和顺序
- 与 SecurityManager 的关系
- JDK 中的属性设置
- 使用属性
- 错误处理
- StAX
- 结论
- 参考
处理限制
- 处理限制定义
- 范围和顺序
- 使用限制
- 错误处理
- StAX
- 示例
路径:
RMI
- RMI 应用程序概述
- 编写 RMI 服务器
- 设计远程接口
- 实现远程接口
- 创建客户端程序
- 编译并运行示例
- 编译示例程序
- 运行示例程序
路径:
Java SE 中的安全功能
安全功能概述
创建策略文件
- 设置策略文件以授予所需的权限
- 启动政策工具
- 授予所需的权限
- 保存策略文件
快速浏览控制应用程序
- 观察应用程序自由
- 了解如何限制应用程序
- 设置策略文件以授予所需权限
- 打开策略文件
- 授予所需权限
- 保存策略文件
- 查看策略文件效果
API 和工具用于安全代码和文件交换
签名代码并授予权限
- 代码签名者的步骤
- 下载并试用示例应用程序
- 创建包含类文件的 JAR 文件
- 生成密钥
- 签名 JAR 文件
- 导出公钥证书
- 代码接收器的步骤
- 观察受限制的应用程序
- 将证书导入为可信证书
- 设置策略文件以授予所需的权限
- 启动政策工具
- 指定密钥库
- 添加带有 SignedBy 别名的策略条目
- 保存策略文件
- 查看策略文件效果
交换文件
- 合同发件人的步骤
- 创建包含合同的 JAR 文件
- 生成密钥
- 签名 JAR 文件
- 导出公钥证书
- 合同接收人的步骤
- 将证书导入为可信证书
- 验证 JAR 文件签名
生成和验证签名
- 生成数字签名
- 准备初始程序结构
- 生成公钥和私钥
- 签名数据
- 将签名和公钥保存在文件中
- 编译并运行程序
- 验证数字签名
- 准备初始程序结构
- 输入和转换编码的公钥字节
- 输入签名字节
- 验证签名
- 编译并运行程序
- 弱点和替代品
实现自己的权限
- ExampleGame
- HighScore 类
- HighScorePermission 类
- 示例策略文件
- 把它们放在一起
- HighScore Developer(Chris)的步骤
- ExampleGame 开发人员(Terry)的步骤
- 用户运行 ExampleGame(Kim)的步骤
路径:
扩展机制
创建和使用扩展
- 安装型扩展
- 下载型扩展
- 理解扩展类加载
- 创建可扩展的应用程序
使扩展安全
- 设置扩展的权限
- 在扩展中密封包
路径:
反射 API
类
- 获取 Class 对象
- 检查类修饰符和类型
- 发现类成员
- 故障排除
成员
- 字段
- 获取字段类型
- 获取和解析字段修饰符
- 获取和设置字段值
- 故障排除
- 方法
- 获取方法类型信息
- 获取方法参数的名称
- 获取和解析方法修饰符
- 调用方法
- 故障排除
- 构造函数
- 查找构造函数
- 获取和解析构造函数修饰符
- 创建新的类实例
- 故障排除
数组和枚举类型
- 数组
- 识别数组类型
- 创建新数组
- 获取和设置数组及其组件
- 故障排除
- 枚举类型
- 检查枚举
- 使用枚举类型获取和设置字段
- 故障排除
路径:
自定义网络
网络概述
- 你可能已经知道的 Java 中的网络
- 网络基础知识
使用 URL
- 什么是 URL?
- 创建 URL
- 解析 URL
- 直接从 URL 读取
- 连接到 URL
- 读取和写入 URLConnection
关于套接字
- 什么是套接字?
- 读取和写入套接字
- 编写套接字的服务器端
关于数据报
- 什么是数据报?
- 编写数据报客户端和服务器
- 广播给多个收件人
编程访问网络参数
- 什么是网络接口?
- 获取网络接口
- 列出网络接口地址
- 网络接口参数
使用 Cookie
- 使用 Cookie 进行 HTTP 状态管理
- CookieHandler 回调机制
- 默认 CookieManager
- 自定义 CookieManager
路径:
Bonus
泛型
- 介绍
- 定义简单泛型
- 泛型与子类型
- 通配符
- 泛型方法
- 与旧代码互操作
- 附属细则
- 类字面量作为运行时类型标记
- 使用通配符更多的乐趣
- 将旧版代码转换为使用泛型
- 致谢
全屏独占模式 API
- 全屏独占模式
- 显示模式
- 被动与主动渲染
- 双缓冲和页面翻转
- BufferStrategy 和 BufferCapabilities
- 例子
准备 Java 程序员语言认证
- Java SE 8 程序员 I 考试
- Java SE 8 程序员 II 考试
- Java SE 8 升级考试
路径:
Java 命名和目录接口
命名和目录概念
- 目录概念
JNDI 概述
- 命名包
- 目录和 LDAP 包
- 事件和服务提供者包
软件设置
- LDAP 设置
- Java 应用程序设置
命名和目录操作
- 命名异常
- 查找对象
- 列出上下文
- 添加,替换或移除绑定
- 重命名
- 创建和销毁子上下文
- 属性名称
- 读取属性
- 修改属性
- 添加,用属性替换绑定
- 搜索
- 基本搜索
- 过滤器
- 范围
- 结果计数
- 时限
- 故障排除提示
LDAP 用户的高级主题
- LDAP v3
- JNDI 作为 LDAP API
- LDAP 操作如何映射到 JNDI API
- LDAP 错误代码如何映射到 JNDI 异常
- 安全
- 对 LDAP 进行身份验证的模式
- 认证机制
- 匿名
- Simple(简单)
- SASL
- 摘要-MD5
- SSL 和自定义套接字
- 更多 LDAP 操作
- LDAP 比较
- 搜索结果
- LDAP 未经请求的通知
- 连接管理
- 创建
- 关闭
- 池
- 配置
- 常见问题
目录中的 Java 对象
- 存储和读取对象
- 可序列化对象
JDK 5.0 和 JDK 6 中的新功能
- 获取专有名称
- 标准 LDAP 控件
- 分页结果控制
- 排序控制
- 管理推荐控制
- 操纵 LdapName(专有名称)
- 操纵相对专有名称(RDN)
- 设置 Ldap 操作的超时
路径:
套接字直接协议
了解套接字直接协议
- 概述
- 创建 SDP 配置文件
- 启用 SDP 协议
- 调试 SDP
- SDP 的技术问题
- Solaris 和 Linux 支持
- 支持的 Java API
- 欲获得更多信息
路径:
用于 XML 绑定的 Java 体系结构
JAXB 简介
- JAXB 架构
- 代表 XML 内容
- 绑定 XML 模式
- 自定义生成的类和 Java 程序元素
- JAXB 示例
- 基本示例
- 自定义 JAXB 绑定
- Java-to-Schema 示例
- 欲获得更多信息