好好学Java从零基础到项目实战欧阳燊趣味JAVA编程入门书籍JAVA程序开发设计技巧pdf下载pdf下载

好好学Java从零基础到项目实战欧阳燊趣味JAVA编程入门书籍JAVA程序开发设计技巧百度网盘pdf下载

作者:
简介:本篇主要提供好好学Java从零基础到项目实战欧阳燊趣味JAVA编程入门书籍JAVA程序开发设计技巧pdf下载
出版社:百华图书专营店
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

 书名:  好好学Java:从零基础到项目实战
 出版社:  
 出版日期  2020
 ISBN号:  9787302554189

本书是一部Java基础开发教程,使用Java 11 版本,以IntelliJ IDEA为开发环境,从软件工程的视角讲解Java编程的各种知识,由浅入深,由理论到实战,带领读者走进Java编程的广袤世界。全书共分为17章。其中第1~6章介绍Java的常见数据类型及开发,包括基本变量类型、数组类型、包装变量类型、字符串类型以及日期时间类型;第7~11章介绍面向对象的开发过程,包括面向对象的三要素(封装、继承、多态)、面向对象的扩展(嵌套、枚举、抽象、接口)、面向对象的应用(容器、泛型、文件IO)、面向对象的特殊处理(异常、反射、注解)以及基于面向对象的函数式编程;第12~14章介绍Java语言的界面编程,包括AWT、Swing、JavaFX三大图形框架的编码运用;第15~17章介绍Java编程的高级开发,包括多线程、网络通信和数据库操作,各章末尾着重描述打地鼠游戏、即时通信工具、诗歌管理系统三大实战项目的软件设计及编码实现。
本书适用于Java编程的初学者、有志于转型Java开发的程序员,也可作为大中专院校与培训机构的Java基础课程教材。

欧阳燊,硕士,CSDN博客专家,有16年以上软件开发经验,熟悉C/C++、Java、Android开发,著有畅销书《Android Studio开发实战:从零基础到App上线》。

本书是一本Java入门教程,可以帮助读者迅速上手Java基础编程。
本书详细地讲解了Java语言的语法构成和编程技巧,但并不局限于传统的Java编码说明,而是以软件工程的视角铺叙编程知识,从基本的数学公式到专门的求解算法,从多样的数据结构到常见的设计模式,这些知识不仅适
用于Java语言,也适用于其他编程语言。如此编写的目的是,力图让读者掌握通用的编程技能,而非仅仅学会某个语言的编码,以后读者若去学习其他编程语言,则只要具备通用的编程技能,即可借此触类旁通、事半功倍。
全书共17章内容,分为4部分,其中第1~6章介绍了Java的常见数据类型及其开发,包括基本变量类型、数组类
型、包装变量类型、字符串类型,以及日期时间类型;
第7~11章介绍了面向对象的开发过程,包括面向对象的三要素(封装、继承、多态),面向对象的扩展(嵌套、
枚举、抽象、接口),面向对象的应用(容器、泛型、文件IO),面向对象的特殊处理(异常、反射、注解)
以及基于面向对象的函数式编程;
第12~14章介绍了Java语言的界面编程,包括AWT、Swing、JavaFX三大图形框架的编码运用;
第15~17章介绍了Java编程的高级开发,包括多线程、网络通信和数据库操作,各章末尾着重描述了打地鼠游戏、即时通信工具、诗歌管理系统三大实战项目的软件设计及其编码实现。

