万本电子书0元读

万本电子书0元读

顶部广告

Java面向对象编程(第2版)电子书

本书是知名IT技术女作家孙卫琴老师倾注六年心血造的业界经典10年畅销图书《Java面向对象编程》的升级版。以行云流水般的语言诠释Java编程艺术。基于*Java技术,理论紧密结合实际。

售       价:¥

纸质售价:¥66.20购买纸书

842人正在读 | 4人评论 6.8

作       者:孙卫琴

出  版  社:电子工业出版社

出版时间:2017-01-01

字       数:74.3万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(4条)
  • 读书简介
  • 目录
  • 累计评论(4条)
本书采用由浅深、与实际应用紧密结合的方式,利用大量经典实用的实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化Java编程的各种宝贵经验,深阐述Java虚拟机执行Java程序的原理。本书的实例都基于*的JDK8版本。本书的*特色是以6条主线贯穿书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。另外,本书还贯穿了Oracle公司的OCJP(Oracle Certified Java Programmer)认证的考试要。<br/>【推荐语】<br/>本书是知名IT技术女作家孙卫琴老师倾注六年心血造的业界经典10年畅销图书《Java面向对象编程》的升级版。以行云流水般的语言诠释Java编程艺术。基于*Java技术,理论紧密结合实际。<br/>【作者】<br/>孙卫琴,知名IT作家和Java专家,毕业于上海交通大学,随后主要从事基于Java的软件发工作,在此其间还从事Java方面的培训和咨询工作。2002年始Java技术领域的创作,文风清晰严谨、深浅出,深受读者欢迎,其多部作品的销量在同类书籍中一度位居全国榜首。代表著作有: <<Java面向对象编程>> <<Java网络编程精解>> <<Java逍遥游记>> <<Hibernate逍遥游记>> <<精通Hibernate: Java对象持久化技术详解>> <<精通Struts: 基于MVC的Java Web设计与发>> <<Tomcat与Java Web发技术详解>> <<Java 2认证考试指南与试题解析>><br/>
目录展开

内容简介

前言 Foreword

Java语言的特点

本书的组织结构和主要内容

这本书是否适合您

本书的技术支持网站

致谢

第1章 面向对象开发方法概述

1.1 结构化的软件开发方法简介

1.2 面向对象的软件开发方法简介

1.2.1 对象模型

1.2.2 UML:可视化建模语言

1.2.3 Rational Rose:可视化建模工具

1.3 面向对象开发中的核心思想和概念

1.3.1 问题领域、对象、属性、状态、行为、方法、实现

1.3.2 类、类型

1.3.3 消息、服务

1.3.4 接口

1.3.5 封装、透明

1.3.6 抽象

1.3.7 继承、扩展、覆盖

1.3.8 组合

1.3.9 多态、动态绑定

1.4 UML语言简介

1.4.1 用例图

1.4.2 类框图

1.4.3 时序图

1.4.4 协作图

1.4.5 状态转换图

1.4.6 组件图

1.4.7 部署图

1.5 类之间的关系

1.5.1 关联(Association)

1.5.2 依赖(Dependency)

1.5.3 聚集(Aggregation)

1.5.4 泛化(Generalization)

1.5.5 实现(Realization)

1.5.6 区分依赖、关联和聚集关系

1.6 实现Panel系统

1.6.1 扩展Panel系统

1.6.2 用配置文件进一步提高Panel系统的可维护性

1.6.3 运行Panel系统

步骤

1.7 小结

1.8 思考题

第2章 第一个Java应用

2.1 创建Java源文件

2.1.1 Java源文件结构

2.1.2 包声明语句

2.1.3 包引入语句

2.1.4 方法的声明

2.1.5 程序入口main()方法的声明

2.1.6 给main()方法传递参数

2.1.7 注释语句

2.1.8 关键字

2.1.9 标识符

2.1.10 编程规范

2.2 用JDK管理Java应用

2.2.1 JDK简介以及安装方法

