Java王者归来:从入门迈向高手

Java王者归来:从入门迈向高手
作 者: 洪锦魁
出版社: 清华大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  洪锦魁,中国台湾省计算机专家,IT知名作者。? 近年来作品:? Java王者归来? Python王者归来? HTML5 CSS3王者归来? R语言迈向大数据之路其著作特色:所有程序语法会依特性分类,同时以实用的程序范例进行解说,让读者可以事半功倍地轻松掌握相关知识。

内容简介

本书的前7章内容主要是叙述程序语言的基础,包含基本运算、流程控制、循环控制与数组。笔者使用了大量的图例与程序实例引导读者,只要配合书中实例操作与执行,就可以获得Java程序设计能力。第8~25章是Java面向对象的核心,笔者在说明整体概念时,也讲明了Java内建类的使用以及核心内容,例如正则表达式、继承与多形、抽象类、接口、包装类别、程序异常处理、多线程、输入与输出、压缩与解压缩文件、Java Collection等。第26~31章则讲解了窗口程序设计、绘图与动画、网络程序设计等。

图书目录

目录

第1章 Java基本概念

1-1 认识Java2

1-2 Java的起源2

1-3 Java之父2

1-4 Java发展史3

1-5 Java的三大平台3

1-5-1 Java SE3

1-5-2 Java EE3

1-5-3 Java ME3

1-6 认识Java SE平台的JDK/JRE/JVM4

1-6-1 JDK4

1-6-2 JRE5

1-6-3 JVM5

1-7 Java跨平台原理5

1-7-1 一般程序的编译与执行5

1-7-2 Java程序的编译与执行5

1-8 Java语言的特点6

习题7

第2章 Java程序从零开始

2-1 我的个Java程序9

2-1-1 程序设计流程9

2-1-2 编辑Java程序代码9

2-1-3 编译Java程序9

2-1-4 执行Java程序9

2-1-5 认识classpath10

2-2 解析Java的程序结构10

2-3 程序注释11

程度实操题13

习题14

第3章 Java语言基础

3-1 认识变量16

3-1-1 变量的声明16

3-1-2 设置有意义的变量名称17

3-1-3 了解注释的意义17

3-1-4 变量的命名规则18

3-2 基本数据类型19

3-2-1 整数数据类型19

3-2-2 浮点数数据类型22

3-2-3 字符数据类型23

3-2-4 布尔值25

3-3 字符串数据类型25

3-4 常量的概念26

3-5 精准控制格式化的输出27

程序实操题28

习题28

第4章 程序基本运算

4-1 程序设计的专有名词31

4-1-1 表达式31

4-1-2 运算符与操作数31

4-1-3 操作数也可以是一个表达式31

4-1-4 指定运算符31

4-1-5 二元运算符31

4-1-6 单元运算符32

4-1-7 三元运算符32

4-2 指定运算符的特殊用法说明32

4-3 基本数学运算33

4-3-1 四则运算33

4-3-2 求余数%33

4-3-3 递增与递减运算符33

4-3-4 正负号34

4-3-5 无限大34

4-3-6 发生异常35

4-3-7 非数字35

4-3-8 Java语言控制运算的优先级35

4-4 复合指定运算符35

4-5 布尔值、反向运算符、比较运算符与

逻辑运算符36

4-5-1 布尔值36

4-5-2 反向运算符36

4-5-3 比较运算符37

4-5-4 逻辑运算符37

4-5-5 再谈三元运算符38

4-6 位运算39

4-6-1 ~ 运算符40

4-6-2 位逻辑运算符40

4-6-3 位移位运算符41

4-6-4 位运算的复合指定运算符42

4-7 Java运算符优先级43

4-8 数据类型的转换44

4-8-1 指定运算符自动数据

类型的转换44

4-8-2 自动数据类型的转换46

4-8-3 强制数据类型的转换47

4-9 数据的转换与输入48

4-9-1 将整数转成字符串方式输出48

4-9-2 屏幕输入48

4-10 浅谈import与java.lang包50

4-10-1 再谈import50

4-10-2 java.lang包51

4-11 程序语句的结合与分行52

4-11-1 语句的结合52

4-11-2 语句的分行52

程序实操题52

习题53

第5章 程序流程控制

5-1 if语句56

5-1-1 基本if语句56

5-1-2 if … else语句58

5-1-3 再看三元运算符60

5-1-4 if … else if …else语句60

5-1-5 嵌套if语句63

5-2 switch语句64

程序实操题68

习题68

第6章 循环控制

6-1 for循环72

6-2 嵌套for循环73

6-3 while循环74

6-4 嵌套while循环75

6-5 do … while循环75

