Java从入门到精通(第5版)

更多详情

内容简介: 《Java从入门到精通(第5版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。全书分为27章,包括初识Java,熟悉Eclipse开发工具,Java语言基础,流程控制,字符串,数组,类和对象,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,Swing程序设计,集合类,I/O(输入/输出),反射,枚举类型与泛型,多线程,网络通信,数据库操作,Swing表格组件,Swing树组件,Swing其他高级组件,高级事件处理,AWT绘图,奔跑吧小恐龙和企业进销存管理系统等。

目录:
“开发资源库”目录…………XV第1篇 基础知识第1章 初识Java 2  视频讲解:17分钟1.1  Java简介 31.1.1 什么是Java语言 31.1.2 Java的应用领域 31.1.3 Java的版本 41.1.4 怎样学好Java 51.1.5 Java API文档 61.2 Java语言的特性 71.2.1 简单 71.2.2 面向对象 71.2.3 分布性 71.2.4 可移植性 71.2.5 解释型 81.2.6 安全性 81.2.7 健壮性 81.2.8 多线程 81.2.9 高性能 81.2.10 动态 81.3 搭建Java环境 91.3.1 JDK下载 91.3.2 Windows系统的JDK环境 101.4 小结 13第2章 熟悉Eclipse开发工具 14  视频讲解:21分钟2.1 熟悉Eclipse 152.1.1 Eclipse简介 152.1.2 下载Eclipse 152.1.3 安装Eclipse的中文语言包 172.1.4 Eclipse的配置与启动 192.1.5 Eclipse工作台 202.1.6 透视图与视图 212.1.7 菜单栏 212.1.8 工具栏 252.1.9 “包资源管理器”视图 252.1.10 “控制台”视图 262.2 使用Eclipse 262.2.1 创建Java项目 262.2.2 创建Java类文件 272.2.3 使用编辑器编写程序代码 282.2.4 运行Java程序 312.3 程序调试 312.4 小结 332.5 实践与练习 33第3章 Java语言基础 34  视频讲解:1小时45分钟3.1 Java主类结构 353.1.1 包声明 353.1.2 声明成员变量和局部变量 363.1.3 编写主方法 363.1.4 导入API类库 363.2 基本数据类型 363.2.1 整数类型 373.2.2 浮点类型 383.2.3 字符类型 393.2.4 布尔类型 403.3 变量与常量 403.3.1 标识符和关键字 413.3.2  声明变量 413.3.3 声明常量 423.3.4  变量的有效范围 433.4 运算符 443.4.1 赋值运算符 453.4.2 算术运算符 463.4.3 自增和自减运算符 473.4.4  比较运算符 473.4.5 逻辑运算符 483.4.6 位运算符 493.4.7 三元运算符 513.4.8 运算符优先级 513.5 数据类型转换 523.5.1 隐式类型转换 533.5.2 显式类型转换 543.6 代码注释与编码规范 543.6.1 代码注释 553.6.2 编码规范 563.7 小结 563.8 实践与练习 57第4章 流程控制 58  视频讲解:1小时21分钟4.1 复合语句 594.2 条件语句 604.2.1 if条件语句 604.2.2  switch多分支语句 644.3 循环语句 664.3.1 while循环语句 674.3.2 do…while循环语句 684.3.3 for循环语句 694.4 循环控制 714.4.1 break语句 714.4.2 continue语句 734.5 小结 754.6 实践与练习 75第5章 字符串 76  视频讲解:1小时53分钟5.1 String类 775.1.1 声明字符串 775.1.2 创建字符串 775.2 连接字符串 785.2.1 连接多个字符串 795.2.2 连接其他数据类型 795.3 获取字符串信息 805.3.1 获取字符串长度 815.3.2 字符串查找 815.3.3 获取指定索引位置的字符 825.4 字符串操作 835.4.1 获取子字符串 835.4.2 去除空格 845.4.3 字符串替换 855.4.4 判断字符串的开始与结尾 865.4.5 判断字符串是否相等 875.4.6 按字典顺序比较两个字符串 885.4.7 字母大小写转换 895.4.8 字符串分割 905.5 格式化字符串 925.5.1 日期和时间字符串格式化 925.5.2  常规类型格式化 955.6 使用正则表达式 965.7 字符串生成器 995.8 小结 1015.9 实践与练习 101第6章 数组 102  视频讲解:1小时21分钟6.1 数组概述 1036.2 一维数组的创建及使用 1036.2.1 创建一维数组 1036.2.2 初始化一维数组 1046.2.3 使用一维数组 1056.3 二维数组的创建及使用 1056.3.1 二维数组的创建 1056.3.2 二维数组初始化 1066.3.3 使用二维数组 1076.4 数组的基本操作 1086.4.1 遍历数组 1086.4.2 填充替换数组元素 1096.4.3 对数组进行排序 1116.4.4 复制数组 1126.4.5 数组查询 1136.5 数组排序算法 1156.5.1 冒泡排序 1156.5.2 直接选择排序 1176.5.3 反转排序 1196.6 小结 1216.7 实践与练习 121第7章 类和对象 122  视频讲解:1小时27分钟7.1 面向对象概述 1237.1.1 对象 1237.1.2 类 1247.1.3 封装 1257.1.4 继承 1257.1.5 多态 1267.2 类 1277.2.1 成员变量 1277.2.2 成员方法 1287.2.3  权限修饰符 1287.2.4 局部变量 1307.2.5 局部变量的有效范围 1307.2.6 this关键字 1317.3 类的构造方法 1327.4 静态变量、常量和方法 1337.5 类的主方法 1357.6 对象 1367.6.1 对象的创建 1367.6.2 访问对象的属性和行为 1387.6.3 对象的引用 1407.6.4 对象的比较 1417.6.5 对象的销毁 1417.7 小结 1427.8 实践与练习 142第8章 包装类 144  视频讲解:32分钟8.1 Integer 1458.2 Boolean 1478.3 Byte 1498.4 Character 1508.5 Double 1518.6 Number 1528.7 小结 1538.8 实践与练习 153第9章 数字处理类 154  视频讲解:38分钟9.1 数字格式化 1559.2 数学运算 1579.2.1 Math类 1579.2.2 常用数学运算方法 1589.3 随机数 1629.3.1 Math.random()方法 1629.3.2 Random类 1649.4 大数字运算 1659.4.1 BigInteger 1659.4.2 BigDecimal 1679.5 小结 1709.6 实践与练习 170第2篇 核心技术第10章 接口、继承与多态 172  视频讲解:1小时30分钟10.1 类的继承 17310.2 Object类 17610.3 对象类型的转换 17810.3.1 向上转型 17810.3.2 向下转型 17910.4 使用instanceof操作符判断对象类型 18010.5 方法的重载 18210.6 多态 18510.7 抽象类与接口 18610.7.1  抽象类 18610.7.2 接口 18810.8 小结 19010.9 实践与练习 191第11章 类的高级特性 192  视频讲解:35分钟11.1 Java类包 19311.1.1 类名冲突 19311.1.2 完整的类路径 19311.1.3 创建包 19411.1.4 导入包 19511.2 final变量 19711.3 final方法 19911.4 final类 20111.5  内部类 20111.5.1  成员内部类 20211.5.2  局部内部类 20611.5.3  匿名内部类 20611.5.4 静态内部类 20711.5.5 内部类的继承 20811.6 小结 20911.7 实践与练习 209第12章 异常处理 210  视频讲解:1小时8分钟12.1 异常概述 21112.2 处理程序异常错误 21112.2.1 错误 21212.2.2  捕捉异常 21212.3  Java常见异常 21412.4 自定义异常 21512.5 在方法中抛出异常 21612.5.1 使用throws关键字抛出异常 21612.5.2 使用throw关键字抛出异常 21712.6 运行时异常 21912.7 异常的使用原则 21912.8 小结 22012.9 实践与练习 220第13章 Swing程序设计 221  视频讲解:3小时2分钟13.1 Swing概述 22213.1.1 Swing特点 22213.1.2 Swing包 22213.1.3 常用Swing组件概述 22313.2 常用窗体 22313.2.1 JFrame窗体 22313.2.2 JDialog窗体 22513.3 标签组件与图标 22713.3.1 标签的使用 22713.3.2  图标的使用 22813.4 常用布局管理器 23013.4.1 绝对布局 23113.4.2  流布局管理器 23213.4.3 边界布局管理器 23313.4.4 网格布局管理器 23413.4.5 网格组布局管理器 23613.5 常用面板 24113.5.1 JPanel面板 24213.5.2 JScrollPane面板 24313.6 按钮组件 24413.6.1 提交按钮组件 24413.6.2 单选按钮组件 24513.6.3 复选框组件 24613.7 列表组件 24713.7.1  下拉列表框组件 24813.7.2  列表框组件 24913.8 文本组件 25113.8.1 文本框组件 25113.8.2 密码框组件 25213.8.3  文本域组件 25313.9 常用事件监听器 25413.9.1  监听事件简介 25413.9.2  动作事件监听器 25413.9.3  焦点事件监听器 25613.10 小结 25713.11  实践与练习 257第14章 集合类 258  视频讲解:60分钟14.1 集合类概述 25914.2 Collection接口 25914.3 List集合 26014.3.1 List接口 26014.3.2 List接口的实现类 26114.4 Set集合 26214.5 Map集合 26414.5.1 Map接口 26514.5.2 Map接口的实现类 26614.6 小结 26814.7  实践与练习 268第15章 I/O(输入/输出) 269  视频讲解:1小时40分钟15.1 流概述 27015.2 输入/输出流 27015.2.1 输入流 27015.2.2 输出流 27215.3 File类 27315.3.1 文件的创建与删除 27315.3.2 获取文件信息 27415.4 文件输入/输出流 27515.4.1  FileInputStream与FileOutputStream类 27615.4.2  FileReader和FileWriter类 27715.5 带缓存的输入/输出流 27915.5.1  BufferedInputStream与BufferedOutputStream类 27915.5.2 BufferedReader与BufferedWriter类 28015.6 数据输入/输出流 28115.7 ZIP压缩输入/输出流 28315.7.1 压缩文件 28315.7.2 解压缩ZIP文件 28515.8 小结 28615.9 实践与练习 287第16章 反射 288  视频讲解:1小时3分钟16.1 Class类与Java反射 28916.1.1 访问构造方法 29016.1.2 访问成员变量 29316.1.3 访问方法 29616.2 使用Annotation功能 29916.2.1 定义Annotation类型 29916.2.2 访问Annotation信息 30216.3 小结 30516.4 实践与练习 305第17章 枚举类型与泛型 306  视频讲解:1小时20分钟17.1 枚举类型 30717.1.1  使用枚举类型设置常量 30717.1.2 深入了解枚举类型 30917.1.3  使用枚举类型的优势 31417.2 泛型 31417.2.1 回顾向上转型与向下转型 31417.2.2 定义泛型类 31517.2.3  泛型的常规用法 31717.2.4 泛型的高级用法 32017.2.5  泛型总结 32217.3 小结 32317.4 实践与练习 323第18章 多线程 324  视频讲解:45分钟18.1 线程简介 32518.2 实现线程的两种方式 32518.2.1 继承Thread类 32618.2.2  实现Runnable接口 32718.3 线程的生命周期 32918.4 操作线程的方法 33118.4.1 线程的休眠 33118.4.2 线程的加入 33318.4.3 线程的中断 33418.4.4  线程的礼让 33618.5 线程的优先级 33618.6 线程同步 33818.6.1 线程安全 33818.6.2 线程同步机制 34018.7 小结 34218.8 实践与练习 342第19章 网络通信 343  视频讲解:60分钟19.1 网络程序设计基础 34419.1.1 局域网与因特网 34419.1.2 网络协议 34419.1.3 端口和套接字 34519.2 TCP程序设计基础 34619.2.1 InetAddress类 34619.2.2  ServerSocket类 34719.2.3 TCP网络程序 34819.3 UDP程序设计基础 35119.3.1 DatagramPacket类 35219.3.2 DatagramSocket类 35219.3.3 UDP网络程序 35319.4 小结 35619.5 实践与练习 356第20章 数据库操作 357  视频讲解:47分钟20.1 数据库基础知识 35820.1.1 什么是数据库 35820.1.2 数据库的种类及功能 35920.1.3 SQL语言 35920.2 JDBC概述 36120.2.1 JDBC-ODBC桥 36120.2.2 JDBC技术 36120.2.3 JDBC驱动程序的类型 36220.3 JDBC中常用的类和接口 36220.3.1 Connection接口 36220.3.2 Statement接口 36320.3.3 PreparedStatement接口 36320.3.4 DriverManager类 36420.3.5 ResultSet接口 36420.4 数据库操作 36520.4.1 连接数据库 36520.4.2 向数据库发送SQL语句 36720.4.3 处理查询结果集 36720.4.4 顺序查询 36720.4.5 模糊查询 36820.4.6 预处理语句 37020.4.7 添加、修改、删除记录 37120.5 小结 37320.6 实践与练习 373第3篇 高级应用第21章  Swing表格组件 375  视频讲解:33分钟21.1 利用JTable类直接创建表格 37621.1.1 创建表格 37621.1.2 定制表格 37821.1.3 操纵表格 38221.2 表格模型与表格 38421.2.1 利用表格模型创建表格 38421.2.2 维护表格模型 38621.3 提供行标题栏的表格 38821.4 小结 39221.5 实践与练习 392第22章 Swing树组件 393  视频讲解:20分钟22.1 简单的树 39422.2 处理选中节点事件 39522.3 遍历树节点 39722.4 定制树 39922.5 维护树模型 40122.6 处理展开节点事件 40422.7 小结 40622.8 实践与练习 406第23章 Swing其他高级组件 407  视频讲解:1小时30分钟23.1 高级组件面板 40823.1.1 分割面板 40823.1.2 选项卡面板 41023.1.3 桌面面板和内部窗体 41323.2 菜  单 41723.2.1  创建菜单栏 41723.2.2  创建弹出式菜单 41923.2.3  定制个性化菜单 42023.3 工具  栏 42423.4  文件选择器 42523.4.1  文件选择对话框 42523.4.2 使用文件过滤器 42623.5 进 度 条 42823.6 系 统 托 盘 42923.7 桌面集成控件 43123.8 小结 43123.9 实践与练习 432第24章 高级事件处理 433  视频讲解:1小时13分钟24.1 键 盘 事 件 43424.2 鼠 标 事 件 43624.3 窗体事件 43824.3.1 捕获窗体焦点变化事件 43824.3.2 捕获窗体状态变化事件 43924.3.3 捕获其他窗体事件 44124.4 选项事件 44224.5 表格模型事件 44424.6 小结 44624.7 实践与练习 447第25章 AWT绘图 448  视频讲解:1小时24分钟25.1 Java绘图 44925.1.1 Graphics 44925.1.2 Graphics2D 44925.2 绘制图形 44925.3 绘图颜色与画笔属性 45325.3.1 设置颜色 45325.3.2 画笔属性 45425.4 绘制文本 45525.4.1 设置字体 45625.4.2 显示文字 45625.5 绘制图片 45725.6 图像处理 45925.6.1 放大与缩小 45925.6.2 图像翻转 46125.6.3 图像旋转 46325.6.4 图像倾斜 46425.7 小结 46625.8 实践与练习 466第4篇 项目实战第26章  奔跑吧,小恐龙! 468  视频讲解:54分钟26.1 开发背景 46926.2  系统结构设计 46926.2.1  系统功能结构 46926.2.2  系统业务流程 47026.3  项目目录结构预览 47026.4  游戏模型设计 47126.4.1  恐龙类 47126.4.2  障碍类 47426.5  音效模块设计 47526.5.1  音频播放器 47626.5.2  音效工具类 47726.6  计分器模块设计 47826.7  视图模块设计 48126.7.1  主窗体 48126.7.2  游戏面板 48326.7.3  成绩对话框 48526.8  游戏核心功能设计 48726.8.1  刷新帧 48726.8.2  滚动背景 48826.8.3  碰撞检测 49926.8.4  键盘监听 49026.9  小结 491第27章 企业进销存管理系统 492  视频讲解:1小时12分钟27.1 系统分析 49327.1.1 需求分析 49327.1.2  可行性分析 49327.1.3  编写项目计划书 49427.2 系统设计 49627.2.1 系统目标 49627.2.2 系统功能结构 49627.2.3 系统业务流程图 49727.2.4 系统编码规范 49827.3 开发环境 49927.4 数据库与数据表设计 50027.4.1 数据库分析 50027.4.2 创建数据库 50027.4.3 创建数据表 50127.5 创建项目 50527.6 系统文件夹组织结构 50627.7 公共类设计 50627.7.1 Item公共类 50627.7.2 数据模型公共类 50727.7.3 Dao公共类 50927.8 系统登录模块设计 51927.8.1 设计登录窗体 51927.8.2 “密码”文本框的回车事件 52027.8.3 “登录”按钮的事件处理 52027.9 系统主窗体设计 52227.9.1 设计菜单栏 52227.9.2 设计工具栏 52427.9.3 设计状态栏 52527.10 进货单模块设计 52627.10.1  设计进货单窗体 52727.10.2 添加进货商品 52827.10.3 进货统计 52927.10.4 商品入库 53027.11 销售单模块设计 53227.11.1 设计销售单窗体 53327.11.2 添加销售商品 53327.11.3 销售统计 53427.11.4 商品销售 53527.12 库存盘点模块设计 53627.12.1 设计库存盘点窗体 53727.12.2 读取库存商品 53727.12.3 统计损益数量 53927.13 数据库备份与恢复模块设计 54027.13.1 设计窗体 54027.13.2 文件浏览 54027.13.3 备份数据库 54127.13.4 恢复数据库 54227.14 运行项目 54327.15  开发常见问题与解决 54427.15.1 无法打开内部窗体 54427.15.2 “关于”界面被其他窗体覆盖 54527.15.3 程序运行后没有出现闪屏界面 54527.16  小结 545


前言: 前  言丛书说明:“软件开发视频大讲堂”丛书(第1版)于2008年8月出版,因其编写细腻,易学实用,配备海量学习资源和全程视频等,在软件开发类图书市场上产生了很大反响,绝大部分品种在全国软件开发零售图书排行榜中名列前茅,2009年多个品种被评为“全国优秀畅销书”。“软件开发视频大讲堂”丛书(第2版)于2010年8月出版,第3版于2012年8月出版,第4版于2016年10月出版。十年锤炼,打造经典。丛书迄今累计重印426次,销售200多万册。不仅深受广大程序员的喜爱,还被百余所高校选为计算机、软件等相关专业的教学参考用书。“软件开发视频大讲堂”丛书(第5版)在继承前4版所有优点的基础上,将开发环境和工具全部更新为最新的JDK10和Eclipse最新版本,并且全部重新录制了视频,结合目前市场需要,进一步对丛书品种进行了完善,对相关内容进行了更新优化,使之更适合读者学习,为了方便教学,还提供了教学课件PPT。Java是Sun公司推出的能够跨越多平台的、可移植性最高的一种面向对象的编程语言。自面世以来,Java凭借其易学易用、功能强大的特点得到了广泛的应用。其强大的跨平台特性使Java程序可以运行在大部分系统平台上,甚至可在手持电话、商务助理等移动电子产品上运行,真正做到“一次编写,到处运行”。Java可用于编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等,这使得它成为应用范围最广泛的开发语言。随着Java技术的不断更新,在全球云计算和移动互联网的产业环境下,Java的显著优势和广阔前景将进一步呈现出来。本书内容本书提供了从入门到编程高手所必备的各类知识,共分4篇。第1篇:基础知识。本篇通过初识Java、熟悉Eclipse开发工具、Java语言基础、流程控制、字符串、数组、类和对象、包装类、数字处理类等内容的介绍,并结合大量的图示、实例、视频等,使读者快速掌握Java语言,为以后编程奠定坚实的基础。第2篇:核心技术。本篇介绍了接口、继承与多态,类的高级特性,异常处理,Swing程序设计,集合类,I/O(输入/输出),反射,枚举类型与泛型,多线程,网络通信和数据库操作等内容。学习完本篇,能够开发一些小型应用程序。第3篇:高级应用。本篇介绍了Swing表格组件、Swing树组件、Swing其他高级组件、高级事件处理、AWT绘图等内容。学习完本篇,能够开发高级的桌面应用程序、多媒体程序和打印程序等。第4篇:项目实战。本篇通过一个小恐龙游戏和一个大型、完整的企业进销存管理系统,运用软件工程的设计思想,让读者学习如何进行软件项目的实际开发。书中按照“编写项目计划书→系统设计→数据库设计→创建项目→实现项目→运行项目→项目打包部署→解决开发常见问题”的流程进行介绍,带领读者一步步亲身体验开发项目的全过程。本书特点由浅入深,循序渐进。本书以初、中级程序员为对象,先从Java语言基础学起,再学习Java的核心技术,然后学习Swing的高级应用,最后学习开发一个完整项目。讲解过程中步骤详尽,版式新颖,在操作的内容图片上以???……的编号 内容的方式进行标注,使读者在阅读时一目了然,从而快速掌握书中内容。微课视频,讲解详尽。为便于读者直观感受程序开发的全过程,书中大部分章节都配备了教学微视频,使用手机扫描正文小节标题一侧的二维码,即可观看学习,能快速引导初学者入门,感受编程的快乐和成就感,进一步增强学习的信心。实例典型,轻松易学。通过例子学习是最好的学习方式,本书通过“一个知识点、一个例子、一个结果、一段评析、一个综合应用”的模式,透彻详尽地讲述了实际开发中所需的各类知识。另外,为了便于读者阅读程序代码,快速学习编程技能,书中几乎每行代码都提供了注释。精彩栏目,贴心提醒。本书根据需要在各章安排了很多“注意”“说明”“技巧”等小栏目,让读者可以在学习过程中更轻松地理解相关知识点及概念,更快地掌握个别技术的应用技巧。应用实践,随时练习。书中几乎每章都提供了“实践与练习”,使读者能够通过对问题的解答重新回顾、熟悉所学知识,举一反三,为进一步学习做好充分的准备。读者对象初学编程的自学者;编程爱好者;大中专院校的老师和学生;相关培训机构的老师和学员;做毕业设计的学生;初、中级程序开发人员;程序测试及维护人员;参加实习的“菜鸟”程序员读者服务学习本书时,请先扫描封底的权限二维码(需要刮开涂层)获取学习权限,然后即可免费学习书中的所有线上线下资源。本书所附赠的各类学习资源,读者可登录清华大学出版社网站,在对应图书页面下获取其下载方式。也可扫描图书封底的“文泉云盘”二维码,获取其下载方式。为了方便解决本书疑难问题,读者朋友可加我们的企业QQ,也可以登录明日科技官方网站留言,我们将竭诚为您服务。