内容简介
第1篇 入门篇
第1章 认识Java
1.1 Java的发展史
1.1.1 Java起源
1.1.2 Java发展
1.2 Java是什么
1.2.1 Java语言
1.2.2 Java平台
1.2.3 Java网络操作系统
1.3 Java的特点
1.4 Java 9的新特性
1.5 Java程序类型
1.6 Java技术体系
1.7 Java虚拟机
1.7.1 Java虚拟机支持的数据类型
1.7.2 Java虚拟机的生命周期
1.7.3 Java虚拟机的体系结构
1.8 垃圾收集器
1.9 技术解惑
1.9.1 Java虚拟机如何实现跨平台运行
1.9.2 Java语言为什么一直名列编程语言前三甲
第2章 搭建Java开发环境
2.1 J2 SE的下载和安装
2.1.1 J2SE的下载
2.1.2 J2 SE的安装
2.2 环境变量的配置与测试
2.2.1 配置环境变量Path
2.2.2 配置环境变量CLASSPATH
2.2.3 环境变量的测试
2.3 API文档的下载与使用
2.4 第一个应用程序
2.4.1 HelloWorld程序
2.4.2 程序编译和运行命令
2.4.3 HelloWorld的编译和运行
2.5 简单开发工具介绍
2.5.1 使用EditPlus开发Java
2.5.2 使用UltraEdit开发Java
2.6 集成开发环境Eclipse介绍
2.6.1 Eclipse的下载与安装
2.6.2 Eclipse的透视图(Perspective)
2.6.3 Eclipse的视图(View)
2.6.4 Eclipse的编辑器
2.6.5 Eclipse的工具栏和菜单栏
2.6.6 用Eclipse编写HelloWorld程序
2.7 拓展训练
2.7.1 训练一:用“*”直接输出三角形
2.7.2 训练二:可爱的表情符号
2.8 技术解惑
2.8.1 为什么必须设置好环境变量
2.8.2 选择Eclipse的多个原因
第3章 Java语言基础
3.1 标识符
3.1.1 标识符的概念
3.1.2 变量的命名规则
3.1.3 变量的命名技巧
3.2 关键字
3.3 注释
3.4 数据类型
3.4.1 整型
3.4.2 浮点型
3.4.3 字符型
3.4.4 布尔型
3.5 变量与常量
3.5.1 变量声明
3.5.2 变量赋值和初始化
3.5.3 常量
3.6 类型转换
3.6.1 数据类型之间的自动转换
3.6.2 强制类型转换
3.7 运算符
3.7.1 算术运算符
3.7.2 关系运算符
3.7.3 逻辑运算符
3.7.4 位运算符
3.7.5 自动递增和递减
3.7.6 三元运算符
3.7.7 运算符的优先级
3.8 拓展训练
3.8.1 训练一:不借助第三者实现两个变量值的互换
3.8.2 训练二:获取浮点数的最大/最小值
3.8.3 训练三:实现字母的大小写转换
3.8.4 训练四:实现输入字符的加密和解密
3.9 技术解惑
3.9.1 三元运算符与if-else语句的不同之处
3.9.2 强制类型转换的规则是什么
第4章 流程控制
4.1 顺序结构
4.2 条件语句
4.2.1 if语句
4.2.2 if-else语句
4.2.3 if-else-if语句
4.2.4 if语句的嵌套
4.2.5 布尔表达式
4.2.6 开关语句
4.3 循环语句
4.3.1 while循环语句
4.3.2 do-while循环语句
4.3.3 for循环语句
4.3.4 循环的嵌套
4.4 转向语句
4.4.1 break中断语句
4.4.2 continue条件继续语句
4.4.3 标签语句
4.5 返回语句
4.6 拓展训练
4.6.1 训练一:水仙花数
4.6.2 训练二:判断某一年是否为闰年
4.6.3 训练三:根据收入情况计算个人所得税
4.6.4 训练四:打印九九乘法表
4.7 技术解惑
4.7.1 break和continue的区别
4.7.2 do-while和while的区别
第2篇 高级技术篇
第5章 字符串
5.1 字符串简介
5.1.1 字符串常量
5.1.2 String创建字符串对象
5.1.3 StringBuffer创建字符串对象
5.2 连接字符串
5.2.1 与字符串的连接
5.2.2 与其他数据类型的连接
5.3 String类操作
5.3.1 基本操作方法
5.3.2 比较
5.3.3 转换
5.3.4 查找
5.3.5 截取和拆分
5.3.6 替换或修改
5.4 StringBuffer类操作
5.4.1 基本操作
5.4.2 字符串操作方法
5.4.3 添加append()
5.4.4 插入insert()
5.5 拓展训练
5.5.1 训练一:字符串大小写转换
5.5.2 训练二:将数字货币金额转换为大写格式
5.5.3 训练三:当前日期的格式化
5.5.4 训练四:验证IP地址的有效性
5.5.5 训练五:获取字符串中单词的个数
5.6 技术解惑
5.6.1 String类和StringBuffer类有什么区别
5.6.2 为什么说String类是不可变类
第6章 数组
6.1 一维数组
6.1.1 数组的概念
6.1.2 一维数组的声明
6.1.3 一维数组的初始化
6.1.4 一维数组的使用
6.1.5 一维数组的空间模型
6.1.6 基本数据类型数组
6.1.7 对象数组
6.1.8 数组参数
6.2 二维数组和多维数组
6.2.1 二维数组的声明
6.2.2 二维数组的初始化
6.2.3 二维数组的空间模型
6.2.4 二维数组的应用
6.3 数组操作
6.3.1 Java的工具类:Arrays
6.3.2 排序
6.3.3 查找
6.3.4 复制
6.3.5 填充数据
6.3.6 比较
6.4 拓展训练
6.4.1 训练一:获取一维数组中的最大最小值
6.4.2 训练二:九宫格问题
6.4.3 训练三:杨辉三角
6.5 技术解惑
6.5.1 Array和Arrays的区别到底是什么
6.5.2 for和foreach在遍历数组时的区别
第7章 对象与类
7.1 面向对象程序设计
7.1.1 面向对象程序设计概述
7.1.2 面向对象程序设计的特点
7.1.3 对象与类的关系
7.2 类的定义
7.2.1 MasterCard类的实现
7.2.2 MasterCard类的使用
7.2.3 访问控制符
7.2.4 初识构造方法
7.2.5 方法的参数
7.2.6 封装与隐藏
7.2.7 finalize()方法
7.3 静态域与静态方法
7.3.1 静态域
7.3.2 静态方法
7.3.3 Math类
7.4 构造方法
7.4.1 默认域初始化
7.4.2 默认构造方法
7.4.3 拷贝构造方法
7.4.4 构造方法的重载
7.4.5 构造方法的调用
7.4.6 创建初始化块
7.5 包
7.5.1 包的概念
7.5.2 包的导入
7.5.3 包名与目录的关系
7.5.4 静态导入
7.5.5 Java包介绍
7.6 类设计技巧
7.7 实例:完善MasterCard类
7.7.1 构造方法
7.7.2 setter()方法
7.7.3 getter()方法
7.7.4 其他方法
7.8 main()方法
7.9 拓展训练
7.9.1 训练一:摄氏温度与华氏温度的转换
7.9.2 训练二:汉诺塔问题的解决
7.9.3 训练三:使用局部内部类实现闹钟的应用
7.10 技术解惑
7.10 .1 final、finally、finalize的区别
7.10 .2 静态代码块和静态方法的区别
第8章 Java中的继承
8.1 父类和子类
8.2 super()构造方法调用
8.3 封装和继承
8.4 使用继承
8.4.1 Object类
8.4.2 定义equals()方法
8.5 关于设计好继承的几点建议
8.6 实例:一卡通类的继承
8.6.1 构造方法
8.6.2 setter()方法
8.6.3 getter()方法
8.6.4 方法覆盖
8.6.5 equals()方法
8.6.6 其他需要强调的地方
8.7 拓展训练——领导和员工的差异
8.8 技术解惑
8.8.1 super语句必须是子类构造方法的第一句吗
8.8.2 equals()方法的用法和“==”的用法一致吗
第9章 更深一步:多态与抽象类
9.1 多态性的概念
9.2 重载
9.2.1 重载的概念
9.2.2 重载的注意事项
9.3 覆盖
9.3.1 覆盖的概念
9.3.2 覆盖与访问权限
9.3.3 静态方法覆盖
9.3.4 覆盖与异常抛出
9.3.5 抽象方法覆盖
9.3.6 覆盖与重载小结
9.4 绑定
9.4.1 静态绑定
9.4.2 动态绑定
9.5 抽象类
9.5.1 抽象类的概念
9.5.2 抽象类的应用
9.5.3 抽象类应用的注意事项
9.6 接口
9.6.1 接口的概念
9.6.2 Java中接口的定义
9.6.3 使用接口
9.6.4 接口的继承
9.6.5 抽象类和接口
9.6.6 面向接口编程
9.7 Java中的Lambda表达式
9.7.1 Lambda表达式入门
9.7.2 Lambda表达式与函数式接口
9.7.3 方法引用与构造器引用
9.7.4 Lambda表达式与匿名内部类的联系和区别
9.8 拓展训练——重写(覆盖)父类中的方法
9.9 技术解惑
9.9.1 什么是Java的动态绑定与静态绑定
9.9.2 抽象类到底有什么用
第10章 Java Web应用——JSP
10.1 JSP技术概述
10.2 JSP运行环境搭建
10.2.1 Tomcat安装
10.2.2 测试
10.2.3 第一个JSP程序
10.3 基本语法
10.3.1 HTML注释
10.3.2 隐藏注释
10.3.3 声明
10.3.4 表达式
10.3.5 脚本集(Scriptlet)
10.4 JSP指令元素
10.4.1 include指令
10.4.2 page指令
10.4.3 taglib指令
10.5 JSP动作元素
10.5.1 <jsp:forward>
10.5.2 <jsp:useBean>
10.5.3 <jsp:setProperty>
10.5.4 <jsp:getProperty>
10.5.5 <jsp:include>
10.5.6 <jsp:plugin>
10.6 内置对象
10.6.1 out对象
10.6.2 request对象
10.6.3 response对象
10.6.4 session对象
10.6.5 application对象
10.6.6 pageContext对象
10.6.7 exception对象
10.6.8 config对象
10.7 拓展训练
10.7.1 训练一:一个注册页面
10.7.2 训练二:跨页传递数据
10.8 技术解惑
10.8.1 静态include指令和动态include指令的比较
10.8.2 指令和动作的区别