第1章  Java开发环境搭建    1
1.1  JDK的安装和配置    1
1.1.1  Java的发展历程    1
1.1.2  下载和安装JDK    2
1.1.3  配置环境变量    4
1.2  IntelliJ IDEA的安装与配置    5
1.2.1  安装IntelliJ IDEA    6
1.2.2  配置IntelliJ IDEA    7
1.2.3  运行个Java程序    9
1.3  Java虚拟机(JVM)    12
1.3.1  Java程序的运行机制    13
1.3.2  JVM的体系结构    13
1.3.3  JVM、JRE与JDK的区别    15
1.4  Java编程的基本概念    16
1.4.1  Java的代码结构    16
1.4.2  Java的特殊官吏    19
1.4.3  Java的度量衡    22
1.5  小结    25
第2章  数学运算    26
2.1  数值变量    26
2.1.1  数值变量的类型    26
2.1.2  特殊数字的表达    28
2.1.3  强制类型转换    30
2.2  算术运算    32
2.2.1  四则运算符    32
2.2.2  赋值运算符    34
2.2.3  一元运算符    35
2.3  数学函数    37
2.3.1  取整函数    37
2.3.2  取随机数    38
2.3.3  科学计算函数    38
2.3.4  三角函数    39
2.4  实战练习    39
2.4.1  利用牛顿迭代法求平方根    39
2.4.2  利用割圆术求解圆周率    42
2.5  小结    46
第3章  逻辑控制    47
3.1  逻辑运算    47
3.1.1  布尔类型及其运算    47
3.1.2  关系运算符    49
3.1.3  运算符的优先级顺序    50
3.1.4  按位逻辑与短路逻辑    52
3.2  控制语句    53
3.2.1  条件分支    53
3.2.2  多路分支    54
3.2.3  while循环    56
3.2.4  for循环    58
3.3  数组    59
3.3.1  一维数组    60
3.3.2  二维数组    62
3.3.3  冒号的几种用法    64
3.3.4  数组工具Arrays    67
3.4  实战练习    71
3.4.1  求解“鸡兔同笼”问题    71
3.4.2  求解“韩信点兵”问题    72
3.4.3  利用二分查找法定位数组
元素    74
3.5  小结    77
第4章  方法与包装    78
4.1  方法定义    78
4.1.1  方法的组成形式    78
4.1.2  方法的输入参数    80
4.1.3  方法的输出参数    83
4.2  基本类型包装    86
4.2.1  数值类型包装    86
4.2.2  包装变量的运算    88
4.2.3  布尔类型包装    89
4.3  大数字类型    90
4.3.1  大整数BigInteger    90
4.3.2  大小数BigDecimal    91
4.4  实战练习    93
4.4.1  通过方法递归实现阶乘
函数    93
4.4.2  利用牛顿迭代法求大数
开方    95
4.4.3  利用大数字求更的
圆周率    97
4.5  小结    100
第5章  字符串与正则表达式    101
5.1  字符    101
5.1.1  字符类型    101
5.1.2  字符型与整型的相互转化    102
5.1.3  字符包装类型    104
5.2  字符串    105
5.2.1  字符串的赋值与转换    105
5.2.2  字符串的格式化    107
5.2.3  其他常见的字符串方法    111
5.3  正则表达式    113
5.3.1  利用正则串分割字符串    113
5.3.2  利用正则表达式校验
字符串    117
5.4  实战练习    120

