Java™教程![Duke拿着一个牌子](images/dukesign.GIF)
Java教程已经针对JDK 8编写。本页面描述的示例和实践不利用后续版本引入的改进,并可能使用不再可用的技术。
真正的大索引
在Java™教程中的所有内容页面的列表
Java技术现象
-
关于Java技术
-
Java技术能做什么?
-
Java技术将如何改变我的生活?
"Hello World!"应用程序
-
NetBeans IDE中的"Hello World!"
-
Microsoft Windows中的"Hello World!"
-
Solaris OS、Linux和Mac OS X中的"Hello World!"
仔细看一下"Hello World!"应用程序
-
问题和练习:入门
常见问题(及其解决方案)
面向对象编程概念
-
什么是对象?
-
什么是类?
-
什么是继承?
-
什么是接口?
-
什么是包?
-
问题和练习:面向对象编程概念
语言基础
-
变量
-
原始数据类型
-
数组
-
变量总结
-
问题和练习:变量
-
运算符
-
赋值、算术和一元运算符
-
相等、关系和条件运算符
-
位运算和位移运算符
-
运算符总结
-
问题和练习:运算符
-
表达式、语句和块
-
问题和练习:表达式、语句和块
-
控制流语句
-
if-then和if-then-else语句
-
switch语句
-
while和do-while语句
-
for语句
-
分支语句
-
控制流语句总结
-
问题和练习:控制流语句
类和对象
-
类
-
声明类
-
声明成员变量
-
定义方法
-
为类提供构造函数
-
向方法或构造函数传递信息
-
对象
-
创建对象
-
使用对象
-
更多关于类
-
从方法返回值
-
使用this关键字
-
控制类成员的访问权限
-
了解类成员
-
初始化字段
-
创建和使用类和对象的总结
-
问题和练习:类
-
问题和练习:对象
-
嵌套类
-
内部类示例
-
局部类
-
匿名类
-
Lambda表达式
-
方法引用
-
何时使用嵌套类、局部类、匿名类和Lambda表达式
-
问题和练习:嵌套类
-
枚举类型
-
问题和练习:枚举类型
注解
-
注解基础
-
声明注解类型
-
预定义注解类型
-
类型注解和可插拔类型系统
-
重复注解
-
问题和练习:注解
接口和继承
-
接口
-
定义接口
-
实现接口
-
使用接口作为类型
-
演化接口
-
默认方法
-
接口摘要
-
问题和练习:接口
-
继承
-
多重继承的状态、实现和类型
-
重写和隐藏方法
-
多态
-
隐藏字段
-
使用关键字super
-
Object作为超类
-
编写final类和方法
-
抽象方法和类
-
继承摘要
-
问题和练习:继承
数字和字符串
-
数字
-
数字类
-
格式化数字的打印输出
-
超出基本算术
-
数字总结
-
问题和练习:数字
-
字符
-
字符串
-
数字和字符串之间的转换
-
操作字符串中的字符
-
比较字符串和字符串的部分
-
StringBuilder类
-
字符和字符串总结
-
自动装箱和拆箱
-
问题和练习:字符和字符串
泛型(更新)
-
为什么使用泛型?
-
泛型类型
-
原始类型
-
泛型方法
-
有界类型参数
-
泛型方法和有界类型参数
-
泛型、继承和子类型
-
类型推断
-
通配符
-
上界通配符
-
无界通配符
-
下界通配符
-
通配符和子类型
-
通配符捕获和辅助方法
-
通配符使用指南
-
类型擦除
-
泛型类型的擦除
-
泛型方法的擦除
-
类型擦除和桥接方法的影响
-
非可验证类型
-
对泛型的限制
-
问题和练习:泛型
包
-
创建和使用包
-
创建包
-
命名包
-
使用包成员
-
管理源文件和类文件
-
创建和使用包总结
-
问题和练习:创建和使用包
异常
-
什么是异常?
-
捕获或声明要求
-
捕获和处理异常
-
try代码块
-
catch代码块
-
finally代码块
-
try-with-resources语句
-
总结
-
指定方法抛出的异常
-
如何抛出异常
-
链式异常
-
创建异常类
-
未检查异常 - 争议
-
异常的优点
-
总结
-
问题和练习
基本输入/输出
-
输入/输出流
-
字节流
-
字符流
-
缓冲流
-
扫描和格式化
-
扫描
-
格式化
-
从命令行进行输入/输出
-
数据流
-
对象流
-
文件输入/输出(使用NIO.2)
-
什么是路径?(以及其他文件系统信息)
-
路径类
-
路径操作
-
文件操作
-
检查文件或目录
-
删除文件或目录
-
复制文件或目录
-
移动文件或目录
-
管理元数据(文件和文件存储属性)
-
读取、写入和创建文件
-
随机访问文件
-
创建和读取目录
-
链接,符号链接或其他
-
遍历文件树
-
查找文件
-
监视目录变化
-
其他有用的方法
-
旧版文件输入/输出代码
-
总结
-
问题和练习:基本输入/输出
并发
-
进程和线程
-
线程对象
-
定义和启动线程
-
使用Sleep暂停执行
-
中断
-
合并
-
SimpleThreads示例
-
同步
-
线程干扰
-
内存一致性错误
-
同步方法
-
内部锁和同步
-
原子访问
-
存活性
-
死锁
-
饥饿和活锁
-
保护块
-
不可变对象
-
同步类示例
-
定义不可变对象的策略
-
高级并发对象
-
锁对象
-
执行器
-
执行器接口
-
线程池
-
Fork/Join
-
并发集合
-
原子变量
-
并发随机数
-
进一步阅读
-
问题和练习:并发
平台环境
-
配置工具
-
属性
-
命令行参数
-
环境变量
-
其他配置工具
-
系统工具
-
命令行I/O对象
-
系统属性
-
安全管理器
-
System类中的其他方法
-
路径和类路径
-
问题和练习:平台环境
正则表达式
-
介绍
-
测试工具
-
字符串字面值
-
字符类
-
预定义字符类
-
量词
-
捕获组
-
边界匹配器
-
Pattern类的方法
-
Matcher类的方法
-
PatternSyntaxException类的方法
-
Unicode支持
-
附加资源
-
问题和练习:正则表达式
Java小程序
-
开始使用小程序
-
定义小程序子类
-
里程碑方法
-
小程序的生命周期
-
小程序的执行环境
-
开发一个小程序
-
部署一个小程序
-
使用小程序标签进行部署
-
更多小程序功能
-
查找和加载数据文件
-
定义和使用小程序参数
-
显示短状态字符串
-
在浏览器中显示文档
-
从小程序调用JavaScript代码
-
从JavaScript代码调用小程序方法
-
使用事件处理程序处理初始化状态
-
操作小程序网页的DOM
-
将诊断写入标准输出和错误流
-
开发可拖动小程序
-
与其他小程序通信
-
与服务器端应用程序交互
-
网络客户端小程序示例
-
小程序的能力和限制
-
解决常见小程序问题
-
问题和练习:小程序
Java Web Start
-
开发Java Web Start应用程序
-
检索资源
-
部署Java Web Start应用程序
-
设置Web服务器
-
运行Java Web Start应用程序
-
Java Web Start和安全性
-
常见的Java Web Start问题
-
问题和练习:Java Web Start
扩展Java富互联网应用程序
-
设置受信任的参数和安全属性
-
系统属性
-
JNLP API
-
使用JNLP API访问客户端
-
Cookies
-
访问Cookies
-
富互联网应用程序中的安全性
-
保护富互联网应用程序的指南
-
问题和练习:扩展Java富互联网应用程序
深入部署
-
用户接受富互联网应用程序(RIA)
-
部署工具包
-
部署小程序
-
在Applet标签中嵌入JNLP文件
-
部署Java Web Start应用程序
-
更改启动按钮
-
无需Codebase部署
-
检查客户端JRE软件版本
-
Java网络启动协议
-
JNLP文件的结构
-
部署最佳实践
-
减少下载时间
-
避免不必要的更新检查
-
确保JRE软件的存在
-
问题和练习:深入部署
部署自包含应用程序
-
自包含应用程序打包的先决条件
-
转换现有应用程序
-
使用文件关联
-
添加外部库
-
提供默认参数
-
为所有平台使用通用构建文件
-
使用多个入口点
-
问题和练习:自包含应用程序
将程序打包为JAR文件
-
使用JAR文件:基础知识
-
创建JAR文件
-
查看JAR文件内容
-
提取JAR文件内容
-
更新JAR文件
-
运行JAR打包的软件
-
使用清单文件:基础知识
-
理解默认清单
-
修改清单文件
-
设置应用程序的入口点
-
向JAR文件的类路径中添加类
-
设置包版本信息
-
封装JAR文件中的包
-
使用清单属性增强安全性
-
签名和验证JAR文件
-
理解签名和验证
-
签名JAR文件
-
验证已签名的JAR文件
-
使用与JAR相关的API
-
JarClassLoader类
-
JarRunner类
-
问题和练习:JAR
开始使用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特性
-
如何与Desktop类集成
-
如何创建半透明和自定义形状的窗口
-
如何使用JLayer类装饰组件
-
如何使用Actions
-
如何使用Swing计时器
-
如何支持辅助技术
-
如何使用焦点子系统
-
如何使用按键绑定
-
如何在对话框中使用模态
-
如何打印表格
-
如何打印文本
-
如何创建启动画面
-
如何使用系统托盘
-
使用其他Swing特性解决常见问题
在容器中布局组件
-
布局管理器的可视化指南
-
使用布局管理器
-
布局管理器的工作原理
-
如何使用不同的布局管理器
-
如何使用边界布局(BorderLayout)
-
如何使用盒式布局(BoxLayout)
-
如何使用卡片布局(CardLayout)
-
如何使用流式布局(FlowLayout)
-
如何使用网格包布局(GridBagLayout)
-
如何使用网格布局(GridLayout)
-
如何使用组布局(GroupLayout)
-
一个组布局的示例
-
如何使用弹簧布局(SpringLayout)
-
创建自定义布局管理器
-
不使用布局管理器(绝对定位)
-
解决常见布局问题
-
问题和练习:在容器中布局组件
修改外观和感觉
-
如何设置外观和感觉
-
合成外观和感觉
-
一个合成外观和感觉的示例
-
Nimbus外观和感觉
-
改变Nimbus的外观
-
调整组件的大小
-
改变颜色主题
拖放和数据传输
-
DnD简介
-
默认DnD支持
-
演示 - BasicDnD
-
TransferHandler类
-
导出方法
-
导入方法
-
TransferSupport类
-
设置放置模式
-
演示 - DropDemo
-
选择放置操作
-
演示 - ChooseDropAction
-
显示放置位置
-
位置敏感放置
-
演示 - LocationSensitiveDemo
-
空表格放置
-
放置位置渲染
-
顶层放置
-
添加剪切、复制和粘贴(CCP)
-
文本组件中的CCP
-
非文本组件中的CCP
-
使用和创建DataFlavor
-
将所有内容整合在一起 - DnD和CCP
-
解决常见的数据传输问题
编写事件监听器
-
事件监听器简介
-
编写事件监听器的一般信息
-
Swing组件支持的监听器
-
实现常见事件的监听器
-
如何编写Action监听器
-
如何编写Caret监听器
-
如何编写Change监听器
-
如何编写Component监听器
-
如何编写Container监听器
-
如何编写Document监听器
-
如何编写Focus监听器
-
如何编写Internal Frame监听器
-
如何编写Item监听器
-
如何编写Key监听器
-
如何编写List Data监听器
-
如何编写List Selection监听器
-
如何编写Mouse监听器
-
如何编写Mouse-Motion监听器
-
如何编写Mouse-Wheel监听器
-
如何编写Property Change监听器
-
如何编写Table Model监听器
-
如何编写Tree Expansion监听器
-
如何编写Tree Model监听器
-
如何编写Tree Selection监听器
-
如何编写Tree-Will-Expand监听器
-
如何编写Undoable Edit监听器
-
如何编写Window监听器
-
监听器API表格
-
解决常见事件处理问题
-
问题和练习:编写事件监听器
执行自定义绘制
-
创建演示应用程序(第1步)
-
创建演示应用程序(第2步)
-
创建演示应用程序(第3步)
-
完善设计
-
深入了解绘制机制
-
总结
-
解决常见绘制问题
-
问题和练习:执行自定义绘制
集合框架简介
接口
-
集合接口
-
Set接口
-
List接口
-
Queue接口
-
Deque接口
-
Map接口
-
对象排序
-
SortedSet接口
-
SortedMap接口
-
接口总结
-
问题与练习:接口
聚合操作
-
归约
-
并行处理
-
问题与练习:聚合操作
实现
-
Set的实现
-
List的实现
-
Map的实现
-
Queue的实现
-
Deque的实现
-
Wrapper的实现
-
Convenience的实现
-
实现总结
-
问题与练习:实现
算法
自定义集合实现
互操作性
-
兼容性
-
API设计
日期时间概述
-
日期时间设计原则
-
日期时间包
-
方法命名约定
标准日历
-
概述
-
星期几和月份枚举
-
日期类
-
日期和时间类
-
时区和偏移类
-
Instant 类
-
解析和格式化
-
Temporal 包
-
Temporal Adjuster
-
Temporal Query
-
周期和持续时间
-
时钟
-
非ISO日期转换
-
传统日期时间代码
-
总结
-
问题和练习: 日期时间 API
介绍
-
快速示例
-
国际化之前
-
国际化之后
-
运行示例程序
-
国际化示例程序
-
检查清单
设置区域设置
-
创建区域设置
-
BCP 47扩展
-
识别可用区域设置
-
语言标签过滤和查找
-
区域设置的范围
-
区域设置敏感服务SPI
隔离区域特定数据
-
关于ResourceBundle类
-
准备使用ResourceBundle
-
使用Properties文件支持ResourceBundle
-
使用ListResourceBundle
-
自定义资源包加载
格式化
-
数字和货币
-
使用预定义格式
-
自定义格式
-
日期和时间
-
使用预定义格式
-
自定义格式
-
更改日期格式符号
-
消息
-
处理复合消息
-
处理复数形式
处理文本
-
检查字符属性
-
比较字符串
-
执行与语言环境无关的比较
-
自定义排序规则
-
提高排序性能
-
Unicode
-
术语
-
代理字符作为补充字符
-
字符和字符串 API
-
示例用法
-
设计注意事项
-
更多信息
-
检测文本边界
-
关于 BreakIterator 类
-
字符边界
-
词边界
-
句子边界
-
行边界
-
将拉丁数字转换为其他 Unicode 数字
-
转换非 Unicode 文本
-
字节编码和字符串
-
字符和字节流
-
规范化文本
-
使用 JTextComponent 类处理双向文本
国际化网络资源
-
国际化域名
国际化服务提供者
-
将自定义资源包安装为扩展
Java 2D API 概念概述
-
坐标
-
Java 2D 渲染
-
几何基元
-
文本
-
图像
-
打印
开始使用图形
处理几何图形
-
绘制几何基元
-
绘制任意形状
-
描边和填充图形基元
使用文本 API
-
字体概念
-
文本布局概念
-
物理和逻辑字体
-
测量文本
-
高级文本显示
-
使用渲染提示显示抗锯齿文本
-
使用文本属性设置文本样式
-
绘制多行文本
-
处理双向文本
处理图像
-
读取/加载图像
-
绘制图像
-
创建并绘制图像
-
写入/保存图像
打印
-
一个基本的打印程序
-
使用打印设置对话框
-
打印多页文档
-
使用打印服务和属性
-
打印用户界面的内容
-
Swing 组件中的打印支持
Java2D 的高级主题
-
变换形状、文本和图像
-
裁剪绘图区域
-
合成图形
-
控制渲染质量
-
使用几何基元构建复杂形状
-
支持用户交互
-
Sampled包概述
-
访问音频系统资源
-
播放音频
-
捕获音频
-
使用控件处理音频
-
使用文件和格式转换器
-
MIDI包概述
-
访问MIDI系统资源
-
传输和接收MIDI消息
-
序列器简介
-
使用序列器方法
-
使用高级序列器功能
-
合成声音
-
服务提供者接口介绍
-
提供采样音频服务
-
提供MIDI服务
快速入门
-
创建项目
-
按钮是一个Bean
-
连接应用程序
-
使用第三方Bean
编写JavaBeans组件
-
属性
-
方法
-
事件
-
使用BeanInfo
高级JavaBeans主题
-
Bean持久性
-
长期持久性
-
Bean定制
JDBC简介
-
JDBC架构
-
关系数据库概述
JDBC基础
-
入门指南
-
使用JDBC处理SQL语句
-
建立连接
-
使用DataSource对象连接
-
处理SQLException
-
设置表
-
从结果集中检索和修改值
-
使用预编译语句
-
使用事务
-
使用RowSet对象
-
使用JdbcRowSet对象
-
使用CachedRowSet对象
-
使用JoinRowSet对象
-
使用FilteredRowSet对象
-
使用WebRowSet对象
-
使用高级数据类型
-
使用大对象
-
使用SQLXML对象
-
使用Array对象
-
使用DISTINCT数据类型
-
使用Structured对象
-
使用自定义类型映射
-
使用Datalink对象
-
使用RowId对象
-
使用存储过程
-
在GUI API中使用JDBC
JMX技术概述
-
为什么使用JMX技术?
-
JMX技术架构
-
监控和管理Java虚拟机
介绍MBeans
-
标准MBeans
-
MXBeans
通知
远程管理
-
通过JConsole公开资源以进行远程管理
-
创建自定义JMX客户端
JAXP简介
-
包的概述
-
简单API for XML (SAX)
-
文档对象模型 (DOM) API
-
可扩展样式表语言转换 (XSLT) API
-
流API for XML (StAX)
-
查找JAXP示例程序
-
接下来该做什么?
简单API for XML (SAX)
-
何时使用SAX
-
使用SAX解析XML文件
-
实现SAX验证
-
处理词法事件
-
使用DTDHandler和EntityResolver
-
更多信息
文档对象模型 (DOM)
-
何时使用DOM
-
将XML数据读入DOM
-
使用XML模式验证
-
更多信息
可扩展样式表语言转换 (XSLT)
-
介绍XSL、XSLT和XPath
-
XPath的工作原理
-
将DOM写入XML文件
-
从任意数据结构生成XML
-
使用XSLT转换XML数据
流API for XML (StAX)
-
为什么使用StAX?
-
StAX API
-
使用StAX
-
Oracle的流式XML解析器实现
-
示例代码
-
更多信息
JAXP 1.5和新属性
-
背景
-
外部资源
-
新属性
-
范围和顺序
-
与SecurityManager的关系
-
JDK中的属性设置
-
使用属性
-
错误处理
-
StAX
-
结论
-
参考资料
处理限制
-
处理限制定义
-
范围和顺序
-
使用限制
-
错误处理
-
StAX
-
示例
-
RMI应用程序概述
-
编写RMI服务器
-
设计远程接口
-
实现远程接口
-
创建客户端程序
-
编译和运行示例
-
编译示例程序
-
运行示例程序
安全功能概述
创建策略文件
-
设置策略文件以授予所需权限
-
启动策略工具
-
授予所需权限
-
保存策略文件
控制应用程序的快速导览
-
观察应用程序自由
-
了解如何限制应用程序
-
设置策略文件以授予所需权限
-
打开策略文件
-
授予所需权限
-
保存策略文件
-
查看策略文件效果
用于安全代码和文件交换的API和工具
签名代码并授予其权限
-
代码签名者的步骤
-
下载并尝试示例应用程序
-
创建包含类文件的JAR文件
-
生成密钥
-
签署JAR文件
-
导出公钥证书
-
代码接收者的步骤
-
观察受限应用程序
-
导入证书作为受信任的证书
-
设置策略文件以授予所需权限
-
启动策略工具
-
指定密钥库
-
添加具有SignedBy别名的策略条目
-
保存策略文件
-
查看策略文件效果
文件交换
-
合同发送者的步骤
-
创建包含合同的JAR文件
-
生成密钥
-
对JAR文件进行签名
-
导出公钥证书
-
合同接收者的步骤
-
将证书导入为受信任的证书
-
验证JAR文件的签名
生成和验证数字签名
-
生成数字签名
-
准备初始程序结构
-
生成公钥和私钥
-
对数据进行签名
-
将签名和公钥保存到文件中
-
编译和运行程序
-
验证数字签名
-
准备初始程序结构
-
输入并转换编码的公钥字节
-
输入签名字节
-
验证签名
-
编译和运行程序
-
弱点和替代方案
实现自己的权限
-
ExampleGame
-
高分类
-
高分权限类
-
示例策略文件
-
将所有内容组合在一起
-
高分开发者(Chris)的步骤
-
ExampleGame开发者(Terry)的步骤
-
运行ExampleGame的用户(Kim)的步骤
创建和使用扩展
-
已安装的扩展
-
下载扩展
-
了解扩展类加载
-
创建可扩展的应用程序
使扩展安全
-
为扩展设置权限
-
封装扩展中的包
类
-
获取类对象
-
检查类修饰符和类型
-
查找类成员
-
故障排除
成员
-
字段
-
获取字段类型
-
获取和解析字段修饰符
-
获取和设置字段值
-
故障排除
-
方法
-
获取方法类型信息
-
获取方法参数名称
-
获取和解析方法修饰符
-
调用方法
-
故障排除
-
构造函数
-
查找构造函数
-
获取和解析构造函数修饰符
-
创建新的类实例
-
故障排除
数组和枚举类型
-
数组
-
识别数组类型
-
创建新的数组
-
获取和设置数组及其组件
-
故障排除
-
枚举类型
-
检查枚举
-
获取和设置带有枚举类型的字段
-
故障排除
网络概述
-
你可能已经了解的Java网络知识
-
网络基础知识
使用URL
-
什么是URL?
-
创建URL
-
解析URL
-
直接从URL读取
-
连接到URL
-
从URLConnection读取和写入
关于Socket的一切
-
什么是Socket?
-
从Socket读取和写入
-
编写Socket服务器端
关于Datagram的一切
-
什么是Datagram?
-
编写Datagram客户端和服务器端
-
向多个接收者广播
编程访问网络参数
-
什么是网络接口?
-
检索网络接口
-
列出网络接口地址
-
网络接口参数
处理Cookie
-
使用Cookie进行HTTP状态管理
-
CookieHandler回调机制
-
默认CookieManager
-
自定义CookieManager
泛型
-
介绍
-
定义简单泛型
-
泛型和子类型
-
通配符
-
泛型方法
-
与遗留代码互操作
-
细节
-
类字面值作为运行时类型标记
-
更多通配符的应用
-
将遗留代码转换为使用泛型
-
致谢
全屏独占模式 API
-
全屏独占模式
-
显示模式
-
被动渲染 vs 主动渲染
-
双缓冲和页面翻转
-
BufferStrategy 和 BufferCapabilities
-
示例
为 Java 程序员语言认证做准备
命名和目录概念
-
目录概念
JNDI概述
-
命名包
-
目录和LDAP包
-
事件和服务提供者包
软件设置
-
LDAP设置
-
Java应用程序设置
命名和目录操作
-
命名异常
-
查找对象
-
列出上下文
-
添加、替换或删除绑定
-
重命名
-
创建和销毁子上下文
-
属性名称
-
读取属性
-
修改属性
-
使用属性添加、替换绑定
-
搜索
-
基本搜索
-
过滤器
-
范围
-
结果计数
-
时间限制
-
故障排除技巧
LDAP用户的高级主题
-
LDAP v3
-
JNDI作为LDAP API
-
LDAP操作如何映射到JNDI API
-
LDAP错误代码如何映射到JNDI异常
-
安全性
-
LDAP身份验证模式
-
身份验证机制
-
匿名
-
简单
-
SASL
-
Digest-MD5
-
SSL和自定义套接字
-
更多LDAP操作
-
LDAP比较
-
搜索结果
-
LDAP非请求通知
-
连接管理
-
创建
-
关闭
-
连接池
-
配置
-
常见问题
目录中的Java对象
-
存储和读取对象
-
可序列化对象
JDK 5.0和JDK 6中的新功能
-
检索专有名称
-
标准LDAP控件
-
分页结果控件
-
排序控件
-
管理转发控件
-
操作LdapName(专有名称)
-
操作相对专有名称(RDN)
-
设置Ldap操作的超时时间
理解Sockets Direct Protocol
-
概述
-
创建SDP配置文件
-
启用SDP协议
-
调试SDP
-
SDP的技术问题
-
Solaris和Linux支持
-
支持的Java API
-
更多信息
JAXB简介
-
JAXB架构
-
表示XML内容
-
绑定XML模式
-
自定义生成的类和Java程序元素
-
JAXB示例
-
基本示例
-
自定义JAXB绑定
-
Java到模式的示例
-
更多信息