实战Java程序设计 作者:北京尚学堂科技有限公司
实战Java程序设计 出版社:清华大学出版社
实战Java程序设计 内容简介
这是一本既注重实战,同时也注重底层“内功”(内存分析、JVM底层、数据结构)训练的书,本书能帮助初学者打通Java编程“任督二脉”。本书集作者11年Java教学之精华,既适合初学者入门,也适合已经工作的开发者复习。全书共分18章,内容涵盖Java开发所需的相关内容及339个案例(很多案例对于工作人员也有很大的参考价值)。书中秉承尚学堂实战化教学理念,从靠前章开始介入实战项目,寓教于乐,读者可迅速进入开发者的角色。本书适合初学者入门,也适合高等院校相关专业作为教材使用,还可作为Java程序员的参考用书。
实战Java程序设计 目录
前言
第1章 Java入门
1.1 计算机语言发展史及未来方向
1.1.1 计算机已经成为人类大脑的延伸
1.1.2 算法是计算机的“灵魂”,编程语言是塑造计算机“灵魂”的工具
1.1.3 为什么担心软件开发人才饱和是多余的
1.1.4 未来30年必将是软件人才的世界
1.2 常用的编程语言
1.3 Java语言介绍
1.3.1 Java发展简史
1.3.2 Java的核心优势
1.3.3 Java各版本的含义
1.3.4 Java的特性
1.3.5 Java应用程序的运行机制
1.3.6 JVM、JRE和JDK
1.4 Java开发环境搭建
1.4.1 JDK的下载和安装
1.4.2 环境变量Path的配置
1.4.3 JDK安装测试
1.5 建立和运行第一个Java程序
1.5.1 建立第一个Java程序
1.5.2 编译第一个程序时的常见错误
1.5.3 总结第一个Java程序
1.5.4 最常用的DOS命令
1.6 常用的Java开发工具
1.7 Eclipse使用10分钟入门
1.7.1 下载和安装Eclipse
1.7.2 在Eclipse中创建Java项目
1.7.3 使用Eclipse开发和运行Java程序
1.8 30分钟完成桌球小游戏项目
本章总结
本章作业
第2章 数据类型和运算符
2.1 注释
2.2 标识符
2.3 Java中的关键字/保留字
2.4 变量
2.4.1 变量的本质
2.4.2 变量的分类
2.5 常量
2.6 基本数据类型
2.6.1 整型
2.6.2 浮点型
2.6.3 字符型
2.6.4 布尔型
2.7 运算符
2.7.1 算术运算符
2.7.2 赋值及其扩展赋值运算符
2.7.3 关系运算符
2.7.4 逻辑运算符
2.7.5 位运算符
2.7.6 字符串连接符
2.7.7 条件运算符
2.7.8 运算符优先级问题
2.8 数据类型的转换
2.8.1 自动类型转换
2.8.2 强制类型转换
2.8.3 基本类型转换时的常见错误和问题
2.9 简单的键盘输入和输出
本章总结
本章作业
第3章 控制语句
3.1 条件判断结构
3.1.1 if单分支结构
3.1.2 if-else双分支结构
3.1.3 if-else if-else多分支结构
3.1.4 switch多分支结构
3.2 循环结构
3.2.1 while循环
3.2.2 do-while循环
3.2.3 for循环
3.2.4 嵌套循环
3.2.5 break语句和continue语句
3.2.6 带标签的break语句和continue语句
3.3 语句块
3.4 方法
3.5 方法的重载
3.6 递归结构
本章总结
本章作业
第4章 Java面向对象编程基础
4.1 面向过程和面向对象思想
4.2 对象的进化史
4.3 对象和类的概念
4.4 类和对象初步
4.4.1 第一个类的定义
4.4.2 属性(field成员变量)
4.4.3 方法
4.4.4 一个典型类的定义和UML图
4.5 面向对象的内存分析
4.6 对象的使用及内存分析
4.7 构造器
4.8 构造器的重载
4.9 垃圾回收机制
4.9.1 垃圾回收的原理和算法
4.9.2 通用的分代垃圾回收机制
4.9.3 JVM调优和Full GC
4.9.4 开发中容易造成内存泄露的操作
4.10 this关键字
4.11 static关键字
4.12 静态初始化块
4.13 参数传值机制
4.14 包
4.14.1 package
4.14.2 JDK中的常用包
4.14.3 导入类
4.14.4 静态导入
本章总结
本章作业
第5章 Java面向对象编程进阶
5.1 继承
5.1.1 继承的实现
5.1.2 instanceof运算符
5.1.3 继承的使用要点
5.1.4 方法的重写
5.2 Object类
5.2.1 Object类的基本特性
5.2.2 toString方法
5.2.3 ==和equals方法
5.3 super关键字
5.4 封装
5.4.1 封装的作用和含义
5.4.2 封装的实现——使用访问控制符
5.4.3 封装的使用细节
5.5 多态
5.6 对象的转型
5.7 final关键字
5.8 抽象方法和抽象类
5.9 接口interface
5.9.1 接口的作用
5.9.2 定义和使用接口
5.9.3 接口的多继承
5.9.4 面向接口编程
5.10 内部类
5.10.1 内部类的概念
5.10.2 内部类的分类
5.11 字符串String
5.11.1 String基础
5.11.2 String类和常量池
5.11.3 阅读API文档
5.11.4 String类的常用方法
5.11.5 字符串相等的判断
5.12 设计模式相关知识
5.12.1 开闭原则
5.12.2 相关设计模式
本章总结
本章作业
第6章 异常机制
6.1 导引问题
6.2 异常的概念
6.3 异常的分类
6.3.1 Error
6.3.2 Exception
6.3.3 RuntimeException——运行时异常
6.3.4 CheckedException——已检查异常
6.4 异常的处理方式之一:捕获异常
6.5 异常的处理方式之二:声明异常(throws子句)
6.6 自定义异常
6.7 如何利用百度解决异常问题
本章总结
本章作业
第7章 数组
7.1 数组概述
7.2 创建数组和初始化
7.2.1 数组声明
7.2.2 初始化
7.3 常用数组操作
7.3.1 数组的遍历
7.3.2 for-each循环
7.3.3 数组的复制
7.3.4 java.util.Arrays类
7.4 多维数组
7.5 用数组存储表格数据
7.6 冒泡排序算法
7.6.1 冒泡排序的基础算法
7.6.2 冒泡排序的优化算法
7.7 二分法检索
本章总结
本章作业
第8章 常用类
8.1 基本数据类型的包装类
8.1.1 包装类的基本知识
8.1.2 包装类的用途
8.1.3 自动装箱和拆箱
8.1.4 包装类的缓存问题
8.2 字符串相关类
8.2.1 String类
8.2.2 StringBuffer和StringBuilder
8.2.3 不可变和可变字符序列使用陷阱
8.3 时间处理相关类
8.3.1 Date时间类(java.util.Date)
8.3.2 DateFormat类和SimpleDateFormat类
8.3.3 Calendar日历类
8.4 Math类
8.5 File类
8.5.1 File类的基本用法
8.5.2 递归遍历目录结构和树状展现
8.6 枚举
本章总结
本章作业
第9章 容器
9.1 泛型
9.1.1 自定义泛型
9.1.2 容器中使用泛型
9.2 Collection接口
9.3 List接口
9.3.1 List特点和常用方法
9.3.2 ArrayList的特点和底层实现
9.3.3 LinkedList的特点和底层实现
9.3.4 Vector向量
9.4 Map接口
9.4.1 HashMap和HashTable
9.4.2 HashMap底层实现详解
9.4.3 二叉树和红黑二叉树
9.4.4 TreeMap的使用和底层实现
9.5 Set接口
9.5.1 HashSet的基本应用
9.5.2 HashSet的底层实现
9.5.3 TreeSet的使用和底层实现
9.6 Iterator接口
9.6.1 迭代器介绍
9.6.2 使用Iterator迭代器遍历容器元素(List/Set/Map)
9.7 遍历集合的方法总结
9.8 Collections工具类
本章总结
本章作业
第10章 输入与输出技术
10.1 基本概念和I/O入门
10.1.1 数据源
10.1.2 流的概念
10.1.3 第一个简单的I/O流应用程序
10.1.4 Java中流的概念细分
10.1.5 Java中I/O流类的体系
10.1.6 四大I/O抽象类
10.2 常用流详解
10.2.1 文件字节流
10.2.2 文件字符流
10.2.3 缓冲字节流
10.2.4 缓冲字符流
10.2.5 字节数组流
10.2.6 数据流
10.2.7 对象流
10.2.8 转换流
10.2.9 随意访问文件流
10.3 Java对象的序列化和反序列化
10.3.1 序列化和反序列化是什么
10.3.2 序列化涉及的类和接口
10.3.3 序列化与反序列化的步骤和实例
10.4 装饰器模式构建I/O流体系
10.4.1 装饰器模式简介
10.4.2 I/O流体系中的装饰器模式
10.5 Apache IOUtils和FileUtils的使用
10.5.1 Apache基金会介绍
10.5.2 FileUtils的妙用
10.5.3 IOUtils的妙用
本章总结
本章作业
第11章 多线程技术
11.1 基本概念
11.1.1 程序
11.1.2 进程
11.1.3 线程
11.1.4 线程和进程的区别
11.1.5 进程与程序的区别
11.2 Java中如何实现多线程
11.2.1 通过继承Thread类实现多线程
11.2.2 通过Runnable接口实现多线程
11.3 线程状态和生命周期
11.3.1 线程状态
11.3.2 终止线程的典型方式
11.3.3 暂停线程执行的常用方法
11.3.4 联合线程的方法
11.4 线程的基本信息和优先级别
11.4.1 获取线程基本信息的方法
11.4.2 线程的优先级
11.5 线程同步
11.5.1 什么是线程同步
11.5.2 实现线程同步
11.5.3 死锁及解决方案
11.6 线程并发协作(生产者-消费者模式)
11.7 任务定时调度
本章总结
本章作业
第12章 网络编程
12.1 基本概念
12.1.1 计算机网络
12.1.2 网络通信协议
12.1.3 数据封装与解封
12.1.4 IP地址与端口
12.1.5 URL
12.1.6 Socket
12.1.7 TCP协议和UDP协议
12.2 Java网络编程中的常用类
12.2.1 InetAddress
12.2.2 InetSocketAddress
12.2.3 URL类
12.3 TCP通信的实现
12.4 UDP通信的实现
本章总结
本章作业
第13章 J20飞机游戏项目
13.1 简介
13.2 游戏项目基本功能的开发
13.2.1 使用AWT技术画出游戏主窗口(0.1版)
13.2.2 图形和文本绘制(0.2版)
13.2.3 ImageIO实现图片加载技术(0.3版)
13.2.4 多线程和内部类实现动画效果(0.4版)
13.2.5 双缓冲技术解决闪烁问题(0.4)
13.2.6 GameObject类设计(0.5版)
13.3 飞机类设计(0.6版)
13.3.1 键盘控制原理
13.3.2 飞机类:增加操控功能
13.3.3 主窗口类:增加键盘监听
13.4 炮弹类设计(0.7版)
13.4.1 炮弹类的基本设计
13.4.2 炮弹任意角度飞行路径
13.4.3 容器对象存储多发炮弹
13.5 碰撞检测技术(0.8版)
13.5.1 矩形检测原理
13.5.2 炮弹和飞机碰撞检测
13.6 爆炸效果的实现(0.9版)
13.6.1 爆炸类的基本设计
13.6.2 主窗口类创建爆炸对象
13.7 其他功能(1.0版)
13.7.1 计时功能
13.7.2 学员开发Java基础小项目案例展示和说明
第14章 GUI编程——Swing基础
14.1 AWT简介
14.2 Swing简介
14.2.1 javax.swing.JFrame
14.2.2 javax.swing.JPanel
14.2.3 常用基本控件
14.2.4 布局管理器
本章总结
本章作业
第15章 事件模型
15.1 事件模型简介及常用事件类型
15.1.1 事件控制的过程
15.1.2 ActionEvent事件
15.1.3 MouseEvent事件
15.1.4 KeyEvent事件
15.1.5 WindowEvent事件
15.2 事件处理的实现方式
15.2.1 使用内部类实现事件处理
15.2.2 使用适配器实现事件处理
15.2.3 使用匿名内部类实现事件处理
本章总结
本章作业
第16章 Swing中的其他控件
16.1 单选按钮控件(JRadioButton)
16.2 复选框控件(JCheckBox)
16.3 下拉列表控件(JComboBox)
16.4 表格控件(JTable)
16.4.1 JTable的简单应用
16.4.2 DefaultTableModel
16.5 用户注册案例
本章总结
本章作业
第17章 反射机制
17.1 动态语言
17.2 反射机制的本质和Class类
17.2.1 反射机制的本质
17.2.2 java.lang.Class类
17.3 反射机制的常见操作
17.3.1 操作构造器(Constructor类)
17.3.2 操作属性(Field类)
17.3.3 操作方法(Method类)
17.4 反射机制的效率问题
本章总结
本章作业
第18章 核心设计模式
18.1 GoF 23设计模式简介
18.2 单例模式
18.2.1 饿汉式
18.2.2 懒汉式
18.2.3 静态内部类式
18.2.4 枚举式单例
18.2.5 四种单例创建模式的选择
18.3 工厂模式
18.4 装饰模式
18.5 责任链模式
18.6 模板方法模式(钩子方法)
18.7 观察者模式
18.8 代理模式(动态)
本章总结
本章作业
附录 Java 300集大型教学视频目录
实战Java程序设计 精彩文摘
第1章 Java入门
1.1 计算机语言发展史及未来方向
1.1.1 计算机已经成为人类大脑的延伸
计算机已经成为这个时代的核心设备,人们每时每刻都需要它。计算机也不再是人们以前印象中的台式机、服务器,它已经演变成了人们身边随处可见的物品,例如手机、平板电脑、笔记本电脑,甚至很多人没意识到,但实际上内部包含“计算机”的设备,如电视机、微波炉、汽车、小孩玩的智能小机器人等。
可以这么说,计算机已经成为了人类身体、大脑的延伸。未来,计算机将进入人的身体,进入大脑,成为人体的一部分。例如,在科幻电影《黑客帝国》中,将计算机的超级针头插入颈部后方的插口便能快速学习,改变人大脑的神经网络,几秒后就能成为功夫高手,如图1-1所示。
本文来自奶味小仙女投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。