新書推薦:
《
天下的当代性:世界秩序的实践与想象(新版)
》
售價:NT$
352.0
《
德国天才4:断裂与承续
》
售價:NT$
500.0
《
妈妈的情绪,决定孩子的未来
》
售價:NT$
194.0
《
推拿纲目
》
售價:NT$
1836.0
《
精致考古--山东大学实验室考古项目论文集(一)
》
售價:NT$
1112.0
《
从天下到世界——国际法与晚清中国的主权意识
》
售價:NT$
347.0
《
血色帝国:近代英国社会与美洲移民
》
售價:NT$
265.0
《
海外中国研究·王羲之:六朝贵族的世界(艺术系列)
》
售價:NT$
811.0
|
編輯推薦: |
本书第1版是Java入门经典,累计10多万读者由此步入Java殿堂!为便于读者高效学习,快速掌握Java 编程方法,本书第2版提供完整的教学课件、完整的源代码与丰富的配套视频教程等内容。
|
內容簡介: |
本书是一部系统论述Java 编程语言、OOP编程思想以及函数式编程思想的立体化教程含纸质图书、教学课件、源代码与视频教程。全书共分为四篇: *篇Java基础第1~10章,第二篇面向对象第11~18章,第三篇Java进阶第19~28章,第四篇项目实战第29~30章。主要内容包括: Java语法基础、Java编码规范、数据类型、运算符、控制语句、数组、字符串、面向对象基础、继承与多态、抽象类与接口、枚举类、Java常用类、集合框架、泛型、Java函数式编程、异常处理、文件管理与IO 流、多线程、网络编程和Swing图形用户界面编程、反射、注解和数据库编程等技术。*后是项目实战,系统地讲解了两个项目: PetStore宠物商店和Java版QQ聊天工具开发过程。
为便于读者高效学习,快速掌握Java编程方法,本书作者精心制作了完整的教学课件、完整的源代码与丰富的配套视频教程以及在线答疑服务等内容。
|
關於作者: |
关东升一个在IT领域摸爬滚打20多年的老程序员、知名培训专家、畅销书作家。精通多种IT技术。参与设计和开发北京市公交一卡通大型项目,开发国家农产品追溯系统、金融系统微博等移动客户端项目,并在App Store发布多款游戏和应用软件。 长期为中国移动、中国联通、南方航空、中石油、工商银行、平安银行和天津港务局等企事业单位提供培训服务。先后出版了《iOS开发指南》《从零开始学Swift》《Android网络游戏开发实战》《Cocos2d-x实战》《Python从小白到大牛》《Kotlin从小白到大牛》等40多部图书。
|
目錄:
|
第一篇Java基础
第1章开篇综述
1.1Java语言历史
1.2Java语言特点
1.3Java平台
1.3.1JavaSE
1.3.2JavaEE
1.3.3JavaME
1.4Java虚拟机
1.5本章小结
1.6同步练习
第2章开发环境搭建
2.1JDK工具包
2.1.1Windows平台安装JDK14环境要求
2.1.2JDK下载和安装
2.1.3设置环境变量
2.2IntelliJIDEA开发工具
2.2.1IntelliJIDEA下载
2.2.2IntelliJIDEA安装
2.3使用文本编辑工具
2.4本章小结
2.5动手实践
第3章第一个Java程序
3.1使用IntelliJIDEA实现
3.1.1创建项目
3.1.2创建类
3.1.3运行程序
3.2文本编辑工具 JDK实现
3.2.1编写源代码文件
3.2.2编译程序
3.2.3运行程序
3.3代码解释
3.4本章小结
3.5动手实践:世界,你好!
第4章Java语法基础
4.1标识符、关键字和保留字
4.1.1标识符
4.1.2关键字
4.2Java分隔符
4.3变量
4.3.1变量声明
4.3.2使用Java10局部变量类型推断
4.4常量
4.5Java源代码文件
4.6包
4.6.1定义包
4.6.2引入包
4.6.3常用包
4.7本章小结
4.8同步练习
第5章Java编码规范
5.1命名规范
5.2注释规范
5.2.1文件注释
5.2.2文档注释
5.2.3代码注释
5.3代码排版
5.3.1空行
5.3.2空格
5.3.3缩进
5.3.4断行
5.4其他规范
5.5本章小结
5.6同步练习
第6章数据类型
6.1基本数据类型
6.1.1整数类型
6.1.2浮点类型
6.1.3字符类型
6.1.4布尔类型
6.2数值表示方式
6.2.1进制数字表示
6.2.2指数表示
6.3数值类型相互转换
6.3.1自动类型转换
6.3.2强制类型转换
6.4引用数据类型
6.5本章小结
6.6同步练习
第7章运算符
7.1算术运算符
7.1.1一元运算符
7.1.2二元运算符
7.1.3算术赋值运算符
7.2关系运算符
7.3逻辑运算符
7.4位运算符
7.5其他运算符
7.6运算符优先级
7.7本章小结
7.8同步练习
第8章控制语句
8.1分支语句
8.1.1if语句
8.1.2switch语句
8.1.3Java14中switch新特性
8.2循环语句
8.2.1while语句
8.2.2dowhile语句
8.2.3for语句
8.2.4增强for语句
8.3跳转语句
8.3.1break语句
8.3.2continue语句
8.4本章小结
8.5同步练习
8.6动手实践:计算水仙花数
第9章数组
9.1一维数组
9.1.1数组声明
9.1.2数组初始化
9.1.3案例:数组合并
9.2多维数组
9.2.1二维数组声明
9.2.2二维数组的初始化
9.2.3不规则数组
9.3本章小结
9.4同步练习
9.5动手实践:排序给定整数
第10章字符串
10.1Java中的字符串
10.2使用API文档
10.3不可变字符串
10.3.1String
10.3.2字符串池
10.3.3字符串拼接
10.3.4字符串查找
10.3.5字符串比较
10.3.6字符串截取
10.4可变字符串
10.4.1StringBuffer和StringBuilder
10.4.2字符串追加
10.4.3字符串插入、删除和替换
10.5本章小结
10.6同步练习
10.7动手实践:公民身份号码识别
第二篇面向对象
第11章面向对象基础
11.1面向对象编程
11.2面向对象三个基本特性
11.3类
11.3.1类声明
11.3.2类体
11.4方法重载
11.5封装性与访问控制
11.5.1私有级别
11.5.2默认级别
11.5.3保护级别
11.5.4公有级别
11.6静态变量和静态方法
11.7静态代码块
11.8本章小结
11.9同步练习
第12章对象
12.1创建对象
12.2空对象
12.3构造方法
12.3.1构造方法概念
12.3.2默认构造方法
12.3.3构造方法重载
12.3.4构造方法封装
12.4this关键字
12.5对象销毁
12.6本章小结
12.7同步练习
第13章继承与多态
13.1Java中的继承
13.2调用父类构造方法
13.3成员变量隐藏和方法覆盖
13.3.1成员变量隐藏
13.3.2方法的覆盖
13.4多态
13.4.1多态概念
13.4.2引用类型检查
13.4.3引用类型转换
13.5再谈final关键字
13.5.1final修饰变量
13.5.2final修饰类
13.5.3final修饰方法
13.6本章小结
13.7同步练习
第14章抽象类与接口
14.1抽象类
14.1.1抽象类概念
14.1.2抽象类声明和实现
14.2接口
14.2.1抽象类与接口区别
14.2.2接口声明和实现
14.2.3接口与多继承
14.2.4接口继承
14.2.5接口中的默认方法和静态方法
14.3本章小结
14.4同步练习
第15章枚举类
15.1枚举概述
15.2枚举类声明
15.2.1最简单形式的枚举类
15.2.2枚举类中成员变量和成员方法
15.2.3枚举类构造方法
15.3枚举常用方法
15.4本章小结
15.5同步练习
第16章Java常用类
16.1Java根类Object
16.1.1toString方法
16.1.2对象比较方法
16.2包装类
16.2.1数值包装类
16.2.2Character类
16.2.3Boolean类
16.2.4自动装箱拆箱
16.3Math类
16.4大数值
16.4.1BigInteger类
16.4.2BigDecimal类
16.5日期和时间相关类
16.5.1Date类
16.5.2日期格式化和解析
16.5.3Calendar类
16.6本章小结
16.7同步练习
第17章内部类
17.1内部类概述
17.1.1内部类的作用
17.1.2内部类的分类
17.2成员内部类
17.2.1实例成员内部类
17.2.2静态成员内部类
17.3局部内部类
17.4匿名内部类
17.5本章小结
17.6同步练习
第18章Java函数式编程
18.1Lambda表达式概述
18.1.1从一个示例开始
18.1.2Lambda表达式实现
18.1.3函数式接口
18.2Lambda表达式简化形式
18.2.1省略参数类型
18.2.2省略参数小括号
18.2.3省略return和大括号
18.3作为参数使用Lambda表达式
18.4访问变量
18.4.1访问成员变量
18.4.2捕获局部变量
18.5方法引用
18.6本章小结
18.7同步练习
18.8动手实践:找出素数
第三篇Java进阶
第19章异常处理
19.1从一个问题开始
19.2异常类继承层次
19.2.1Throwable类
19.2.2Error和Exception
19.2.3受检查异常和运行时异常
19.3捕获异常
19.3.1trycatch语句
19.3.2多catch代码块
19.3.3trycatch语句嵌套
19.3.4多重捕获
19.4释放资源
19.4.1finally代码块
19.4.2自动资源管理
19.5throws与声明方法抛出异常
19.6自定义异常类
19.7throw与显式抛出异常
19.8本章小结
19.9同步练习
19.10动手实践:编写自己的异常处理类
第20章对象容器集合
20.1集合概述
20.2List集合
20.2.1常用方法
20.2.2遍历集合
20.3Set集合
20.3.1常用方法
20.3.2遍历集合
20.4Map集合
20.4.1常用方法
20.4.2遍历集合
20.5本章小结
20.6同步练习
第21章泛型
21.1一个问题的思考
21.2使用泛型
21.3自定义泛型类
21.4自定义泛型接口
21.5泛型方法
21.6本章小结
21.7同步练习
21.8动手实践:编写自己的泛型类
第22章文件管理与IO流
22.1文件管理
22.1.1File类
22.1.2案例:文件过滤
22.2IO流概述
22.2.1Java流设计理念
22.2.2流类继承层次
22.3字节流
22.3.1InputStream抽象类
22.3.2OutputStream抽象类
22.3.3案例:文件复制
22.3.4使用字节缓冲流
22.4字符流
22.4.1Reader抽象类
22.4.2Writer抽象类
22.4.3案例:文件复制
22.4.4使用字符缓冲流
22.4.5字节流转换字符流
22.5本章小结
22.6同步练习
22.7动手实践:读写日期
第23章多线程编程
23.1基础知识
23.1.1进程
23.1.2线程
23.1.3主线程
23.2创建子线程
23.2.1实现Runnable接口
23.2.2继承Thread线程类
23.2.3使用匿名内部类和Lambda表达式实现线程体
23.3线程的状态
23.4线程管理
23.4.1线程优先级
23.4.2等待线程结束
23.4.3线程让步
23.4.4线程停止
23.5线程安全
23.5.1临界资源问题
23.5.2多线程同步
23.6线程间通信
23.7本章小结
23.8同步练习
23.9动手实践:时钟应用
第24章网络编程
24.1网络基础
24.1.1网络结构
24.1.2TCPIP
24.1.3IP地址
24.1.4端口
24.2TCPSocket低层次网络编程
24.2.1TCPSocket通信概述
24.2.2TCPSocket通信过程
24.2.3Socket类
24.2.4ServerSocket类
24.2.5案例:文件上传工具
24.2.6案例:聊天工具
24.3UDPSocket低层次网络编程
24.3.1DatagramSocket类
24.3.2DatagramPacket类
24.3.3案例:文件上传工具
24.3.4案例:聊天工具
24.4数据交换格式
24.4.1JSON文档结构
24.4.2使用第三方JSON库
24.4.3JSON数据编码和解码
24.4.4案例:聊天工具
24.5访问互联网资源
24.5.1URL概念
24.5.2HTTPHTTPS协议
24.5.3搭建自己的Web服务器
24.5.4使用URL类
24.5.5使用HttpURLConnection发送GET请求
24.5.6使用HttpURLConnection发送POST请求
24.5.7案例:Downloader
24.6本章小结
24.7同步练习
24.8动手实践:解析来自于Web的结构化数据
第25章Swing图形用户界面编程
25.1Java图形用户界面技术
25.2Swing技术基础
25.2.1Swing类层次结构
25.2.2Swing程序结构
25.3事件处理模型
25.3.1采用内部类处理事件
25.3.2采用Lambda表达式处理事件
25.3.3使用适配器
25.4布局管理
25.4.1FlowLayout布局
25.4.2BorderLayout布局
25.4.3GridLayout布局
25.4.4不使用布局管理器
25.5Swing组件
25.5.1标签和按钮
25.5.2文本输入组件
25.5.3复选框和单选按钮
25.5.4下拉列表
25.5.5列表
25.5.6分隔面板
25.5.7使用表格
25.6案例:图书库存
25.7本章小结
25.8同步练习
25.9动手实践:展示Web数据
第26章反射
26.1Java反射机制API
26.1.1java.lang.Class类
26.1.2java.lang.reflect包
26.2创建对象
26.2.1调用构造方法
26.2.2案例:依赖注入实现
26.3调用方法
26.4调用成员变量
26.5本章小结
26.6同步练习
第27章注解
27.1基本注解
27.1.1@Override
27.1.2@Deprecated
27.1.3@SuppressWarnings
27.1.4@SafeVarargs
27.1.5@FunctionalInterface
27.2元注解
27.3自定义注解
27.3.1声明注解
27.3.2案例:使用元注解
27.3.3案例:读取运行时注解信息
27.4本章小结
27.5同步练习
第28章数据库编程
28.1数据持久化技术概述
28.2MySQL数据库管理系统
28.2.1数据库安装和配置
28.2.2登录服务器
28.2.3常见的管理命令
28.3JDBC技术
28.3.1JDBCAPI
28.3.2加载驱动程序
28.3.3建立数据连接
28.3.4三个重要接口
28.4案例:数据CRUD操作
28.4.1数据库编程一般过程
28.4.2数据查询操作
28.4.3数据修改操作
28.5本章小结
28.6同步练习
28.7动手实践:从结构化文档迁移数据到数据库
第四篇项目实战
第29章项目实战1:开发PetStore宠物商店项目
29.1系统分析与设计
29.1.1项目概述
29.1.2需求分析
29.1.3原型设计
29.1.4数据库设计
29.1.5架构设计
29.1.6系统设计
29.2任务1:创建数据库
29.2.1迭代1.1:安装和配置MySQL数据库
29.2.2迭代1.2:编写数据库DDL脚本
29.2.3迭代1.3:插入初始数据到数据库
29.3任务2:初始化项目
29.3.1迭代2.1:配置项目构建路径
29.3.2迭代2.2:添加资源图片
29.3.3迭代2.3:添加包
29.4任务3:编写数据持久层代码
29.4.1迭代3.1:编写实体类
29.4.2迭代3.2:数据库帮助类DBHelper
29.4.3迭代3.3:编写DAO类
29.5任务4:编写表示层代码
29.5.1迭代4.1:编写启动类
29.5.2迭代4.2:编写自定义窗口类MyFrame
29.5.3迭代4.3:用户登录窗口
29.5.4迭代4.4:商品列表窗口
29.5.5迭代4.5:商品购物车窗口
29.6任务5:应用程序打包发布
29.6.1迭代5.1:处理TODO任务
29.6.2迭代5.2:打包
第30章项目实战2:开发Java版QQ聊天工具
30.1系统分析与设计
30.1.1项目概述
30.1.2需求分析
30.1.3原型设计
30.1.4数据库设计
30.1.5网络拓扑图
30.1.6系统设计
30.2任务1:创建服务器端数据库
30.2.1迭代1.1:安装和配置MySQL数据库
30.2.2迭代1.2:编写数据库DDL脚本
30.2.3迭代1.3:插入初始数据到数据库
30.3任务2:创建项目
30.3.1迭代2.1:创建QQ客户端项目
30.3.2迭代2.2:QQ客户端项目中添加资源图片
30.3.3迭代2.3:QQ客户端项目中添加包
30.3.4迭代2.4:QQ客户端项目添加JSONjava库
30.3.5迭代2.5:创建QQ服务器项目
30.3.6迭代2.6:QQ服务器项目中添加包
30.3.7迭代2.7:QQ服务器项目添加库
30.4任务3:编写QQ服务器项目外围代码
30.4.1迭代3.1:数据库帮助类DBHelper
30.4.2迭代3.2:编写UserDAO类
30.4.3迭代3.3:编写ClientInfo类
30.5任务4:QQ客户端项目UI实现
30.5.1迭代4.1:登录窗口实现
30.5.2迭代4.2:好友列表窗口实现
30.5.3迭代4.3:聊天窗口实现
30.6任务5:用户登录过程实现
30.6.1迭代5.1:客户端启动
30.6.2迭代5.2:客户端登录编程
30.6.3迭代5.3:服务器启动
30.6.4迭代5.4:服务器验证编程
30.7任务6:用户登录刷新好友列表
30.7.1迭代6.1:用户登录刷新好友列表服务器端编程
30.7.2迭代6.2:用户登录刷新好友列表客户端编程
30.8任务7:聊天过程实现
30.8.1迭代7.1:客户端用户1向用户3发送消息
30.8.2迭代7.2:服务器接收用户1消息与转发给用户3消息
30.8.3迭代7.3:客户端用户3接收用户1消息
30.9任务8:用户下线刷新好友列表过程
30.9.1迭代8.1:客户端编程
30.9.2迭代8.2:服务器端编程
30.10测试与运行
30.10.1启动服务器
30.10.2启动服务器失败分析
30.10.3启动客户端
30.10.4启动客户端失败分析
|
內容試閱:
|
距离《Java从小白到大牛》第1版出版已经三年多时间了,由于Oracle公司加快了Java版迭代步伐,Java14已经发布,读者需要知道更多的Java新功能。在这个大的背景下,我们推出了《Java从小白到大牛》第2版。
新变化
根据广大读者第1版的反馈,以及Java新功能的增加,《Java从小白到大牛》第2版变化如下:
(1)IDE工具不再推荐使用Eclipse,而是IntelliJIDEA。
(2)介绍Java10增强局部变量类型推断功能。
(3)介绍Java14中的switch语句。
(4)调整优化介绍Java函数式编程和Lambda表达式。
(5)在集合中增加介绍forEach方法。
(6)介绍搭建自己的Web服务器。
(7)数据库升级为MySQL8。
立体化图书
本书继续采用立体化图书概念,所谓立体化图书就是图书包含书籍、配套视频、配套课件、配套源代码和服务等内容。
本书读者对象
本书是一本Java编程语言入门图书。无论您是计算机相关专业的大学生,还是从事软件开发工作的职场人,这本书都适合您。但如果您想更深入学习Java应用技术,则需要选择其他图书。
使用书中源代码
书中包括了200多个完整示例,以及两个完整的案例项目源代码,读者可以到清华大学出版社网站下载。
下载本书源代码并解压代码,会看到如图01所示的目录结构。ch3~ch30是本书第3~30章示例代码。
配套代码大部分都是通过IntelliJIDEA工具创建的项目,读者可以通过IntelliJIDEA工具打开这些源代码项目。如果读者的IntelliJIDEA工具处于如图0-2所示的欢迎界面,则单击OpenorImport按钮,打开如图0-3所示的项目对话框,找到IntelliJIDEA项目文件夹,即图标的文件夹。如果读者已经进入IntelliJIDEA工具,可以通过选择菜单FileOpen命令打开如图0-3所示的项目对话框。
致谢
在此感谢清华大学出版社盛东亮编辑给我们提供了宝贵的意见。感谢智捷课堂团队赵志荣、赵大羽、关锦华、闫婷娇、刘佳笑和赵浩丞参与部分内容写作。感谢赵浩丞手绘了书中全部草图,并从专业的角度修改书中图片,力求更加真实完美地奉献给广大读者。感谢我的家人容忍我的忙碌,以及对我的关心和照顾,使我能抽出这么多时间投入全部精力专心编写此书。
由于Java更新迭代很快,而作者水平有限,书中难免存在瑕疵及不妥之处,请读者提出宝贵意见,以便再版时改进。
关东升2020年10月
|
|