5.4.1  从地址串中解析收件人
信息    120
5.4.2  校验身份证号码的合法性    124
5.5  小结    128
第6章  日期时间    129
6.1  日期工具Date    129
6.1.1  日期工具的用法    129
6.1.2  日期时间的格式化    131
6.2  日历工具Calendar    134
6.2.1  日历工具的用法    134
6.2.2  日历工具的常见应用    136
6.3  Java 8的本地日期时间工具    139
6.3.1  本地日期LocalDate和本地
时间LocalTime    139
6.3.2  本地日期时间与字符串的
互相转换    142
6.4  实战练习    144
6.4.1  从1582年问题浅谈Date
工具的局限    144
6.4.2  利用本地日期时间实现
万年历    148
6.5  小结    150
第7章  类的三要素    151
7.1  类的封装    151
7.1.1  类的成员定义    151
7.1.2  类的构造方法    156
7.1.3  this关键字的用法    157
7.2  类的继承    159
7.2.1  类的简单继承    159
7.2.2  父类:关键字super的
用法    161
7.2.3  几种开放性修饰符    164
7.3  类的多态    165
7.3.1  多态的发生场景    165
7.3.2  对象的类型检查    167
7.3.3  终态:关键字final的用法    169
7.4  实战练习:定义银行的账户类    171
7.5  小结    177
第8章  特殊的类    178
8.1  类的嵌套    178
8.1.1  内部类和嵌套类    178
8.1.2  静态:关键字static的
用法    181
8.1.3  枚举类型    185
8.2  类的抽象    188
8.2.1  抽象类    188
8.2.2  简单接口    190
8.2.3  Java 8之后的扩展接口    193
8.2.4  匿名内部类    195
8.3  函数式编程    198
8.3.1  Lambda表达式    198
8.3.2  函数式接口的定义    200
8.3.3  双冒号标记的方法引用    202
8.3.4  静态方法引用和实例方法
引用    206
8.4  实战练习    210
8.4.1  实现建造者模式    210
8.4.2  实现单例模式    214
8.5  小结    218
第9章  容器与泛型    219
9.1  容器的种类    219
9.1.1  集合:HashSet和TreeSet    219
9.1.2  映射:HashMap和
TreeMap    224
9.1.3  清单:ArrayList和
LinkedList    226
9.2  泛型的规则    228
9.2.1  从泛型方法探究泛型的
起源    229
9.2.2  泛型类的定义及其运用    232
9.2.3  Java 8新增的几种泛型
接口    234
9.3  容器的加工    240
9.3.1  容器与数组互转    240
9.3.2  容器工具Collections    242
9.3.3  Java 8新增的流式处理    243
9.4  实战练习    246
9.4.1  利用泛型实现通用的二分
查找算法    246
9.4.2  借助容器实现两种常见的
排队算法    249
9.5  小结    253
第10章  类的进阶用法    254
10.1  异常    254
10.1.1  常见的程序异常    254
10.1.2  内存溢出的两种错误    257
10.1.3  异常的处理:扔出与捕捉    259
10.1.4  如何预防异常的产生    263
10.1.5  使用Optional规避空指针
异常    265
10.2  反射    269
10.2.1  面向对象的后门——
反射    269
10.2.2  利用反射技术操作私有
属性    271
10.2.3  利用反射技术操作私有
方法    273
10.3  注解    275
10.3.1  如何使用系统自带的
注解    276
10.3.2  注解的基本单元——
元注解    278
10.3.3  利用注解技术检查空
指针    279
10.4  小结    283
第11章  文件I/O处理    284
11.1  文件读写    284
11.1.1  文件与目录的管理    284
11.1.2  字符流读写    286
11.1.3  缓冲区读写    290
11.1.4  随机访问文件的读写    293
11.2  I/O输入输出流    295
11.2.1  文件I/O字节流    296
11.2.2  缓存I/O字节流    297
11.2.3  对象序列化    299
11.2.4  I/O流处理简单的数据
压缩    302
11.3  NIO文件编程    304
11.3.1  文件通道FileChannel    304
11.3.2  字节缓存ByteBuffer    307
11.3.3  文件通道的性能优势    309
11.3.4  路径工具Paths和Files    311
11.4  实战练习:文件的分割与合并    314
11.5  小结    317
第12章  AWT界面编程    318
12.1  AWT的窗口面板    318
12.1.1  框架Frame    318
12.1.2  按钮Button    320
12.1.3  布局Layout    322
12.2  AWT的文本控件    324
12.2.1  标签Label    324
12.2.2  输入框TextField和
TextArea    328
12.2.3  选择框Checkbox    330
12.3  AWT的图像处理    332
12.3.1  自定义图像视图    332
12.3.2  绘图工具Graphics    334
12.3.3  利用Graphics2D加工
图像    337

12.4  实战练习:生成验证码图片    341
12.5  小结    344
第13章  Swing界面编程    345
13.1  Swing的基础界面    345
13.1.1  框架JFrame和按钮
JButton    345
13.1.2  标签JLabel    347
13.1.3  利用标签显示图像    349
13.2  Swing的简单控件    350
13.2.1  输入框的种类    351
13.2.2  选择框的种类    352
13.2.3  列表框的种类    355
13.3  Swing的高级控件    359
13.3.1  表格JTable    359
13.3.2  基本对话框    361
13.3.3  文件对话框    364
13.4  实战练习    368
13.4.1  简单的登录界面    368
13.4.2  将Java代码导出JAR包    371
13.5  小结    373
第14章  JavaFX界面编程    374
14.1  JavaFX的基本场景    374
14.1.1  JavaFX的初始配置    374
14.1.2  窗格Pane    377
14.1.3  按钮Button和标签Label    379
14.1.4  箱子HBox和VBox    382
14.2  JavaFX的常用控件    385
14.2.1  输入框的种类    385
14.2.2  选择框的种类    388
14.2.3  列表与表格    393
14.2.4  对话框的种类    397
14.3  JavaFX的布局设计    403
14.3.1  FXML布局的基本格式    403

