《Java程序设计与应用开发》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:郭克华,刘小翠,唐雅媛编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302472155
  • 页数:464 页
图书介绍:本书供高校JavaEE开发相关课程使用,也可供有JavaSE基础但没有JavaEE开发基础的程序员作为入门用书,更可以供社会JavaEE培训班作为教材使用,对于缺乏项目实战经验的程序员来说可用于快速积累项目开发经验。

第1章 Java入门 1

本章术语 1

1.1认识Java 1

1.1.1认识编程语言 1

1.1.2Java的来历 2

1.1.3Java为什么流行 3

1.1.4Java的3个版本 5

1.1.5编程前的准备工作 5

1.2获取和安装JDK 5

1.2.1获取JDK 5

1.2.2安装JDK 6

1.2.3安装目录的介绍 7

1.2.4环境变量的设置 8

1.3开发第一个Java程序 9

1.3.1如何编写源代码 9

1.3.2如何将源代码编译成.class文件 10

1.3.3如何执行.class文件 11

1.3.4新手常见错误 12

1.4用Eclipse开发Java程序 13

1.4.1什么是Eclipse 13

1.4.2安装Eclipse 14

1.4.3如何建立项目 14

1.4.4如何开发Java程序 15

1.4.5如何维护项目 18

本章知识体系 20

第2章 程序设计基础之变量及其运算 21

本章术语 21

2.1认识变量 21

2.1.1什么是变量 21

2.1.2变量有哪些类型 22

2.2如何使用变量 23

2.2.1如何使用整型变量 23

2.2.2如何使用浮点型变量 24

2.2.3如何使用字符型变量 25

2.2.4如何使用布尔型变量 27

2.2.5基本数据类型之间的类型转换 28

2.2.6基本数据类型和字符串之间的转换 29

2.2.7变量的作用范围 30

2.3注释的书写 31

2.3.1单行注释 31

2.3.2多行注释 31

2.3.3文档注释 32

2.4Java中的运算 32

2.4.1算术运算 32

2.4.2赋值运算 34

2.4.3关系运算 35

2.4.4逻辑运算 36

2.4.5运算符的优先级 36

本章知识体系 37

第3章 程序设计基础之流程控制和数组 38

本章术语 38

3.1判断结构 38

3.1.1为什么需要判断结构 38

3.1.2if结构 38

3.1.3switch结构 42

3.2认识循环结构 43

3.2.1为什么需要循环结构 43

3.2.2while循环 44

3.2.3do-while循环 45

3.2.4for循环 46

3.2.5循环嵌套 47

3.2.6break语句和continue语句 48

3.3数组 50

3.3.1为什么需要数组 50

3.3.2如何定义数组 50

3.3.3如何使用数组 51

3.3.4数组的引用性质 53

3.3.5数组的应用 54

3.3.6多维数组 55

本章知识体系 56

第4章 实践指导1 57

本章术语 57

4.1关于变量和数据类型的实践 57

4.2流程控制和数组的综合实践 59

第5章 面向对象编程(一) 68

本章术语 68

5.1认识类和对象 68

5.1.1为什么需要类 68

5.1.2如何定义类 69

5.1.3如何使用类实例化对象 69

5.1.4如何访问对象中的成员变量 70

5.1.5对象的引用性质 71

5.2认识成员函数 73

5.2.1为什么需要函数 73

5.2.2如何定义和使用成员函数 73

5.2.3函数参数的传递 77

5.2.4认识函数重载 78

5.3认识构造函数 80

5.3.1为什么需要构造函数 80

5.3.2如何定义和使用构造函数 81

本章知识体系 82

第6章 面向对象编程(二) 83

本章术语 83

6.1静态变量和静态函数 83

6.1.1为什么需要静态变量 83

6.1.2静态变量的常见应用 85

6.1.3认识静态函数 87

6.1.4静态代码块 88

6.2使用封装 89

6.2.1为什么需要封装 89