2.2.2 编译Java源文件

流程

2.2.3 运行Java程序

流程

2.2.4 给Java应用打包

步骤

2.3 使用和创建JavaDoc文档

2.3.1 JavaDoc标记

2.3.2 javadoc命令的用法

2.4 Java虚拟机运行Java程序的基本原理

步骤

步骤

2.5 小结

2.6 思考题

第3章 数据类型和变量

3.1 基本数据类型

3.1.1 boolean类型

3.1.2 byte、short、int和long类型

3.1.3 char类型与字符编码

3.1.4 float和double类型

3.2 引用类型

3.2.1 基本类型与引用类型的区别

3.2.2 用new关键字创建对象

步骤

3.3 变量的作用域

3.3.1 实例变量和静态变量的生命周期

3.3.2 局部变量的生命周期

流程

3.3.3 成员变量和局部变量同名

3.3.4 将局部变量的作用域最小化

3.4 对象的默认引用:this

3.5 参数传递

3.6 变量的初始化以及默认值

3.6.1 成员变量的初始化

3.6.2 局部变量的初始化

3.7 直接数

3.7.1 直接数的类型

3.7.2 直接数的赋值

3.8 小结

3.9 思考题

第4章 操作符

4.1 操作符简介

4.2 整型操作符

4.2.1 一元整型操作符

4.2.2 二元整型操作符

4.3 浮点型操作符

4.4 比较操作符和逻辑操作符

4.5 特殊操作符“?:”

4.6 字符串连接操作符“+”

4.7 操作符“==”与对象的equals()方法

4.7.1 操作符“==”

4.7.2 对象的equals()方法

4.8 instanceof操作符

4.9 变量的赋值和类型转换

4.9.1 基本数据类型转换

4.9.2 引用类型的类型转换

4.10 小结

4.11 思考题

第5章 流程控制

5.1 分支语句

5.1.1 if else语句

5.1.2 switch语句

5.2 循环语句

5.2.1 while语句

5.2.2 do while语句

5.2.3 for语句

5.2.4 foreach语句

5.2.5 多重循环

5.3 流程跳转语句

5.4 综合例子:八皇后问题

5.5 小结

5.6 思考题

第6章 继承

6.1 继承的基本语法

6.2 方法重载(Overload)

6.3 方法覆盖(Override)

6.4 方法覆盖与方法重载的异同

6.5 super关键字

6.6 多态

6.7 继承的利弊和使用原则

6.7.1 继承树的层次不可太多

6.7.2 继承树的上层为抽象层

6.7.3 继承关系最大的弱点:打破封装

6.7.4 精心设计专门用于被继承的类

6.7.5 区分对象的属性与继承

6.8 比较组合与继承

6.8.1 组合关系的分解过程对应继承关系的抽象过程

6.8.2 组合关系的组合过程对应继承关系的扩展过程

6.9 小结

6.10 思考题

第7章 Java语言中的修饰符

7.1 访问控制修饰符

7.2 abstract修饰符

7.3 final修饰符

7.3.1 final类

7.3.2 final方法

7.3.3 final变量

7.4 static修饰符

7.4.1 static变量

7.4.2 static方法

7.4.3 static代码块

7.4.4 用static进行静态导入

7.5 小结

7.6 思考题

第8章 接口

8.1 接口的概念和基本特征

8.2 比较抽象类与接口

8.3 与接口相关的设计模式

8.3.1 定制服务模式

8.3.2 适配器模式

8.3.3 默认适配器模式

8.3.4 代理模式

8.3.5 标识类型模式

8.3.6 常量接口模式

8.4 小结

8.5 思考题

第9章 异常处理

9.1 Java异常处理机制概述

9.1.1 Java异常处理机制的优点

9.1.2 Java虚拟机的方法调用栈

步骤

9.1.3 异常处理对性能的影响

9.2 运用Java异常处理机制

9.2.1 try-catch语句:捕获异常