6-6 无限循环76

6-7 循环与break语句77

6-8 循环与continue语句78

6-9 循环标签与break/continue79

6-10 将循环应用于Scanner

类的输入检查80

6-11 循环相关的程序应用81

程序实操题82

习题83

第7章 数组

7-1 认识数组86

7-2 数组的声明与应用86

7-2-1 数组的声明86

7-2-2 数组的空间配置87

7-2-3 同时执行数组的声明与配置88

7-2-4 数组的属性length88

7-2-5 数组初值的设置88

7-2-6 特殊数组声明与初值设置89

7-2-7 常见的数组使用错误——索

引值超出数组范围90

7-2-8 foreach循环遍历数组90

7-2-9 与数组有关的程序实例90

7-3 Java参照数据类型92

7-3-1 原始数据类型93

7-3-2 参照数据类型93

7-4 垃圾回收94

7-4-1 参照计数95

7-4-2 更改参照95

7-4-3 参照计数减少的其他可能97

7-4-4 垃圾回收97

7-5 多维数组的原理97

7-5-1 多维数组元素的声明97

7-5-2 配置多维数组的空间98

7-5-3 声明与设置二维数组

元素的初值98

7-5-4 分层配置二维数组99

7-5-5 不同长度的二维数组99

7-6 Java命令行参数100

7-6-1 Java程序执行的参数数量100

7-6-2 命令行参数内容101

7-7 二维数组的程序应用101

程序实操题102

习题103

第8章 类与对象

8-1 认识对象与类106

8-2 定义类与对象107

8-2-1 定义类107

8-2-2 声明与建立类对象108

8-3 类的基本实例108

8-3-1 建立类的属性108

8-3-2 存取类的成员变量108

8-3-3 调用类的方法109

8-4 类含多个对象109

8-4-1 类含多个对象的应用109

8-4-2 建立类的对象数组110

8-5 类的参照数据类型111

8-5-1 类的参照内存图示111

8-5-2 类对象属性的初值111

8-5-3 细读类参照的内存图示112

8-6 再谈方法113

8-6-1 基本参数的传递113

8-6-2 认识形参与实参114

8-6-3 参数传递的方法114

8-6-4 方法的返回值116

8-6-5 可变参数的设计117

8-7 变量的有效范围118

8-7-1 for循环的索引变量118

8-7-2 foreach循环118

8-7-3 局部变量119

8-7-4 类内成员变量与方法变量有

相同的名称120

8-8 匿名数组121

8-9 递归式方法设计122

8-10 河内塔问题122

程序实操题124

习题125

第9章 对象构造与封装

9-1 构造方法128

9-1-1 默认的构造方法128

9-1-2 自建构造方法129

9-1-3 重载130

9-1-4 this关键词135

9-2 类的访问权限——封装137

9-2-1 类成员的访问控制138

9-2-2 设计具有封装效果的程序140

9-3 static关键词141

9-3-1 static成员变量141

9-3-2 使用类名称直接存取143

9-3-3 静态成员变量的初始区块144

9-3-4 将static成员变量应用于人数

总计144

9-3-5 static方法145

9-3-6 认识main()145

9-3-7 final关键词与static成员变量146

程序实操题146

习题147

第10章 内建Math和Random类

10-1 数学常量149

10-2 随机数的应用150

10-3 求较大值max()/较小值min()151

10-4 求值abs()151

10-5 四舍五入round()152

10-6 返回接近的整数值rint()152

10-7 求近似值ceil()/floor()152

10-8 一般的数学运算方法153

10-9 三角函数的应用154

10-10 Random类155

程序实操题155

习题156

第11章 日期与时间类

11-1 Date类158

11-2 Java 8后的新日期与时间类159

11-2-1 LocalDate类159

11-2-2 LocalTime类160

11-2-3 LocalDateTime类161

11-2-4 时间戳Instant类162

11-2-5 Duration类162

11-2-6 Period类163

程序实操题163

习题163

第12章 字符与字符串类

12-1 字符Character类166

12-2 字符串的建立167

12-2-1 基本字符串类型声明168

12-2-2 使用构造方法建立字符串

对象168

12-2-3 再看String类的参照169

12-2-4 String对象内存内容无法

更改170

12-3 String类的方法171

12-3-1 字符串长度相关的方法171

12-3-2 大小写转换171

12-3-3 字符的查找172

12-3-4 子字符串的查找172

12-3-5 截取字符串的子字符串或

字符173

12-3-6 字符串的替换174

12-3-7 字符串的连接175

12-3-8 字符串的比较175

12-3-9 字符串的转换177

12-3-10 字符串的split()方法177