14.3.2  实现FXML对应的
控制器    407
14.3.3  FXML布局的伸展适配    409
14.4  实战练习    412
14.4.1  房贷计算器(简易版)    412
14.4.2  JavaFX导出可执行程序    417
14.4.3  房贷计算器(完整版)    420
14.5  小结    424
第15章  多线程    425
15.1  线程的调度    425
15.1.1  线程的基本用法    425
15.1.2  任务Runnable    430
15.1.3  过程Callable    433
15.1.4  定时器与定时任务    435
15.2  并发的控制    437
15.2.1  同步:关键字synchronized的
用法    437
15.2.2  通过加解锁避免资源
冲突    440
15.2.3  信号量Semaphore的请求与
释放    443
15.2.4  线程间的通信方式    447
15.3  线程池管理    451
15.3.1  普通线程池    451
15.3.2  定时器线程池    456
15.3.3  分治框架Fork/Join    459
15.4  实战练习    463
15.4.1  秒表计时器    463
15.4.2  打地鼠游戏    467
15.5  小结    473
第16章  网络通信    474
16.1  网络交互的数据格式    474
16.1.1  URL地址的组成格式    474
16.1.2  JSON串的解析    477
16.1.3  XML报文的解析    482
16.2  HTTP接口访问    486
16.2.1  GET方式的HTTP调用    486
16.2.2  POST方式的HTTP
调用    492
16.2.3  Java 11新增的
HttpClient    495
16.2.4  HttpClient实现下载与
上传    499
16.3  套接字Socket通信    502
16.3.1  利用Socket传输文本    502
16.3.2  使用Socket传输文件    507
16.3.3  采用UDP协议的Socket
通信    510
16.3.4  利用HttpServer搭建简易
服务器    512
16.4  实战练习    514
16.4.1  HTTP测试工具    515
16.4.2  让Java程序输出日志
文件    519
16.4.3  多人即时通信——仿QQ
聊天    523
16.5  小结    534
第17章  数据库操作    535
17.1  MySQL环境搭建    535
17.1.1  安装MySQL数据库    535
17.1.2  安装MySQL工作台    547
17.1.3  数据库操纵语言SQL的
用法    553
17.2  JDBC编程    557
17.2.1  JDBC的应用原理    557
17.2.2  通过JDBC管理数据库    559
17.2.3  通过JDBC查询数据记录    562
17.2.4  预报告PreparedStatement    565
17.3  数据库连接池    567
17.3.1  C3P0连接池    567
17.3.2  Druid连接池    569
17.4  实战练习    572
17.4.1  代码生成工具    572
17.4.2  让Java程序读取配置
文件    578
17.4.3  诗歌管理系统——古诗
三百首    581
17.5  小结    589
附录A  服务端工程的使用说明    590
A.1  下载并安装Tomcat    590
A.2  给IDEA安装Tomcat插件    591
A.3  添加Tomcat的运行配置    592
A.4  启动Tomcat服务器    595

编程的本质是利用计算机为人们解决实际问题,这些问题可大可小,小的如加减乘除,大的如飞天登月,都离不开计算机指令的

操作。但是计算机在诞生之初并不如此智能,相反它只会几种简单的指令,跟牙牙学语的婴儿差不多,那么计算机又是怎样精通十八

般武艺的呢?虽然大家知道计算机程序由编程实现,但背后离不开两大基础学科的发展壮大,其中一个是数学,另一个是逻辑学。
数学是一切自然科学的基础,借助于数学已经发现的各种算法和定理,计算机才能通过四则运算实现各种科学计算,从而具备计算器

的演算功能。而逻辑学提供了科学检验的方法,根据存在的某种事实,经过判断去推理结果,使得计算机能够完成状态机的因果判定

。把计算器与状态机结合在一起,并利用编程技术进一步封装方法和结构,使之开展更复杂的业务操作,由此诞生了早期的软件程序

,逐步发展成专业的软件开发领域。
依据编程规范的差异,程序开发又可划分为各类编程语言,从早的机器语言,到稍后的汇编语言,再到以C语言为代表的中级语言

,继之以C++、Java为代表的高级语言,每种语言顺应时代要求各领风骚若干年。Java便是其中一个长盛不衰的语言,不仅老而且新