9.2.2 finally语句:任何情况下必须执行的代码

9.2.3 throws子句:声明可能会出现的异常

9.2.4 throw语句:抛出异常

9.2.5 异常处理语句的语法规则

9.2.6 异常流程的运行过程

9.2.7 跟踪丢失的异常

9.3 Java异常类

9.3.1 运行时异常

9.3.2 受检查异常(Checked Exception)

9.3.3 区分运行时异常和受检查异常

9.4 用户定义异常

9.4.1 异常转译和异常链

9.4.2 处理多样化异常

9.5 异常处理原则

9.5.1 异常只能用于非正常情况

9.5.2 为异常提供说明文档

9.5.3 尽可能地避免异常

9.5.4 保持异常的原子性

9.5.5 避免过于庞大的try代码块

9.5.6 在catch子句中指定具体的异常类型

9.5.7 不要在catch代码块中忽略被捕获的异常

9.6 记录日志

9.6.1 创建Logger对象及设置日志级别

9.6.2 生成日志

9.6.3 把日志输出到文件

9.6.4 设置日志的输出格式

9.7 使用断言

9.8 小结

9.9 思考题

第10章 类的生命周期

10.1 Java虚拟机及程序的生命周期

10.2 类的加载、连接和初始化

10.2.1 类的加载

10.2.2 类的验证

10.2.3 类的准备

10.2.4 类的解析

10.2.5 类的初始化

步骤

10.2.6 类的初始化的时机

10.3 类加载器

10.3.1 类加载的父亲委托机制

10.3.2 创建用户自定义的类加载器

10.3.3 URLClassLoader类

10.4 类的卸载

10.5 小结

10.6 思考题

第11章 对象的生命周期

11.1 创建对象的方式

步骤

11.2 构造方法

11.2.1 重载构造方法

11.2.2 默认构造方法

11.2.3 子类调用父类的构造方法

11.2.4 构造方法的作用域

11.2.5 构造方法的访问级别

11.3 静态工厂方法

11.3.1 单例类

11.3.2 枚举类

11.3.3 不可变(immutable)类与可变类

11.3.4 具有实例缓存的不可变类

11.3.5 松耦合的系统接口

11.4 垃圾回收

11.4.1 对象的可触及性

11.4.2 垃圾回收的时间

11.4.3 对象的finalize()方法简介

11.4.4 对象的finalize()方法的特点

11.4.5 比较finalize()方法和finally代码块

11.5 清除过期的对象引用

11.6 对象的强、软、弱和虚引用

11.7 小结

11.8 思考题

第12章 内部类

12.1 内部类的基本语法

12.1.1 实例内部类

12.1.2 静态内部类

12.1.3 局部内部类

12.2 内部类的继承

12.3 子类与父类中的内部类同名

12.4 匿名类

12.5 内部接口以及接口中的内部类

12.6 内部类的用途

12.6.1 封装类型

12.6.2 直接访问外部类的成员

12.6.3 回调

12.7 内部类的类文件

12.8 小结

12.9 思考题

第13章 多线程

13.1 Java线程的运行机制

13.2 线程的创建和启动

13.2.1 扩展java.lang.Thread类

13.2.2 实现Runnable接口

13.3 线程的状态转换

13.3.1 新建状态

13.3.2 就绪状态

13.3.3 运行状态

13.3.4 阻塞状态

13.3.5 死亡状态

13.4 线程调度

13.4.1 调整各个线程的优先级

13.4.2 线程睡眠:Thread.sleep()方法

13.4.3 线程让步:Thead.yield()方法

13.4.4 等待其他线程结束:join()

13.5 获得当前线程对象的引用

13.6 后台线程

13.7 定时器

13.8 线程的同步

13.8.1 同步代码块

13.8.2 线程同步的特征

13.8.3 同步与并发

13.8.4 线程安全的类

13.8.5 释放对象的锁

流程

13.8.6 死锁

流程

13.9 线程通信