12-4 StringBuffer类178

12-4-1 建立StringBuffer类对象178

12-4-2 处理字符串缓冲区长度和

容量179

12-4-3 字符串缓冲区内容修改的

方法179

12-4-4 设置与替换180

12-4-5 复制子字符串180

12-5 StringBuilder类181

12-6 字符串数组的应用181

程序实操题182

习题182

第13章 正则表达式

13-1 使用Java硬功夫查找文字185

13-2 使用String类处理正则表达式187

13-2-1 正则表达式基础187

13-2-2 使用大括号{ }处理重复

出现的字符串188

13-2-3 处理市区电话字符串方式188

13-2-4 用括号分组189

13-2-5 用小括号处理区域号码189

13-2-6 使用管道|190

13-2-7 使用 问号做查找190

13-2-8 使用*号做查找191

13-2-9 使用 号做查找191

13-2-10 查找时使用大括号

设置比对次数区间191

13-2-11 正则表达式量次的表192

13-3 正则表达式的特殊字符192

13-3-1 特殊字符表192

13-3-2 单一字符使用通配符“.”193

13-3-3 字符分类193

13-3-4 字符分类的^字符194

13-3-5 所有字符使用通配符“.*”194

13-4 matches()方法的万用程序与

功能扩充194

13-5 再谈String类有关的正则

表达方法195

13-5-1 replaceFirst()方法195

13-5-2 replaceAll()方法196

13-6 正则表达式的包196

13-6-1 基本字符串的比对197

13-6-2 字符串的查找198

13-6-3 字符串的替换198

程序实操题199

习题199

第14章 继承与多态

14-1 继承202

14-1-1 从三个简单的Java程序谈起202

14-1-2 继承的语法204

14-1-3 观察父类构造方法的启动205

14-1-4 父类属性是public子类初始化

父类属性205

14-1-5 父类属性是private调用父类

构造方法206

14-1-6 存取修饰符protected207

14-1-7 分层继承208

14-1-8 多层次继承210

14-1-9 继承类总结与陷阱211

14-1-10 常见的继承程序设计211

14-1-11 父类与子类有相同的成员

变量名称212

14-2 IS-A和HAS-A关系213

14-2-1 IS-A关系与instanceof213

14-2-2 HAS-A关系——聚合214

14-2-3 HAS-A关系——组合216

14-3 Java程序代码太长的处理217

14-4 重写219

14-4-1 基本定义219

14-4-2 super关键词应用于Override220

14-4-3 重写方法时访问

权限不可比父类严220

14-4-4 不能重写static方法221

14-4-5 不能重写final方法221

14-4-6 @Overload222

14-5 重载父类的方法222

14-6 多态223

14-6-1 编译时多态223

14-6-2 执行时多态223

14-7 静态绑定与动态绑定227

14-8 嵌套类别228

14-8-1 内部类228

14-8-2 方法内部类229

14-8-3 匿名内部类230

14-8-4 匿名类当作参数传送231

程序实操题231

习题232

第15章 Object类

15-1 认识扩充Object类235

15-2 Object类的方法235

15-3 认识哈希码与hashCode()235

15-3-1 认识哈希码235

15-3-2 hashCode()236

15-4 equals()方法237

15-5 toString()方法238

15-6 getClass()方法239

程序实操题239

习题240

第16章 抽象类

16-1 使用抽象类的场合242

16-2 抽象类基本概念243

16-3 抽象方法的基本概念244

16-4 抽象类与抽象方法概念整理245

16-5 抽象类的构造方法247

16-6 使用Upcasting声明抽象类的对象247

16-7 抽象类与方法的程序应用247

程序实操题248

习题248

第17章 接口

17-1 认识接口251

17-2 接口的成员变量252

17-3 Java 8新增加接口内容253

17-3-1 Default方法254

17-3-2 static方法255

17-4 Java 9新增加接口内容256

17-5 基本接口的继承258

17-6 接口多重继承259

17-7 实现时发生成员变量有相同名称261

17-8 类重写Default方法262

17-9 一个类同时继承类与实现接口263

17-10 类分别继承父类与实现接口发生

方法名称冲突264

17-11 多层次继承中发生Default

方法名称相同265

17-12 名称冲突的钻石问题266

程序实操题267

习题268

第18章 Java包装类

18-1 基本概念271

18-2 认识包装类271

18-3 认识自动封箱与拆箱272

18-4 建立包装类对象272

18-4-1 使用构造方法建立包装类

对象272

18-4-2 自动封箱的实例273

18-4-3 拆箱的实例273

18-5 使用valueOf()建立对象274

18-6 取得Number类对象的值275