6.2.2如何实现封装 89

6.3使用包 91

6.3.1为什么需要包 91

6.3.2如何将类放在包中 91

6.3.3如何访问包中的类 93

6.4使用访问控制修饰符 96

6.4.1什么是访问控制修饰符 96

6.4.2类的访问控制修饰符 96

6.4.3成员的访问控制修饰符 96

6.5使用类中类 97

本章知识体系 98

第7章 面向对象编程(三) 99

本章术语 99

7.1使用继承 99

7.1.1为什么需要继承 99

7.1.2如何实现继承 100

7.1.3继承的底层本质 102

7.2成员的覆盖 104

7.2.1什么是成员覆盖 104

7.2.2成员覆盖有何作用 106

7.3使用多态性 107

7.3.1什么是多态 107

7.3.2如何使用多态性 108

7.3.3父类和子类对象的类型转换 110

7.4抽象类和接口 112

7.4.1为什么需要抽象类 112

7.4.2为什么需要接口 113

7.5其他内容 114

7.5.1final关键字 114

7.5.2Object类 115

7.6一些工具的使用 117

7.6.1将字节码打包发布 117

7.6.2文档的使用 120

本章知识体系 123

第8章 实践指导2 124

本章术语 124

8.1单例模式的设计 124

8.1.1需求简介 124

8.1.2不用单例模式的效果 125

8.1.3最原始的单例模式 126

8.1.4首次改进 126

8.1.5再次改进 127

8.1.6思考题 129

8.2利用继承和多态扩充程序功能 129

8.2.1需求简介 129

8.2.2实现方法 130

8.2.3出现的问题 131

8.2.4改进 131

8.2.5测试 132

第9章 Java异常处理 134

本章术语 134

9.1认识异常 134

9.1.1生活中的异常 134

9.1.2软件中的异常 135

9.1.3为什么要处理异常 136

9.1.4异常的机理 137

9.1.5常见异常 138

9.2异常的就地捕获 139

9.2.1为什么要就地捕获 139

9.2.2如何就地捕获异常 140

9.2.3如何捕获多种异常 141

9.2.4用finally保证安全性 144

9.3异常的向前抛出 146

9.3.1为什么要向前抛出 146

9.3.2如何向前抛出 146

9.4自定义异常 150

9.4.1为什么需要自定义异常 150

9.4.2如何自定义异常 151

本章知识体系 153

第10章 Java常用API(一) 154

本章术语 154

10.1数值运算 154

10.1.1用Math类实现数值运算 154

10.1.2实现随机数 156

10.2用String类进行字符串处理 157

10.3用StringBuffer类进行字符串处理 160

10.4基本数据类型的包装类 162

10.4.1认识包装类 162

10.4.2通过包装类进行数据类型转换 163

10.5常用系统类 163

10.5.1认识System类 163

10.5.2认识Runtime类 164

本章知识体系 165

第11章 Java常用API(二) 166

本章术语 166

11.1认识Java集合 166

11.1.1为什么需要集合 166

11.1.2Java中的集合 167

11.2使用一维集合 168

11.2.1认识一维集合 168

11.2.2使用List集合 168

11.2.3使用Set集合 170

11.2.4使用Collections类对集合进行处理 173

11.2.5使用泛型简化集合操作 174

11.3Java中的二维集合 176

11.3.1使用Map集合 176

11.3.2使用Hashtable和Properties 178

11.4日期操作 178

11.4.1认识Date类 178

11.4.2认识Calendar类 179

11.4.3如何格式化日期 180

11.4.4更进一步:如何格式化数值 181

本章知识体系 182

第12章 Java多线程开发 183

本章术语 183

12.1认识多线程 183

12.1.1为什么需要多线程 183

12.1.2继承Thread类开发多线程 185

12.1.3实现Runnable接口开发多线程 187

12.1.4两种方法有何区别 189

12.2控制线程的运行 190

