本书从企业用人的实践技术需求出发,系统地介绍了Java语言及相关技术。全书共15章,其中前3章为Java的入门基础,主要包括Java简介及开发环境搭建、Java基础语法等;第4章至第5章介绍Java面向对象编程,全面讨论了面向对象程序设计开发的思维方法及在Java中语言中的实现;第6章针对具体的软件项目开发案例,综合使用面向对象的各种技术,包括封装、继承、多态、接口等;第7章介绍了Java软件开发中常用的系统API类,包括System、Random、Date、Calendar等,此外还介绍了字符串相关类;第8章介绍了Java集合框架的知识,包括单列集合Collection和双列集合Map;第9章介绍了Java中的异常处理机制;第10章介绍了文件操作和二进制流技术;第11章介绍线程的基本知识,包括线程的创建、使用等;第12章介绍数据库的相关基本概念,JDBC技术常用类及接口,以及JDBC数据库编程的方法;第13章介绍网络编程的相关知识,重点介绍了Socket技术;第14章介绍了GUI基本知识,包括布局、组件、容器等;第15章以飞机大战游戏为案例,综合使用各种Java技术完成设计与开发。本书结构合理,语言简练,内容深入浅出,以案例的方式讲解各章知识点,使读者学而知所用,体现了Java编程语言的实践性特点,本书可以作为高等院校和培训班相关专业的教材,还可供从事计算机技术、电子商务、系统工程的人员和企业技术人员参考。
刘志刚,男,博士,副教授,硕士生导师,新加坡国立大学访问学者(2018-2019年),国际电气和电子工程师协会IEEE会员、中国计算机学会CCF会员。多年来专注于机器学习理论、深度学习理论、计算机视觉方面的应用研究,《IEEE Transactions on Neural Networks and Learning Systems》、《Journal of Photogrammetry and Remote Sensing》等国际期刊审稿专家。先后主持和参与黑龙江省自然科学基金、中石油股份公司、中石油勘探研究院、大庆油田的等各类科技项目30余项,主编专业教材3部;在《Neurocomputing》、《AppliedIntelligence》、《中国石油大学学报》等领域重要期刊发表学术论文16篇,其中SCIEI论文12篇;申报国家发明专利3项,实用新型专利授权7项;获中国石油和化学工业联合会科学技术奖三等奖1项,中国石油教育学会教学成果奖1项,黑龙江省学术成果奖三等奖1项,东北石油大学青年教师赛课优秀奖1项。
第1章Java概述
1.1Java语言简介
1.1.1Java发展简史
1.1.2Java的影响力
1.1.3Java的语言特点
1.2Java平台及主要应用方向
1.3Java的运行机制及JVM
1.4Java的JDK和JRE
1.4.1什么是JDK
1.4.2什么是JRE
1.5Java的开发环境
1.5.1集成开发环境IDE
1.5.2安装JDK
1.5.3安装Eclipse
1.6Java程序的编写与执行
1.6.1记事本编写Java程序
1.6.2Eclipse编写Java程序
1.7Java程序的输入输出与注释语句
1.7.1输出语句
1.7.2输入语句
1.7.3注释语句
1.8生成Java文档
本章小结
习题
第2章Java语言基础
2.1Java程序的构成
2.2Java的标识符
2.3Java的数据类型
2.3.1字符类型
2.3.2数值类型
2.4Java的变量和常量
2.4.1变量
2.4.2常量
2.5Java的常见运算符
2.5.1赋值运算符
2.5.2算术运算符
2.5.3比较运算符
2.5.4逻辑运算符
2.5.5条件运算符
2.6Java程序的流程控制
2.7选择结构
2.7.1单分支结构if语句
2.7.2双分支结构if-else语句
2.7.3多分支结构if-else if-else语句
2.7.4多分支结构switch语句
2.8循环结构
2.8.1for循环
2.8.2while循环
2.8.3do…while循环
2.9跳转语句
2.9.1break语句
2.9.2continue语句
2.9.3return语句
本章小结
习题
第3章方法和数组
3.1方法
3.1.1什么是方法
3.1.2方法的重载
3.1.3方法的递归
3.2数组
3.2.1数组的基本概念
3.2.2一维数组
3.2.3二维数组
3.2.4数组排序
3.2.5数组查找
3.2.6复制数组
3.2.7Arrays数组操作类
3.3数组作为方法的参数
本章小结
习题
第4章类和对象
4.1面向对象概述
4.1.1封装性
4.1.2继承性
4.1.3多态性
4.2类的描述
4.2.1类的定义
4.2.2类的使用
4.2.3类的设计
4.2.4类的成 员封装
4.3对象的创建与使用
4.3.1对象的创建
4.3.2对象的比较
4.3.3对象的使用
4.3.4匿名对象
4.3.5对象的内存分配
4.3.6对象的内存释放
4.4构造方法
4.4.1构造方法的定义
4.4.2构造方法的重载
4.5this关键字
4.6static关键字
4.6.1静态变量
4.6.2静态方法
4.6.3静态代码块
4.7垃圾回收
4.8包
4.8.1包的定义
4.8.2类的导入
4.8.3静态导入
4.9程序文件的组织
4.9.1源文件和字节码文件
4.9.2Java项目的目录结构
4.9.3在Java项目中添加Java类
4.9.4以包的形式管理Java类
本章小结
习题
第5章继承和多态
5.1类的继承
5.1.1继承的概念
5.1.2重写父类方法
5.1.3super关键字
5.2final关键字
5.2.1final关键字修饰类
5.2.2final关键字修饰方法
5.2.3final关键字修饰变量
5.3抽象类与接口
5.3.1抽象类
5.3.2接口
5.4多态
5.4.1多态概述
5.4.2对象类型转换和instanceof
5.4.3Object类
5.5访问控制
5.5.1公共权限
5.5.2私有权限
5.5.3默认权限
5.5.4保护权限
5.6内部类
5.6.1成员内部类
5.6.2静态内部类
5.6.3方法内部类
5.6.4匿名内部类
5.7泛型
5.7.1泛型数据类型
5.7.2接口中的泛型
5.7.3泛型类
5.7.4泛型方法
5.8反射
5.8.1使用Class类实例化对象
5.8.2使用Class实现反射
本章小结
习题
第6章面向对象综合案例
6.1案例场景
6.2案例实现A
6.2.1代码实现
6.2.2案例实现分析
6.3案例实现B
6.3.1代码实现
6.3.2案例实现分析
6.4案例实现C
6.4.1代码实现
6.4.2案例实现分析
6.5案例实现D
6.5.1代码实现
6.5.2案例实现分析
本章小结
习题
第7章Java常用类
7.1数据包装类
7.1.1构造方法产生包装类对象
7.1.2valueOf方法产生包装类对象
7.1.3将十进制转换为二进制和十六进制
7.1.4字符串与数值的转换
7.1.5自动装箱与拆箱
7.2String类
7.2.1构造字符串对象
7.2.2String类的常用方法
7.2.3对象的字符串表示
7.2.4字符串与字符数组
7.3StringBuffer类
7.3.1StringBuffer对象的创建
7.3.2StringBuffer类的常用方法
7.4StringTokenizer类
7.5System类与Runtime类
7.5.1System类
7.5.2Runtime类
7.6Math类与Random类
7.6.1Math类
7.6.2Random类
7.7日期操作类
7.7.1Date类
7.7.2Calendar类
7.7.3DateFormat类
7.7.4SimpleDateFormat类
本章小结
习题
第8章集合框架
8.1集合框架概述
8.1.1集合框架介绍
8.1.2集合框架层次结构
8.2Collection接口
8.3List集合
8.3.1List接口
8.3.2ArrayList类
8.3.3LinkedList类
8.3.4集合遍历
8.4Set集合
8.4.1Set接口
8.4.2HashSet类
8.4.3TreeSet类
8.4.4集合遍历
8.5Map集合
8.5.1Map接口
8.5.2HashMap类
8.5.3TreeMap类
8.5.4集合遍历
8.6Collections工具类
8.6.1复制、增加
8.6.2查找、替换
8.6.3排序
本章小结
习题
第9章异常处理
9.1异常处理概述
9.1.1异常的结构体系
9.1.2初识异常
9.2Java异常类型
9.2.1运行时异常
9.2.2非运行时异常
9.3异常捕捉、处理
9.3.1try…catch
9.3.2throws/throw
9.4自定义异常
9.4.1自定义异常
9.4.2自定义异常的抛出、捕捉与处理
本章小结
习题
第10章文件读写与数据流
10.1Java IO流
10.1.1IO流分类
10.1.2初识IO流
10.2File类
10.2.1File类的常用方法
10.2.2操作文件属性
10.2.3创建删除文件及文件夹
10.2.4遍历目录
10.3字节流
10.3.1字节流分类
10.3.2使用字节流读写文件
10.3.3使用字节流复制文件
10.3.4使用字节流缓冲区
10.3.5使用字节缓冲流
10.4字符流
10.4.1字符流分类
10.4.2使用字符流读写文件
10.4.3使用字符流缓冲区
10.4.4使用字符缓冲流
10.4.5转换流
本章小结
习题
第11章多线程
11.1线程概述
11.1.1进程与线程
11.1.2认识线程
11.2线程的创建
11.2.1支持线程的类
11.2.2继承Thread类创建多线程
11.2.3实现Runnable接口创建多线程
11.2.4两种实现多线程方式的对比分析
11.2.5后台线程
11.3线程的生命周期及状态转换
11.4线程调度与优先级
11.4.1线程调度策略
11.4.2线程优先级
11.5线程的基本控制
11.5.1线程测试
11.5.2线程插队
11.5.3线程让步
11.5.4线程休眠
11.5.5线程中断
11.6线程同步
11.6.1问题的提出
11.6.2同步代码块
11.6.3同步方法
11.6.4死锁
本章小结
习题
第12章数据库编程
12.1数据库基础知识
12.1.1数据
12.1.2数据库
12.1.3数据库管理系统
12.1.4数据库系统
12.2JDBC简介
12.2.1JDBC体系结构
12.2.2JDBC驱动类型
12.3JDBC常用API
12.3.1驱动程序管理
12.3.2数据库连接
12.3.3SQL语句
12.3.4数据
12.4搭建数据库编程环境
12.4.1MySQL数据库管理系统
12.4.2启动数据库服务器
12.4.3下载数据库驱动
12.4.4加载驱动程序
12.4.5连接数据库
12.4.6关闭数据库
12.5数据库基本操作
12.5.1数据库应用开发基本方法
12.5.2创建数据库与表
12.5.3插入数据
12.5.4查询数据
12.5.5修改数据
12.5.6删除数据
本章小结
习题
第13章网络编程
13.1概述
13.1.1网络通信基础
13.1.2TCP协议与UDP协议
13.1.3网络通信的支持机制
13.2URL通信机制
13.2.1URL简介
13.2.2URL类
13.2.3读取URL资源
13.2.4URLConnection类
13.3InetAddress类
13.4TCP通信
13.4.1TCP通信简介
13.4.2套接字
13.4.3Socket
13.4.4ServerSocket
13.4.5简单的TCP通信实例
13.5UDP通信
13.5.1UDP通信简介
13.5.2DatagramPacket
13.5.3DatagramSocket
13.5.4简单的UDP通信实例
本章小结
习题
第14章GUI开发
14.1GUI概述
14.1.1AWT简介
14.1.2Swing简介
14.1.3AWT与Swing区别
14.2一个简单的窗口应用
14.2.1基于Swing的GUI程序设计步骤
14.2.2模块化设计
14.3Swing容器
14.3.1顶层容器
14.3.2中间容器
14.4常用布局管理器
14.4.1BorderLayout边界布局管理器
14.4.2FlowLayout流式布局管理器
14.4.3CardLayout卡片布局管理器
14.4.4GridLayout网格布局管理器
14.4.5BoxLayout盒式布局管理器
14.4.6布局
14.5常用事件处理
14.5.1事件处理机制
14.5.2窗体事件
14.5.3鼠标事件
14.5.4键盘事件
14.5.5动作事件
14.5.6焦点事件
14.6Swing常用基本组件
14.6.1标签组件
14.6.2文本组件
14.6.3按钮组件
14.6.4菜单组件
14.6.5列表组件
本章小结
习题
第15章Java游戏开发综合案例
15.1飞机大战游戏概述
15.2系统设计与实现
15.2.1飞行物父类与接口
15.2.2英雄机
15.2.3敌飞机
15.2.4小蜜蜂
15.2.5子弹
15.2.5主程序
本章小结