。说它老,是因为Java诞生于20世纪90年代,可谓来自20世纪的老古董;说它新,是因为它每半年就发布一个新版本,迭代之快令人

目不暇接。早在Java问世之时,它就提供了面向对象、跨平台运行等强大特性;自Java 8开始,它又增加了函数式编程、流式处理等

先进理念,一直站在编程领域的发展前沿。
原本Java语言的设计者打算让它涉猎三个开发方向,分别是:用于服务器的JavaEE、用于桌面程序的JavaSE、用于移动终端的JavaME

。经过二十余年的大浪淘沙,Java编程在企业服务器开发方向始终屹立不倒,它在国内的市场份额远超另外两个Web开发框架——PHP

和.NET。此外,Java作为安卓系统的主要开发语言,它在移动互联网时代更是大放异彩。一个拥有Java编程技能的求职者,既可投递

Web开发岗位,又能应聘App开发职位,就业渠道无疑拓宽了许多。
因此,在未来的相当长时期之内,Java编程都将是软件开发的主力军,而非像一些语言那样昙花一现。尽管时代热点此起彼伏,各路

豪强语言轮番登台,但多数语言缺乏庞大的产业基础,众人一窝蜂追逐的结果,必然导致学成之日即是失业之时。唯有Java历经数十

年的风风雨雨,至今仍保有国内大编程语言的宝座。况且Java拥有这些年沉淀下来的众多框架组件,早已筑造一条难以逾越的护

城河,加之各行各业推行“互联网+”的革新,长远来看,这场数字变革将持续开展,带动Java人才的需求居高不下。
本书是一本Java入门教程,可以帮助读者迅速上手Java基础编程。作为一本编程图书,本书将详细讲解Java语言的语法构成和编程技

巧,但并不局限于传统的Java编码说明,而是以软件工程的视角铺叙编程知识,从基本的数学公式到专门的求解算法,从多样的数据

结构到常见的设计模式,这些知识不仅适用于Java语言,也适用于其他编程语言。如此写作的目的是,

力图让读者掌握通用的编程技能,而非仅仅学会某个语言的编码,以后读者若去学习其他编程语言,只要具备通用的编程技能,即可

借此触类旁通、事半功倍。
全书共17章内容,可分为4大部分,其中第1~6章介绍Java的常见数据类型及开发,包括基本变量类型、数组类型、包装变量类型、

字符串类型以及日期时间类型;第7~11章介绍面向对象的开发过程,包括面向对象的三要素(封装、继承、多态)、面向对象的扩

展(嵌套、枚举、抽象、接口)、面向对象的应用(容器、泛型、文件IO)、面向对象的特殊处理(异常、反射、注解)以及基于面

向对象的函数式编程;第12~14章介绍Java语言的界面编程,包括AWT、Swing、JavaFX三大图形框架的编码运用;第15~17章介绍

Java编程的高级开发,包括多线程、网络通信和数据库操作,各章末尾着重描述打地鼠游戏、即时通信工具、诗歌管理系统三大实战

项目的软件设计及编码实现。
所谓零基础指的是Java零基础,不是数学零基础,读者在学习本书之前,应当至少掌握初中数学知识,像方程式、坐标系、勾股定理

、三角函数这些概念均需了解。所以,只要是正常接受九年义务教育的读者,均已具备学习本书的条件,并非只有计算机相关专业才

可学习Java编程。
本书所有代码都基于Java 11编写,且在IDEA上面编译和调试通过,读者在阅读本书时,若对书中的内容有疑问,可在笔者的博客

(https://blog.csdn.net/aqi00)上留言,或者关注笔者的微信公众号“老欧说安卓”,更快、更方便地阅读技术干货。至于本书

的源码,可访问笔者的GitHub主页获取,GitHub地址是https://github.com/aqi00/java。读者也可以扫描以下二维码获取本书

的源码、38节Java入门教学视频和PPT教学课件:
               
如果在下载过程中出现问题,请发送邮件至:booksoge@126.com获得帮助,邮件标题为“好好学Java:从零基础到项目实战”。
,感谢王金柱编辑的热情指点,感谢出版社同仁的辛勤工作,感谢我的家人一年多来的默默支持,感谢各位师长的谆谆教导,没

有他们的鼎力相助,本书就无法顺利完成。


                                                                     欧阳燊
                                                                   2020年1月