12.2.1为什么要控制线程的运行 190

12.2.2传统方法的安全问题 190

12.2.3如何控制线程的运行 191

12.3线程协作安全 193

12.3.1什么是线程协作 193

12.3.2一个有问题的案例 193

12.3.3如何解决 194

12.4线程同步安全 195

12.4.1什么是线程同步 195

12.4.2一个有问题的案例 195

12.4.3如何解决 197

12.4.4小心线程死锁 199

12.5认识定时器 201

12.5.1为什么需要定时器 201

12.5.2如何使用定时器 201

本章知识体系 204

第13章 Java IO操作 205

本章术语 205

13.1认识IO操作 205

13.2用File类操作文件 206

13.2.1认识File类 206

13.2.2使用File类操作文件 207

13.2.3使用File类操作目录 208

13.3字节流的输入与输出 209

13.3.1认识字节流 209

13.3.2如何读写文件 210

13.3.3如何读写对象 213

13.4字符流的输入与输出 216

13.4.1认识字符流 216

13.4.2如何读写文件 216

13.4.3如何进行键盘输入 219

13.5和IO操作相关的其他类 220

13.5.1用RandomAccessFile类进行文件的读写 220

13.5.2使用Properties类 222

本章知识体系 225

第14章 实践指导3 226

本章术语 226

14.1字符频率统计软件 226

14.1.1软件功能简介 226

14.1.2重要技术 227

14.1.3项目结构 227

14.1.4代码的编写 228

14.1.5思考题 230

14.2文本翻译软件 230

14.2.1软件功能简介 230

14.2.2重要技术 231

14.2.3项目结构 231

14.2.4代码的编写 232

14.2.5思考题 233

14.3用享元模式优化程序性能 234

14.3.1为什么需要享元模式 234

14.3.2重要技术 234

14.3.3代码的编写 235

14.3.4思考题 236

第15章 用Swing开发GUI程序 237

本章术语 237

15.1认识GUI和Swing 237

15.1.1什么是GUI 237

15.1.2什么是Swing 238

15.2使用窗口 238

15.2.1用JFrame类开发窗口 238

15.2.2用JDialog类开发窗口 239

15.3使用控件 241

15.3.1什么是控件 241

15.3.2标签、按钮、文本框和密码框 242

15.3.3单选按钮、复选框和下拉列表框 244

15.3.4菜单 246

15.3.5使用JOptionPane 247

15.3.6其他控件 248

15.4颜色、字体和图片 250

15.4.1如何使用颜色 250

15.4.2如何使用字体 251

15.4.3如何使用图片 253

15.5几个有用的功能 255

15.5.1如何设置界面的显示风格 255

15.5.2如何获取屏幕大小 256

15.5.3如何用默认应用程序打开文件 256

15.5.4如何将程序显示为系统托盘 257

本章知识体系 257

第16章 Java界面布局管理 258

本章术语 258

16.1认识布局管理 258

16.1.1为什么需要布局管理 258

16.1.2认识LayoutManager 259

16.2使用FlowLayout 260

16.2.1什么是FlowLayout 260

16.2.2如何使用FlowLayout 260

16.3使用GridLayout 262

16.3.1什么是GridLavout 262

16.3.2如何使用GridLayout 262

16.4使用BorderLayout 263

16.4.1什么是BorderLayout 263

16.4.2如何使用BorderLayout 264

16.5一个综合案例:计算器 265

16.5.1案例需求 265

16.5.2关键技术 266

16.5.3代码的编写 267

16.6使用空布局 268

16.6.1什么是空布局 268

16.6.2如何使用空布局 269

本章知识体系 270

第17章 Java事件处理 271

本章术语 271

17.1认识事件处理 271

17.1.1什么是事件 271

17.1.2事件处理代码的编写 272

17.1.3另外几种编程风格 274

17.2处理ActionEvent 276

17.2.1什么情况发出ActionEvent 276