18-7 包装类的常量275

18-8 将基本数据转成字符串toString()276

18-9 将字符串转成基本数据类型

parseXXX()277

18-10 比较方法277

18-10-1 比较是否相同equals()277

18-10-2 比较大小compareTo()278

程序实操题278

习题279

第19章 设计包

19-1 复习包名称的导入281

19-1-1 基本概念281

19-1-2 不同包名称冲突282

19-1-3 包层次声明的注意事项283

19-1-4 静态static成员导入声明284

19-2 设计java包基础知识285

19-3 java包的优点285

19-4 建立、编译与执行包286

19-4-1 建立包基础知识286

19-4-2 包与文件夹287

19-4-3 编译包287

19-4-4 执行包288

19-4-5 使用包但是没有导入包288

19-4-6 建立含多个类文件的包289

19-5 包与应用程序分属不同文件夹291

19-6 建立子包293

19-7 包的访问控制294

19-8 将抽象类应用于包295

19-9 将编译文件送至不同文件夹的方法296

程序实操题298

习题298

第20章 程序异常的处理

20-1 认识程序错误的类别301

20-2 认识简单的异常实例301

20-2-1 除数为0的异常302

20-2-2 使用者输入错误的异常302

20-2-3 数组运算发生索引值超出

范围303

20-2-4 其他常见的异常303

20-3 处理异常方法304

20-3-1 程序设计师处理异常方式304

20-3-2 再谈Java处理异常方式304

20-3-3 异常类Throwable305

20-4 try-catch306

20-4-1 简单的try-catch程序实例307

20-4-2 简单多个catch区块的应用309

20-5 捕捉上层的异常310

20-6 try/catch/finally312

20-7 Throwable类313

20-8 自行抛出异常throw314

20-9 方法抛出异常throws315

20-10 使用者自定义异常类318

程序实操题320

习题320

第21章 多线程

21-1 认识程序、进程、线程323

21-2 认识多任务作业324

21-2-1 Process-based

Mutitasking的特点324

21-2-2 Thread-based

Mutitasking的特点325

21-3 Java的多线程325

21-3-1 认识线程325

21-3-2 多线程的优点325

21-4 线程的生命周期325

21-5 建立线程326

21-5-1 Thread类326

21-5-2 多线程的赛马程序设计328

21-5-3 Runnable接口329

21-6 再看Java线程的工作原理330

21-7 让线程进入睡眠330

21-8 线程的join()方法331

21-9 线程的优先级值331

21-10 守护线程333

21-10-1 关于守护线程的重点333

21-10-2 JVM终止守护线程原因333

21-10-3 Thread类内有关守护

线程的方法333

21-11 Java的同步334

21-11-1 同步的目的334

21-11-2 同步的形式334

21-11-3 线程同步334

21-11-4 了解未同步所产生的问题334

21-11-5 同步方法335

21-12 匿名类336

21-13 同步区块337

21-14 同步静态方法337

21-15 认识死锁338

21-16 线程内部通信339

21-16-1 wait()方法339

21-16-2 notify()方法340

21-16-3 notifyAll()方法340

程序实操题341

习题342

第22章 输入与输出

22-1 认识流344

22-2 InputStream和OutputStream类344

22-3 适用byte数据文件输入与

输出的类346

22-3-1 FileOutputStream类346

22-3-2 FileInputStream类347

22-3-3 图片文件复制的实例348

22-4 使用缓冲区处理byte数据文件

输入与输出349

22-4-1 BufferedOutputStream类349

22-4-2 BufferedInputStream类350

22-5 Writer和Reader类351

22-6 字符读取与写入FileReader类与

FileWriter类352

22-6-1 FileWriter类352

22-6-2 FileReader类353

22-7 字符数据输入与输出BufferedReader/

BufferedWriter类354

22-7-1 BufferedWriter类354

22-7-2 BufferedReader类354

22-8 System类355

22-9 PrintStream类356

22-10 Console类357

22-11 文件与文件夹的管理File类358

程序实操题361

习题362

第23章 压缩与解压缩文件

23-1 基本概念与认识java.util.zip包364

23-2 压缩文件364

23-2-1 压缩单一文件365

23-2-2 压缩多个文件366

23-2-3 压缩整个文件夹366

23-3 解压缩文件368

程序实操题369

习题369

第24章 Java Collection

24-1 认识泛型372

24-1-1 泛型类372

24-1-2 泛型方法373

24-1-3 泛型的通配符373

24-2 认识集合对象374

24-2-1 Iterable接口375

24-2-2 Collection接口375

24-3 List接口376

24-3-1 ArrayList类376

24-3-2 LinkedList类380

