展开全部

主编推荐语

本书系统地讲解了Java开发人员需要掌握的核心知识。

内容简介

本书讲解了依赖注入(IoC/DI)容器、面向切面编程(AOP)、对象关系映射(ORM)框架的实现原理,同时还给出了并发编程领域中经常用到的线程池的实现。涵盖了从Java5到Java11的所有重要新特性,不仅适合初学Java编程的读者,也适合有一定经验的读者,甚至对于正在从事Java开发工作的读者也适用。

目录

  • 版权信息
  • 内容简介
  • 前言
  • 第1章 Java初窥
  • 1.1 Java的起源
  • 1.2 Java能做什么
  • 1.3 相关概念
  • 1.3.1 JDK
  • 1.3.2 Java家族的三个成员
  • 1.3.3 Java 1、Java 2和Java 5
  • 1.3.4 JRE
  • 1.4 安装JDK
  • 1.4.1 下载JDK 11(Java SE 11)
  • 1.4.2 安装JDK
  • 1.4.3 下载帮助文档
  • 1.5 Java的特性
  • 1.5.1 简单
  • 1.5.2 面向对象
  • 1.5.3 健壮
  • 1.5.4 安全
  • 1.5.5 结构中立
  • 1.5.6 可移植
  • 1.5.7 高性能
  • 1.5.8 解释执行
  • 1.5.9 平台无关
  • 1.5.10 多线程
  • 1.5.11 动态
  • 1.6 Java跨平台的原理
  • 1.6.1 Java源文件的编译过程
  • 1.6.2 Java解释器运行机制
  • 1.6.3 Java字节码的执行方式
  • 1.6.4 理解JVM
  • 1.7 第一个程序
  • 1.7.1 了解JDK
  • 1.7.2 编写第一个Java程序
  • 1.8 扫清Java征途中的两块绊脚石
  • 1.8.1 有用的PATH
  • 1.8.2 难缠的CLASSPATH
  • 1.9 交互式编程环境JShell
  • 1.10 为Java程序打包
  • 1.10.1 JAR文件
  • 1.10.2 将字节码文件打包到JAR包中
  • 1.10.3 将目录中所有文件打包到JAR文件中
  • 1.10.4 清单文件
  • 1.11 总结
  • 1.12 实战练习
  • 第2章 初识Java语言
  • 2.1 标识符
  • 2.2 数据类型
  • 2.2.1 整数类型
  • 2.2.2 浮点类型
  • 2.2.3 字符(char)型
  • 2.2.4 布尔(boolean)型
  • 2.2.5 String类型
  • 2.3 变量和字面常量
  • 2.3.1 变量
  • 2.3.2 字面常量
  • 2.4 类型转换的奥秘
  • 2.5 运算符
  • 2.5.1 赋值运算符
  • 2.5.2 自增和自减运算符
  • 2.5.3 算术运算符
  • 2.5.4 关系运算符
  • 2.5.5 布尔运算符
  • 2.5.6 位运算符
  • 2.5.7 移位运算符
  • 2.5.8 一元和二元运算符
  • 2.5.9 三元运算符
  • 2.5.10 优先级
  • 2.6 表达式与语句
  • 2.7 程序结构
  • 2.7.1 分支语句
  • 2.7.2 循环语句
  • 2.8 数组
  • 2.8.1 数组类型与声明数组
  • 2.8.2 创建数组
  • 2.8.3 使用数组
  • 2.8.4 匿名数组
  • 2.8.5 多维数组
  • 2.8.6 数组的初始值和越界
  • 2.9 分隔符
  • 2.10 注释
  • 2.10.1 传统注释
  • 2.10.2 JavaDoc注释
  • 2.11 Java中的关键字
  • 2.12 总结
  • 2.13 实战练习
  • 第3章 进入对象的世界
  • 3.1 面向对象思想
  • 3.2 对象的状态和行为
  • 3.2.1 对象都有一组固定的行为
  • 3.2.2 注意思维习惯
  • 3.3 面向对象编程的难点
  • 3.4 Java的类与对象
  • 3.5 字段(field)与方法
  • 3.5.1 字段
  • 3.5.2 方法
  • 3.5.3 方法的参数与返回值
  • 3.6 构造方法与new关键字
  • 3.7 方法重载
  • 3.8 特殊变量this
  • 3.9 关键字static
  • 3.9.1 静态字段
  • 3.9.2 静态方法
  • 3.9.3 static语句块
  • 3.10 常量
  • 3.11 枚举(enum)
  • 3.11.1 原始的枚举实现
  • 3.11.2 枚举类型
  • 3.11.3 枚举值的比较
  • 3.11.4 自定义枚举值
  • 3.12 总结
  • 3.13 实战练习
  • 第4章 高级面向对象编程
  • 4.1 继承
  • 4.2 方法的覆盖(override)
  • 4.3 多态(polymorphism)
  • 4.3.1 何为多态
  • 4.3.2 多态的实际应用
  • 4.3.3 Java编译器如何实现多态
  • 4.3.4 类型转换
  • 4.3.5 协变返回类型
  • 4.3.6 在构造方法中调用被覆盖的方法
  • 4.4 特殊变量super
  • 4.4.1 访问父类被子类覆盖的方法或隐藏的变量
  • 4.4.2 调用父类构造方法
  • 4.5 封装与private
  • 4.6 对外发布的接口——public
  • 4.7 再谈final
  • 4.7.1 final类
  • 4.7.2 final方法
  • 4.7.3 final参数
  • 4.8 对象的销毁
  • 4.9 面向对象的四个基本特性
  • 4.10 总结
  • 4.11 实战练习
  • 第5章 包和访问控制
  • 5.1 在包中的类
  • 5.2 导入类
  • 5.3 静态导入
  • 5.4 静态导入枚举类型
  • 5.5 访问控制
  • 5.5.1 类的访问说明符
  • 5.5.2 类成员的访问说明符
  • 5.6 总结
  • 5.7 实战练习
  • 第6章 抽象类与接口
  • 6.1 抽象方法和抽象类
  • 6.2 接口
  • 6.3 接口中的数据成员
  • 6.4 接口的继承与实现
  • 6.5 接口的应用
  • 6.6 深入接口——通信双方的协议
  • 6.7 接口的默认方法和静态方法
  • 6.7.1 默认方法
  • 6.7.2 静态方法
  • 6.8 接口的私有方法
  • 6.9 总结
  • 6.10 实战练习
  • 第7章 内部类(Inner Class)
  • 7.1 创建内部类
  • 7.2 访问外部类
  • 7.3 内部类与接口
  • 7.4 局部内部类
  • 7.5 匿名内部类
  • 7.5.1 创建匿名内部类
  • 7.5.2 匿名内部类的构造方法
  • 7.6 静态内部类
  • 7.7 内部类的继承与覆盖
  • 7.7.1 内部类的继承
  • 7.7.2 内部类的覆盖
  • 7.8 内部类规则总结
  • 7.9 回调与事件机制
  • 7.9.1 回调(callback)
  • 7.9.2 事件(event)
  • 7.10 总结
  • 7.11 实战练习
  • 第8章 异常处理
  • 8.1 什么是异常
  • 8.2 捕获异常
  • 8.3 使用finally进行清理
  • 8.4 抛出异常与声明异常
  • 8.5 RuntimeException
  • 8.6 创建自己的异常体系结构
  • 8.7 try-with-resources
  • 8.7.1 自动关闭资源
  • 8.7.2 声明多个资源
  • 8.7.3 catch多个异常
  • 8.7.4 使用更具包容性的类型检查重新抛出异常
  • 8.8 总结
  • 8.9 实战练习
  • 第9章 深入字符串
  • 9.1 String类
  • 9.2 ==运算符与equals方法
  • 9.3 compareTo方法
  • 9.4 字符串拼接
  • 9.5 操作字符串
  • 9.5.1 获取字符串的长度
  • 9.5.2 查找字符或字符串
  • 9.5.3 判断字符串的开始与结尾
  • 9.5.4 获取指定索引位置的字符
  • 9.5.5 截取子字符串
  • 9.5.6 分割字符串
  • 9.5.7 替换字符或字符串
  • 9.5.8 合并字符串
  • 9.5.9 重复字符串
  • 9.5.10 大小写转换
  • 9.5.11 去除字符串首尾空白
  • 9.5.12 判断字符串是否为空
  • 9.5.13 提取字符串的行流
  • 9.5.14 与字节数组相互转换
  • 9.6 StringBuffer类和StringBuilder类
  • 9.7 格式化输出
  • 9.7.1 格式说明符
  • 9.7.2 参数索引
  • 9.7.3 格式说明字符
  • 9.7.4 宽度和精度
  • 9.7.5 标志字符
  • 9.7.6 生成格式化的String对象
  • 9.8 正则表达式
  • 9.8.1 正则表达式的优点
  • 9.8.2 一切从模式开始
  • 9.8.3 创建正则表达式
  • 9.8.4 量词
  • 9.8.5 String类的正则表达式方法
  • 9.8.6 Pattern和Matcher
  • 9.8.7 邮件地址验证
  • 9.8.8 获取组匹配的内容
  • 9.8.9 替换字符串
  • 9.9 总结
  • 9.10 实战练习
  • 第10章 Java应用
  • 10.1 再论引用类型
  • 10.1.1 引用类型——数组
  • 10.1.2 方法传参
  • 10.2 操作数组
  • 10.2.1 数组的复制
  • 10.2.2 数组的排序
  • 10.2.3 搜索数组中的元素
  • 10.2.4 填充数组
  • 10.3 基本数据类型与封装类
  • 10.3.1 基本数据类型与封装类对象的互相转换
  • 10.3.2 封装类对象与字符串的互相转换
  • 10.3.3 基本数据类型与字符串的互相转换
  • 10.3.4 自动装箱与拆箱
  • 10.4 对象的克隆
  • 10.5 国际化与本地化
  • 10.5.1 Locale
  • 10.5.2 资源包
  • 10.5.3 消息格式化
  • 10.6 总结
  • 10.7 实战练习
  • 第11章 泛型
  • 11.1 为什么需要泛型
  • 11.2 泛型与基本数据类型
  • 11.3 泛型类中的数组
  • 11.4 元组
  • 11.5 泛型接口
  • 11.5.1 一个简单的泛型接口
  • 11.5.2 匿名内部类实现泛型接口
  • 11.5.3 map机制的实现
  • 11.6 泛型方法
  • 11.6.1 简单的泛型方法
  • 11.6.2 完善映射机制的实现
  • 11.7 通配符类型
  • 11.7.1 通配符的子类型限定
  • 11.7.2 通配符的超类型限定
  • 11.8 类型参数的限定
  • 11.9 深入泛型机制
  • 11.10 泛型的一些问题
  • 11.10.1 接口的二次实现
  • 11.10.2 方法重载
  • 11.10.3 泛型类型的实例化
  • 11.10.4 异常
  • 11.11 使用泛型的限制
  • 11.12 类型参数的命名约定
  • 11.13 总结
  • 11.14 实战练习
  • 第12章 Lambda表达式
  • 12.1 理解Lambda表达式
  • 12.2 Lambda表达式的语法
  • 12.3 函数式接口
  • 12.4 内置函数式接口
  • 12.5 方法引用
  • 12.6 构造方法引用
  • 12.7 数组引用
  • 12.8 总结
  • 12.9 实战练习
  • 第13章 集合类
  • 13.1 集合框架中的接口与实现类
  • 13.1.1 集合框架中的接口
  • 13.1.2 集合框架中的实现类
  • 13.1.3 Collection类型的集合
  • 13.1.4 Map类型的集合
  • 13.2 迭代
  • 13.2.1 Iterator接口
  • 13.2.2 迭代器与“for each”循环
  • 13.2.3 新增的forEach方法
  • 13.2.4 ListIterator接口
  • 13.2.5 迭代与回调
  • 13.3 数据结构简介
  • 13.3.1 链表
  • 13.3.2 栈
  • 13.3.3 队列
  • 13.4 List
  • 13.4.1 ArrayList
  • 13.4.2 LinkedList
  • 13.4.3 List集合类的性能
  • 13.5 Set
  • 13.5.1 HashSet
  • 13.5.2 TreeSet
  • 13.5.3 LinkedHashSet
  • 13.5.4 Set集合类的性能
  • 13.6 Queue
  • 13.6.1 Queue接口
  • 13.6.2 PriorityQueue类
  • 13.6.3 Deque接口
  • 13.7 Collections类
  • 13.7.1 排序集合中的元素
  • 13.7.2 获取最大和最小元素
  • 13.7.3 在集合中搜索
  • 13.7.4 获取包装器集合
  • 13.8 再探Comparator接口
  • 13.9 深入Map类型
  • 13.9.1 Map接口
  • 13.9.2 Map的工作原理
  • 13.9.3 HashMap
  • 13.9.4 TreeMap
  • 13.9.5 LinkedHashMap
  • 13.9.6 Map性能测试
  • 13.10 遗留的集合
  • 13.10.1 Enumeration接口
  • 13.10.2 Vector类
  • 13.10.3 Stack类
  • 13.10.4 Hashtable类
  • 13.10.5 Properties类
  • 13.10.6 BitSet类
  • 13.11 集合工厂方法
  • 13.11.1 of方法
  • 13.11.2 copyOf方法
  • 13.12 总结
  • 13.13 实战练习
  • 第14章 Stream
  • 14.1 什么是Stream
  • 14.2 创建流
  • 14.3 并行流与串行流
  • 14.4 有序流和无序流
  • 14.5 中间操作
  • 14.5.1 筛选和截断
  • 14.5.2 映射
  • 14.5.3 排序
  • 14.5.4 peek
  • 14.6 终端操作
  • 14.6.1 遍历
  • 14.6.2 查找与匹配
  • 14.6.3 最大/最小与计数
  • 14.6.4 收集统计信息
  • 14.6.5 reduce
  • 14.6.6 collect
  • 14.7 并行流的性能
  • 14.8 总结
  • 14.9 实战练习
  • 第15章 Class类与反射API
  • 15.1 Class<T>类
  • 15.2 获取类型信息
  • 15.2.1 获取方法和字段信息
  • 15.2.2 获取基类和接口信息
  • 15.2.3 获取枚举信息
  • 15.2.4 获取泛型信息
  • 15.2.5 获取注解信息
  • 15.3 检测类型
  • 15.4 使用Class和反射创建类的对象
  • 15.5 使用反射调用对象的方法
  • 15.6 使用反射修改对象的字段
  • 15.7 依赖注入容器
  • 15.8 动态代理
  • 15.9 ClassLoader
  • 15.9.1 类加载器的分类
  • 15.9.2 类加载器的加载机制
  • 15.9.3 自定义类加载器
  • 15.10 适可而止
  • 15.11 方法句柄
  • 15.12 服务加载器
  • 15.13 总结
  • 15.14 实战练习
  • 第16章 注解(Annotation)
  • 16.1 预定义的注解
  • 16.1.1 @Override
  • 16.1.2 @Deprecated
  • 16.1.3 @SuppressWarnings
  • 16.1.4 @SafeVarargs
  • 16.1.5 @FunctionalInterface
  • 16.2 自定义注解
  • 16.3 元注解
  • 16.3.1 @Documented
  • 16.3.2 @Retention
  • 16.3.3 @Target
  • 16.3.4 @Inherited
  • 16.3.5 @Repeatable
  • 16.4 注解与反射
  • 16.5 编写注解处理器
  • 16.5.1 依赖注入容器的注解实现
  • 16.5.2 使用注解生成数据库表
  • 16.6 总结
  • 16.7 实战练习
  • 第17章 多线程
  • 17.1 基本概念
  • 17.1.1 程序和进程
  • 17.1.2 线程
  • 17.2 Java对多线程的支持
  • 17.3 Java线程
  • 17.3.1 Thread类
  • 17.3.2 创建任务
  • 17.3.3 让步
  • 17.3.4 休眠
  • 17.3.5 优先级
  • 17.3.6 加入一个线程
  • 17.3.7 捕获线程的异常
  • 17.3.8 后台线程
  • 17.3.9 线程组
  • 17.3.10 线程的状态
  • 17.4 线程同步
  • 17.4.1 错误地访问共享资源
  • 17.4.2 同步语句块
  • 17.4.3 同步方法
  • 17.4.4 死锁
  • 17.5 线程本地存储
  • 17.5.1 使用ThreadLocal类
  • 17.5.2 ThreadLocal的实现原理
  • 17.6 生产者与消费者
  • 17.7 线程的终止
  • 17.7.1 取消一个任务
  • 17.7.2 在阻塞中中止
  • 17.7.3 注意清理
  • 17.8 线程池
  • 17.9 总结
  • 17.10 实战练习
  • 第18章 Java常用工具类
  • 18.1 java.lang.Math类
  • 18.2 随机数
  • 18.2.1 Math.random方法
  • 18.2.2 Random类
  • 18.2.3 ThreadLocalRandom类
  • 18.3 大数字运算
  • 18.3.1 BigInteger
  • 18.3.2 BigDecimal
  • 18.4 日期时间工具
  • 18.4.1 Date类
  • 18.4.2 DateFormat类
  • 18.4.3 SimpleDateFormat类
  • 18.4.4 Calendar类
  • 18.5 Java 8新增的日期/时间API
  • 18.5.1 新的日期/时间类
  • 18.5.2 构造日期/时间对象
  • 18.5.3 格式化和解析日期/时间字符串
  • 18.5.4 操作日历字段
  • 18.5.5 计算时间间隔
  • 18.5.6 使用Instant计算某项操作花费的时间
  • 18.5.7 判断闰年
  • 18.5.8 与Date和Calendar的相互转换
  • 18.6 Optional类
  • 18.6.1 创建Optional类的实例
  • 18.6.2 判断Optional的值是否存在
  • 18.6.3 获取Optional的值
  • 18.6.4 过滤与映射
  • 18.6.5 得到Stream对象
  • 18.6.6 为什么要使用Optional
  • 18.6.7 OptionalInt、OptionalLong和OptionalDouble
  • 18.7 Base64编解码
  • 18.8 Timer类
  • 18.9 Runtime类与单例设计模式
  • 18.10 总结
  • 18.11 实战练习
  • 第19章 Java I/O操作
  • 19.1 File类
  • 19.1.1 分隔符
  • 19.1.2 创建文件夹
  • 19.1.3 文件操作
  • 19.1.4 搜索目录中的文件
  • 19.1.5 移动文件
  • 19.1.6 临时文件
  • 19.2 流式I/O
  • 19.3 输入/输出流
  • 19.3.1 InputStream
  • 19.3.2 OutputStream
  • 19.3.3 字节数组输入/输出流
  • 19.3.4 文件输入/输出流
  • 19.3.5 过滤流
  • 19.3.6 缓冲的输入/输出流
  • 19.3.7 数据输入/输出流
  • 19.3.8 管道流
  • 19.3.9 复制文件
  • 19.4 Java I/O库的设计原则
  • 19.5 Reader和Writer
  • 19.6 InputStreamReader和OutputStreamWriter
  • 19.7 字符集与中文乱码问题
  • 19.7.1 字符集
  • 19.7.2 对乱码产生过程的分析
  • 19.7.3 Charset类
  • 19.8 RandomAccessFile类
  • 19.9 标准I/O
  • 19.9.1 从标准输入中读取数据
  • 19.9.2 Scanner
  • 19.9.3 I/O重定向
  • 19.10 对象序列化
  • 19.10.1 使用对象流实现序列化
  • 19.10.2 对象引用的序列化
  • 19.10.3 序列化过滤器
  • 19.10.4 定制序列化
  • 19.10.5 替换对象
  • 19.10.6 使用Externalizable接口定制序列化
  • 19.10.7 序列化版本
  • 19.11 NIO
  • 19.11.1 缓冲区(Buffer)
  • 19.11.2 通道(Channel)
  • 19.11.3 使用通道复制文件
  • 19.11.4 视图缓冲区
  • 19.11.5 字节顺序
  • 19.11.6 直接和非直接缓冲区
  • 19.11.7 分散和聚集
  • 19.11.8 字符缓冲区的问题
  • 19.11.9 内存映射文件
  • 19.11.10 对文件加锁
  • 19.11.11 管道
  • 19.12 Files类与Path接口
  • 19.12.1 Path接口
  • 19.12.2 读写文件
  • 19.12.3 遍历目录
  • 19.12.4 小结
  • 19.13 异步文件通道
  • 19.13.1 写入数据
  • 19.13.2 读取数据
  • 19.14 总结
  • 19.15 实战练习
  • 第20章 Java并发编程
  • 20.1 Callable和Future接口
  • 20.2 新的任务执行框架
  • 20.2.1 Executor接口
  • 20.2.2 ExecutorService接口
  • 20.2.3 Executors工具类
  • 20.2.4 ThreadFactory
  • 20.2.5 ScheduledExecutorService
  • 20.2.6 批量执行任务
  • 20.2.7 CompletionService接口
  • 20.2.8 ThreadPoolExecutor类
  • 20.3 锁对象
  • 20.3.1 Lock接口
  • 20.3.2 重入互斥锁
  • 20.3.3 读写锁
  • 20.3.4 StampedLock
  • 20.4 条件对象
  • 20.5 同步工具类
  • 20.5.1 CountDownLatch
  • 20.5.2 CyclicBarrier
  • 20.5.3 Semaphore
  • 20.5.4 Exchanger
  • 20.6 线程安全的集合
  • 20.6.1 写时拷贝
  • 20.6.2 阻塞队列
  • 20.6.3 延迟队列
  • 20.6.4 传输队列
  • 20.6.5 ConcurrentHashMap
  • 20.6.6 ConcurrentSkipListMap
  • 20.7 Fork/Join框架
  • 20.8 CompletableFuture
  • 20.8.1 异步执行任务
  • 20.8.2 构造异步任务链
  • 20.8.3 结果转换
  • 20.8.4 组合异步任务
  • 20.8.5 任务链完成时的结果处理和异常处理
  • 20.9 原子操作
  • 20.9.1 AtomicInteger类
  • 20.9.2 LongAdder
  • 20.10 变量句柄
  • 20.11 总结
  • 20.12 实战练习
  • 第21章 Eclipse开发工具
  • 21.1 Eclipse简介
  • 21.2 下载并安装
  • 21.3 Eclipse开发环境介绍
  • 21.4 配置Eclipse
  • 21.4.1 配置JDK
  • 21.4.2 配置字体
  • 21.4.3 配置和使用快捷键
  • 21.4.4 配置字符集
  • 21.5 开发Java程序
  • 21.6 调试代码
  • 21.7 JUnit单元测试
  • 21.8 导入现有的Eclipse项目
  • 21.9 总结
  • 21.10 实战练习
  • 第22章 图形界面编程
  • 22.1 AWT
  • 22.1.1 第一个AWT应用程序
  • 22.1.2 关闭窗口
  • 22.1.3 向窗口内添加组件
  • 22.2 布局管理器
  • 22.2.1 BorderLayout
  • 22.2.2 FlowLayout
  • 22.2.3 GridLayout
  • 22.2.4 CardLayout
  • 22.2.5 GridBagLayout
  • 22.2.6 组合多个布局管理器
  • 22.3 事件模型
  • 22.3.1 按钮点击事件的处理
  • 22.3.2 事件监听器
  • 22.3.3 观察者模式
  • 22.4 Swing
  • 22.4.1 基本的框架窗口
  • 22.4.2 添加文本域和菜单栏
  • 22.4.3 菜单功能
  • 22.4.4 弹出菜单
  • 22.5 Swing与并发
  • 22.6 使用WindowBuilder快速开发图形界面程序
  • 22.6.1 安装WindowBuilder
  • 22.6.2 用户登录界面
  • 22.6.3 注册事件监听器
  • 22.7 总结
  • 22.8 实战练习
  • 第23章 Java网络编程
  • 23.1 网络基础知识
  • 23.1.1 计算机网络
  • 23.1.2 IP地址
  • 23.1.3 协议
  • 23.1.4 网络的状况
  • 23.1.5 网络异质性问题的解决
  • 23.1.6 ISO/OSI七层参考模型
  • 23.1.7 数据封装
  • 23.1.8 TCP/IP模型
  • 23.1.9 端口
  • 23.1.10 套接字(Socket)
  • 23.1.11 客户机/服务器模式
  • 23.2 基于TCP的套接字编程
  • 23.2.1 服务器程序
  • 23.2.2 客户端程序
  • 23.2.3 多线程的服务器程序
  • 23.2.4 套接字超时
  • 23.3 基于UDP的套接字编程
  • 23.3.1 接收端
  • 23.3.2 发送端
  • 23.3.3 获取发送端的信息
  • 23.4 非阻塞的套接字编程
  • 23.4.1 SocketChannel
  • 23.4.2 ServerSocketChannel
  • 23.4.3 Selector
  • 23.4.4 非阻塞的服务器程序
  • 23.4.5 非阻塞的客户端程序
  • 23.5 URL和URLConnection
  • 23.5.1 URL类
  • 23.5.2 URLConnection类
  • 23.5.3 一个实用的下载程序
  • 23.6 HTTP Client API
  • 23.6.1 HttpClient
  • 23.6.2 HttpRequest
  • 23.6.3 HttpResponse
  • 23.6.4 异步发送多个请求
  • 23.6.5 启用HttpClient的日志记录功能
  • 23.7 总结
  • 23.8 实战练习
  • 第24章 数据库访问
  • 24.1 JDBC驱动程序的类型
  • 24.1.1 JDBC-ODBC桥
  • 24.1.2 部分本地API的Java驱动程序
  • 24.1.3 JDBC网络纯Java驱动程序
  • 24.1.4 本地协议的纯Java驱动程序
  • 24.2 安装数据库
  • 24.3 下载MySQL JDBC驱动
  • 24.4 JDBC API
  • 24.5 加载并注册数据库驱动
  • 24.5.1 Driver接口
  • 24.5.2 加载与注册JDBC驱动
  • 24.5.3 服务加载
  • 24.6 建立到数据库的连接
  • 24.7 访问数据库
  • 24.7.1 Statement
  • 24.7.2 ResultSet
  • 24.7.3 PreparedStatement
  • 24.7.4 CallableStatement
  • 24.7.5 元数据
  • 24.8 事务处理
  • 24.9 可滚动和可更新的结果集
  • 24.9.1 可滚动的结果集
  • 24.9.2 可更新的结果集
  • 24.10 行集
  • 24.10.1 行集的标准实现
  • 24.10.2 行集的事件模型
  • 24.10.3 CachedRowSet
  • 24.11 JDBC数据源和连接池
  • 24.12 总结
  • 24.13 实战练习
  • 第25章 Java平台模块系统
  • 25.1 Java平台的模块
  • 25.2 模块的物理结构
  • 25.3 创建模块
  • 25.4 模块依赖
  • 25.5 导出包
  • 25.6 可传递的模块与静态依赖
  • 25.7 开放包
  • 25.8 限定导出和开放
  • 25.9 服务加载
  • 25.10 未命名模块
  • 25.11 自动模块
  • 25.12 为什么要引入模块系统
  • 25.13 总结
  • 25.14 实战练习
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    4.0

    不错

      转发
      评论

    出版方

    电子工业出版社

    电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。