17.2.2使用ActionEvent解决实际问题 276

17.3处理FocusEvent 277

17.3.1什么情况发出FocusEvent 277

17.3.2使用FocusEvent解决实际问题 278

17.4处理KeyEvent 279

17.4.1什么情况发出KeyEvent 279

17.4.2使用KeyEvent解决实际问题 279

17.5处理MouseEvent 280

17.5.1什么情况发出MouseEvent 280

17.5.2使用MouseEvent解决实际问题 280

17.6处理WindowEvent 282

17.6.1什么情况发出WindowEvent 282

17.6.2使用WindowEvent解决实际问题 283

17.7使用Adapter简化开发 284

本章知识体系 285

第18章 实践指导4 286

本章术语 286

18.1用户管理系统功能简介 286

18.2关键技术 288

18.2.1如何组织界面 288

18.2.2如何访问文件 288

18.2.3如何保持状态 288

18.2.4还有哪些公共功能 289

18.3代码的编写 289

18.3.1编写util包中的类 289

18.3.2编写frame包中的类 291

18.3.3编写主函数所在的类 297

18.4思考题 297

第19章 Java画图之基础知识 298

本章术语 298

19.1认识Java画图 298

19.1.1为什么要学习画图 298

19.1.2如何实现画图 299

19.2用Graphics画图 301

19.2.1什么是Graphics 301

19.2.2如何使用Graphics 301

19.2.3用Graphics实现画图 305

19.2.4一个综合案例 307

19.3画字符串 308

19.3.1为什么需要画字符串 308

19.3.2如何画字符串 309

19.3.3案例:产生验证码 309

19.4画图片 310

19.4.1为什么需要画图片 310

19.4.2如何画图片 310

19.4.3如何进行图片的裁剪和缩放 311

19.4.4如何进行图片的旋转 313

本章知识体系 314

第20章 Java画图之高级知识 315

本章术语 315

20.1结合键盘事件进行画图 315

20.1.1实例需求 315

20.1.2复习键盘事件 315

20.1.3代码的编写 316

20.1.4解决重画问题 317

20.2结合鼠标事件进行画图 318

20.2.1实例需求 318

20.2.2复习鼠标事件 318

20.2.3代码的编写 319

20.3动画制作 320

20.3.1实例需求 320

20.3.2关键技术 321

20.3.3代码的编写 322

20.3.4如何使用双缓冲保存图片到文件 324

本章知识体系 327

第21章 实践指导5 328

本章术语 328

21.1卡通时钟 328

21.1.1软件功能简介 328

21.1.2重要技术 328

21.1.3代码的编写 330

21.1.4思考题 332

21.2拼图游戏 332

21.2.1软件功能简介 332

21.2.2重要技术 333

21.2.3代码的编写 337

21.2.4思考题 341

第22章 用TCP开发网络应用程序 342

本章术语 342

22.1认识网络编程 342

22.1.1什么是网络应用程序 342

22.1.2认识IP地址和端口 343

22.1.3客户端和服务器 345

22.2用客户端连接到服务器 346

22.2.1案例介绍 346

22.2.2如何实现客户端连接到服务器 346

22.2.3代码的编写 348

22.3利用TCP实现双向聊天系统 350

22.3.1案例介绍 350

22.3.2如何实现双向聊天 350

22.3.3代码的编写 353

22.4利用TCP实现多客户聊天系统 355

22.4.1案例介绍 355

22.4.2编写服务器程序 357

22.4.3编写客户端程序 359

本章知识体系 360

第23章 用UDP开发网络应用程序 361

本章术语 361

23.1利用UDP实现双向聊天系统 361

23.1.1案例介绍 361

23.1.2服务器和客户端是如何交互的 362

23.1.3如何收发信息 363

23.1.4代码的编写 367

23.2利用UDP实现多客户聊天系统 370

23.2.1案例介绍 370

23.2.2编写服务器程序 370