24-3-3 数据结构堆栈382

24-3-4 数据结构队列383

24-3-5 ListIterator接口384

24-4 Set接口385

24-4-1 HashSet类385

24-4-2 LinkedHashSet类386

24-4-3 TreeSet类387

24-5 Map接口388

24-5-1 HashMap类388

24-5-2 LinkedHashMap类390

24-5-3 TreeMap类390

24-6 Java Collections Framework

算法391

程序实操题392

习题393

第25章 现代Java运算

25-1 增强版的匿名内部类396

25-2 Lambda表达式396

25-2-1 Lambda表达式有传递参数397

25-2-2 Lambda表达式没有return398

25-3 forEach()398

25-4 方法参照398

25-4-1 参考静态方法399

25-4-2 参考实例方法399

25-4-3 参考构造方法400

25-5 Java的工厂方法400

25-5-1 List接口400

25-5-2 Set接口401

25-5-3 Map接口401

25-5-4 Map接口的ofEntries()方法402

25-6 Java新的版本字符串格式402

程序实操题403

习题403

第26章 窗口程序设计使用AWT

26-1 AWT类结构图405

26-2 Frame类406

26-3 窗口组件颜色的设置——Color类408

26-4 标签Label 类409

26-5 字型设置——Font类411

26-6 Button类412

26-7 建立文字输入对象412

26-7-1 TextField类413

26-7-2 TextArea类414

26-8 Checkbox类415

26-9 CheckboxGroup类416

26-10 版面配置管理员417

26-10-1 边界版面配置类417

26-10-2 方格版面配置类419

26-10-3 流动式版面配置类419

26-10-4 卡片式版面配置类421

程序实操题422

习题423

第27章 事件处理

27-1 委派事件模式426

27-2 简单按钮事件处理426

27-3 认识事件处理类428

27-4 ActionEvent事件类431

27-5 ItemEvent类433

27-6 TextEvent类434

27-7 KeyEvent类435

27-8 KeyAdapter类437

27-9 MouseEvent类438

27-9-1 MouseListener接口438

27-9-2 MouseAdapter类439

27-9-3 MouseMotionListener接口440

27-9-4 MouseMotionAdapter类441

27-10 WindowEvent类441

27-11 WindowAdapter类443

程序实操题443

习题444

第28章 再谈AWT对象

28-1 列表(List)类446

28-1-1 建立列表446

28-1-2 列表的事件处理448

28-2 下拉式列表(Choice)类448

28-2-1 建立下拉式列表449

28-2-2 下拉式列表的事件处理450

28-3 菜单设计450

28-3-1 建立菜单451

28-3-2 菜单的事件处理453

28-4 滚动条(Scrollbar)类454

28-5 对话框(Dialog)类456

28-6 文件对话框(FileDialog)类458

程序实操题460

习题460

第29章 使用Swing进行窗口程序

设计

29-1 Swing层次结构图462

29-2 JFrame类462

29-2-1 建立简单的JFrame窗口462

29-2-2 JFrame窗格的基本概念463

29-3 JButton类464

29-4 JLabel类466

29-5 JCheckBox类469

29-6 JRadioButton类471

29-7 JOptionPane类473

29-8 JList类474

29-9 JColorChooser类477

29-10 JTextField类479

29-11 JTextArea类480

29-12 JPasswordField类482

29-13 JTabbedPane类483

29-14 本章结尾483

程序实操题483

习题484

第30章 绘图与动画

30-1 认识坐标系统486

30-2 AWT绘图487

30-2-1 取得绘图区与绘图实例487

30-2-2 省略触发机制绘图489

30-2-3 认识窗口的绘图区空间489

30-3 Swing绘图490

30-4 颜色与字型491

30-5 Graphics类492

30-6 Graphics2D类496

30-6-1 Graphics2D的新概念497

30-6-2 绘图类498

30-6-3 Graphics2D着色501

30-7 拖曳鼠标绘制线条501

30-8 动画设计502

程序实操题504

习题504

第31章 网络程序设计

31-1 认识Internet网址507

31-2 Java InetAddress类507

31-3 URL类508

31-4 URLConnection类510

31-5 HttpURLConnection类513

31-6 C/S架构程序设计基本概念513

31-6-1 Java Socket Client端的设计514

31-6-2 Java Socket Server端的设计516

31-7 UDP通信518

程序实操题520

附录A Java下载、安装与环境设置

A-1 下载Java522

A-2 安装Java523

A-3 Java环境设置524

A-3-1 设置Path环境变量524

A-3-2 验证Path环境变量526

A-3-3 设置classpath环境变量526

A-4 下载Java 10文件527