流程

流程

流程

13.10 中断阻塞

13.11 线程控制

13.11.1 被废弃的suspend()和resume()方法

流程

13.11.2 被废弃的stop()方法

13.11.3 以编程的方式控制线程

13.12 线程组

13.13 处理线程未捕获的异常

流程

13.14 ThreadLocal类

13.15 concurrent并发包

13.15.1 用于线程同步的Lock外部锁

13.15.2 用于线程通信的Condition条件接口

13.15.3 支持异步计算的Callable接口和Future接口

13.15.4 通过线程池来高效管理多个线程

13.15.5 BlockingQueue阻塞队列

13.16 小结

13.17 思考题

第14章 数组

步骤

14.1 数组变量的声明

14.2 创建数组对象

步骤

14.3 访问数组的元素和长度

14.4 数组的初始化

14.5 多维数组以及不规则数组

14.6 调用数组对象的方法

14.7 把数组作为方法参数或返回值

14.8 数组排序

14.9 数组的二分查找算法

14.10 哈希表

步骤

14.11 数组实用类:Arrays

14.12 用符号“…”声明数目可变参数

14.13 小结

14.14 思考题

第15章 Java集合

15.1 Collection和Iterator接口

15.2 集合中直接加入基本类型数据

15.3 Set(集)

15.3.1 Set的一般用法

15.3.2 HashSet类

15.3.3 TreeSet类

15.4 List(列表)

15.4.1 访问列表的元素

15.4.2 为列表排序

15.4.3 ListIterator接口

15.4.4 获得固定长度的List对象

15.4.5 比较Java数组和各种List的性能

15.5 Queue(队列)

15.5.1 Deque(双向队列)

15.5.2 PriorityQueue(优先级队列)

15.6 Map(映射)

15.7 HashSet和HashMap的负载因子

15.8 集合实用类:Collections

15.9 线程安全的集合

15.10 集合与数组的互换

15.11 集合的批量操作

15.12 历史集合类

15.13 枚举类型

15.13.1 枚举类型的构造方法

15.13.2 EnumSet类和EnumMap类

15.14 小结

15.15 思考题

第16章 泛型

16.1 Java集合的泛型

16.2 定义泛型类和泛型接口

16.3 用extends关键字限定类型参数

16.4 定义泛型数组

16.5 定义泛型方法

16.6 使用“?”通配符

16.7 使用泛型的注意事项

16.8 小结

16.9 思考题

第17章 Lambda表达式

17.1 Lambda表达式的基本用法

17.2 用Lambda表达式代替内部类

17.3 Lambda表达式和集合的forEach()方法

17.4 用Lambda表达式对集合进行排序

17.5 Lambda表达式与Stream API联合使用

17.6 Lambda表达式可操纵的变量作用域

17.7 Lambda表达式中的方法引用

17.8 函数式接口(FunctionalInterface)

17.9 总结Java语法糖

17.10 小结

17.11 思考题

第18章 输入与输出(I/O)

18.1 输入流和输出流概述

18.2 输入流

18.2.1 字节数组输入流:ByteArrayInputStream类

18.2.2 文件输入流:FileInputStream类

18.2.3 管道输入流:PipedInputStream

18.2.4 顺序输入流:SequenceInputStream类

18.3 过滤输入流:FilterInputStream

18.3.1 装饰器设计模式

18.3.2 过滤输入流的种类

18.3.3 DataInputStream类

18.3.4 BufferedInputStream类

18.3.5 PushbackInputStream类

18.4 输出流

18.4.1 字节数组输出流:ByteArrayOutputStream类

18.4.2 文件输出流:FileOutputStream

18.5 过滤输出流:FilterOutputStream

18.5.1 DataOutputStream

18.5.2 BufferedOutputStream

18.5.3 PrintStream类

18.6 Reader/Writer概述

18.7 Reader类

18.7.1 字符数组输入流:CharArrayReader类