23.2.3编写客户端程序 373

本章知识体系 374

第24章 URL编程和Applet开发 375

本章术语 375

24.1认识URL编程 375

24.1.1什么是URL 375

24.1.2认识URL类 376

24.1.3如何获取网页的内容 376

24.2认识Applet 378

24.2.1什么是Applet 378

24.2.2如何开发Applet 378

24.2.3如何使用Applet 379

24.3深入理解Applet 380

24.3.1Applet是如何运行的 380

24.3.2Applet功能的限制 380

24.3.3如何向Applet内传参数 381

本章知识体系 382

第25章 实践指导6 383

本章术语 383

25.1网络打字游戏功能简介 383

25.2关键技术 384

25.2.1如何组织界面 384

25.2.2客户端如何掉下字母 384

25.2.3客户端如何实现加减分数 385

25.2.4客户端如何判断输了 386

25.3代码的编写 387

25.3.1服务器端 387

25.3.2客户端 389

第26章 Java加密和解密 392

本章术语 392

26.1认识加密 392

26.1.1为什么需要加密 392

26.1.2认识加密算法和密钥 393

26.2实现对称加密 394

26.2.1什么是对称加密 394

26.2.2用Java实现对称加密 394

26.3实现非对称加密 396

26.3.1什么是非对称加密 396

26.3.2用Java实现非对称加密 397

26.4实现单向加密 400

26.4.1什么是单向加密 400

26.4.2用Java实现MD5 400

本章知识体系 401

第27章 Java数字签名 402

本章术语 402

27.1认识数字签名 402

27.1.1为什么需要数字签名 402

27.1.2数字签名的过程 403

27.2实现数字签名 403

27.2.1发送方生成签名 403

27.2.2接收方验证签名 405

27.3利用数字签名解决实际问题 407

27.3.1解决篡改问题 407

27.3.2解决抵赖问题 410

本章知识体系 412

第28章 Java反射技术 413

本章术语 413

28.1为什么要学习反射 413

28.1.1引入配置文件 413

28.1.2配置文件遇到的问题 414

28.2认识Class类 415

28.2.1什么是Class类 415

28.2.2如何获取一个类对应的Class对象 415

28.2.3如何获取类中的成员信息 417

28.3通过反射机制访问对象 422

28.3.1如何实例化对象 422

28.3.2如何给成员变量赋值 424

28.3.3如何调用成员函数 424

28.4何时使用反射 426

本章知识体系 426

第29章 用反射技术编写简单的框架 427

本章术语 427

29.1什么是框架 427

29.2动态异常处理框架 427

29.2.1框架功能简介 427

29.2.2重要技术 429

29.2.3框架代码的编写 430

29.2.4使用该框架 432

29.3动态对象组装框架 435

29.3.1框架功能简介 435

29.3.2引入工厂 436

29.3.3引入配置文件 437

29.3.4重要技术 438

29.3.5框架代码的编写 438

29.3.6使用该框架 439

第30章 综合案例:用TCP技术开发即时通信软件 442

本章术语 442

30.1即时通信软件功能简介 442

30.1.1服务器界面 442

30.1.2客户的登录和注册 442

30.1.3消息收发界面 443

30.1.4在线名单的刷新 444

30.2项目关键技术 444

30.2.1传输消息如何表示 444

30.2.2客户信息如何表示 446

30.2.3客户文件如何保存在服务器端 447

30.2.4如何读写客户文件 447

30.2.5基本模块结构 448

30.3编写服务器端 450

30.3.1准备工作 450

30.3.2编写app.Server类 450

30.3.3编写app.ChatThread类 451

30.3.4编写main.Main类 454

30.4编写客户端 454

30.4.1准备工作 454

30.4.2编写app.LoginFrame类 454

30.4.3编写app.ChatFrame类 457

30.4.4编写app.RegisterFrame类 459

30.4.5编写main.Main类 462

30.5思考题 462