18.7.2 字符串输入流:StringReader类

18.7.3 InputStreamReader类

步骤

18.7.4 FileReader类

18.7.5 BufferedReader类

18.8 Writer类

18.8.1 字符数组输出流:CharArrayWriter类

18.8.2 OutputStreamWriter类

步骤

18.8.3 FileWriter类

18.8.4 BufferedWriter类

18.8.5 PrintWriter类

18.9 标准I/O

18.9.1 重新包装标准输入和输出

18.9.2 标准I/O重定向

18.10 随机访问文件类:RandomAccessFile

18.11 新I/O类库

18.11.1 缓冲器Buffer概述

18.11.2 通道Channel概述

18.11.3 字符编码Charset类概述

18.11.4 用FileChannel读写文件

18.11.5 控制缓冲区

18.11.6 字符编码转换

18.11.7 缓冲区视图

18.11.8 文件映射缓冲区:MappedByteBuffer

18.11.9 文件加锁

18.12 对象的序列化与反序列化

步骤

步骤

18.13 自动释放资源

18.14 用File类来查看、创建和删除文件或目录

18.15 用java.nio.file类库来操作文件系统

18.15.1 复制、移动文件以及遍历、过滤目录树

18.15.2 查看ZIP压缩文件

18.16 小结

18.17 思考题

第19章 图形用户界面

19.1 AWT组件和Swing组件

19.2 创建图形用户界面的基本步骤

19.3 布局管理器

19.3.1 FlowLayout(流式布局管理器)

19.3.2 BorderLayout(边界布局管理器)

19.3.3 GridLayout(网格布局管理器)

19.3.4 CardLayout(卡片布局管理器)

19.3.5 GridBagLayout(网格包布局管理器)

步骤

19.4 事件处理

19.4.1 事件处理的软件实现

19.4.2 事件源、事件和监听器的类层次和关系

19.5 AWT绘图

19.5.1 Graphics类

19.5.2 Graphics2D类

19.6 AWT线程(事件分派线程)

19.7 小结

19.8 思考题

第20章 常用Swing组件

20.1 边框(Border)

20.2 按钮组件(AbstractButton)及子类

20.3 文本框(JTextField)

20.4 文本区域(JTextArea)与滚动面板(JScrollPane)

20.5 复选框(JCheckBox)与单选按钮(JRadioButton)

20.6 下拉列表(JComboBox)

20.7 列表框(JList)

20.8 页签面板(JTabbedPane)

20.9 菜单(JMenu)

20.10 对话框(JDialog)

20.11 文件对话框(JFileChoose)

20.12 消息框

20.13 制作动画

20.14 播放音频文件

20.15 BoxLayout布局管理器

20.16 设置Swing界面的外观和感觉

20.17 小结

20.18 思考题

第21章 Java常用类

21.1 Object类

21.2 String类和StringBuffer类

21.2.1 String类

21.2.2 “hello”与new String(“hello”)的区别

21.2.3 StringBuffer类

21.2.4 比较String类与StringBuffer类

21.2.5 正则表达式

21.2.6 格式化字符串

21.3 包装类

21.3.1 包装类的构造方法

21.3.2 包装类的常用方法

21.3.3 包装类的自动装箱和拆箱

21.4 Math类

21.5 Random类

21.6 传统的处理日期/时间的类

21.6.1 Date类

21.6.2 DateFormat类

21.6.3 Calendar类

21.7 新的处理日期/时间的类

21.7.1 LocalDate类

21.7.2 LocalTime类

21.7.3 LocalDateTime类

21.8 BigInteger类

21.9 BigDecimal类

21.10 用Optional类避免空指针异常

21.11 小结

21.12 思考题

第22章 Annotation注解

22.1 自定义Annotation注解类型

22.2 在类的源代码中引用注解类型

22.3 在程序中运用反射机制读取类的注解信息

22.4 基本内置注解

22.5 小结

22.6 思考题

累计评论(4条) 5个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部