内容简介

大话Java:程序设计从入门到精通(含DVD光盘1张)》采用由浅入深、与实际应用紧密结合的方式,利用大量典型生动的范例,详细讲解了Java编程的各种基本技术。《大话Java:程序设计从入门到精通(含DVD光盘1张)》的范例全部基于全新的JDK9版本。《大话Java:程序设计从入门到精通(含DVD光盘1张)》内容包括:创建和运行Java程序的基本方法、Java语言的基本语法、数据类型和变量、操作符、流程控制、继承、Java语言中的修饰符、接口、异常处理、对象的生命周期、内部类、多线程、数组、集合、输入输出、图形用户界面和访问数据库。

大话Java:程序设计从入门到精通(含DVD光盘1张)》还介绍了JDK9的一些新特性,包括JShell命令及Java类库的模块化等。

大话Java:程序设计从入门到精通(含DVD光盘1张)》别出心裁,引入了中国传统文化中家喻户晓的《西游记》中的人物孙悟空,以他学习Java语言为主线,以模拟《西游记》中的种种传奇故事及实现各种有趣的实际应用为案例,带领读者逐步领略Java

语言的种种神通妙用,大大增加了书的趣味性。

书中实例源文件请到JavaThinker.net网站上下载,网址为:http://www.javathinker.org/funnyjava.jsp。

大话Java:程序设计从入门到精通(含DVD光盘1张)》主要面向所有的Java初学者。《大话Java:程序设计从入门到精通(含DVD光盘1张)》还可作为高校的Java教材,以及企业Java培训教材,也可作为Oracle公司OCJP认证的辅导教材。

作者简介

孙卫琴,知名IT作家和Java专家,毕业于上海交通大学,随后主要从事基于Java的软件开发工作,在此其间还从事Java方面的培训和咨询工作。2002年开始Java技术领域的创作,文风清晰严谨、深入浅出,深受读者欢迎,其多部作品的销量在同类书籍中一度位居全国榜首。代表著作有:

《Java面向对象编程》

目录

第1章编程入门一点通1

1.1初识高级编程语言1

1.2跨越平台无障碍,Java语言显身手3

1.3编写面向对象的Java源程序5

1.3.1定义Monkey类5

1.3.2创建Monkey对象6

1.3.3程序入口main()方法8

1.4编译和运行Java程序9

1.4.1JDK简介9

1.4.2本范例的目录结构11

1.4.3编译Java源程序11

1.4.4运行Java程序12

1.4.5创建用于编译和运行Java程序的批处理文件13

1.5用JDeveloper软件来开发Java应用13

1.6小结15

1.7编程实战:八戒用餐怀感恩16

第2章基本语法了如指掌19

2.1Java源文件结构19

2.2关键字20

2.3标识符21

2.4Java语言大小写敏感22

2.5包声明语句22

2.6包引入语句24

2.7方法的声明26

2.8注释语句27

2.9编程规范28

2.10JavaDoc文档28

2.11直接用JDK来编译和运行本章范例29

2.12用JDeveloper来编译和运行本章范例31

2.13用Eclipse来编译和运行本章范例33

2.14Java类库模块化36

2.15使用JShell交互式编程界面38

2.16小结40

2.17编程实战:八戒吃瓜美滋滋41

第3章数据类型齐争艳43

3.1基本类型44

3.1.1boolean类型44

3.1.2byte、short、int和long类型45

3.1.3char类型与字符编码46

3.1.4float和double类型47

3.2引用类型47

3.3基本类型与引用类型的区别48

3.4直接数50

3.4.1直接数的类型50

3.4.2直接数的赋值51

3.5小结51

3.6编程实战:金箍棒的电子档案52

第4章千姿百态话变量55

4.1变量的作用域55

4.1.1实例变量和静态变量57

4.1.2用静态变量统计实例的个数59

4.1.3成员变量和局部变量同名60

4.2对象的默认引用:this60

4.3参数传递61

4.4变量的初始化及默认值63

4.4.1成员变量的初始化64

4.4.2局部变量的初始化65

4.4.3用new关键字创建对象65

4.5小结67

4.6编程实战:人参果树妙回春69

第5章操作符号显身手71

5.1操作符的优先级72

5.2整型操作符73

5.2.1一元整型操作符73

5.2.2二元整型操作符73

5.3浮点型操作符74

5.4比较操作符和逻辑操作符75

5.4.1比较操作符75

5.4.2逻辑操作符76

5.5特殊操作符“?:”78

5.6变量的赋值78

5.7基本数据类型转换79

5.7.1自动类型转换79

5.7.2强制类型转换80

5.8小结81

5.9编程实战:判断年份是否为闰年82

5.10编程实战:数字加密83

第6章运筹帷幄控流程85

6.1分支语句86

6.1.1if...else语句86

6.1.2switch语句87

6.2循环语句91

6.2.1while语句93

6.2.2do...while语句94

6.2.3for语句95

6.3流程跳转语句96

6.4小结98

6.5编程实战:实现常用数学运算98

6.6编程实战:打印金字塔99

6.7编程实战:考试分数和等级转换100

6.8编程实战:数兔子101

6.9编程实战:寻找水仙花数103

第7章代码重用靠继承105

7.1继承的基本语法107

7.2方法重载(Overload)108

7.3方法覆盖(Override)109

7.4方法覆盖与方法重载的异同111

7.5super关键字112

7.6多态113

7.7小结115

7.8编程实战一:运用方法的重载和覆盖115

7.9编程实战二:演绎孙悟空与二郎神斗法116

第8章引用类型操作符121

8.1字符串连接操作符“+”121

8.2操作符“==”与对象的equals()方法122

8.2.1操作符“==”122

8.2.2对象的equals()方法123

8.3操作符“!=”125

8.4引用变量的赋值和类型转换126

8.5instanceof操作符127

8.6小结128

8.7编程实战:辨别真假孙悟空129

第9章公私分明设权限131

9.1封装类的部分属性和方法132

9.24种访问控制级别133

9.3小结136

9.4编程实战:模拟自动洗衣机136

第10章abstract:虚拟抽象画蓝图141

10.1abstract修饰符的修饰内容141

10.2abstract修饰符的语法规则142

10.3抽象类不能被实例化143

10.4小结144

10.5编程实战:金、银角大王的魔法宝物144

第11章final:一锤定音恒不变147

11.1final类148

11.2final方法148

11.3final变量149

11.4小结151

11.5编程实战:无法伪造篡改的生死簿152

第12章static:静态家当共分享155

12.1static变量156

12.2static方法156

12.2.1静态方法可访问的内容157

12.2.2实例方法可访问的内容158

12.2.3静态方法必须被实现159

12.3.4作为程序入口的main()方法是静态方法159

12.3static代码块160

12.4小结161

12.5编程实战:灵活配置绘制图形161

第13章对外开放靠接口165

13.1接口的概念和语法规则167

13.2比较抽象类与接口169

13.3小结171

13.4编程实战:紧箍圈降伏诸顽劣172

第14章出生入死话对象175

14.1对象的构造方法176

14.1.1重载构造方法177

14.1.2默认构造方法178

14.1.3子类调用父类的构造方法179

14.2垃圾回收182

14.2.1垃圾回收的时机183

14.2.2对象的finalize()方法184

14.3小结185

14.4编程实战:玩转垃圾回收186

14.5编程实战:独一无二玉净瓶188

第15章类型封装内部类189

15.1内部类的种类191

15.2成员内部类191

15.2.1实例内部类192

15.2.2静态内部类195

15.3局部内部类196

15.4匿名类197

15.5用Lambda表达式代替内部类199

15.6小结200

15.7编程实战:内部类回调外部类201

第16章降伏异常有策略203

16.1Java异常处理机制概述204

16.2运用Java异常处理机制207

16.2.1try...catch语句:捕获异常207

16.2.2finally语句:任何情况下必须执行的代码208

16.2.3throws子句:声明可能会出现的异常209

16.2.4throw语句:抛出异常210

16.2.5异常处理语句的语法规则210

16.2.6异常流程的运行过程213

16.3Java异常类214

16.3.1运行时异常217

16.3.2受检查异常(CheckedException)217

16.3.3区分运行时异常和受检查异常217

16.4用户定义异常219

16.5小结220

16.6编程实战:囧途开车遇异常221

第17章数组元素排排座225

17.1数组简介227

17.2数组变量的声明227

17.3创建数组对象227

17.4访问数组的元素和长度229

17.5数组的初始化230

17.6数组排序231

17.7多维数组232

17.8用符号“…”声明数目可变参数233

17.9小结234

17.10编程实战:多位数字加密235

17.11编程实战:用数组实现堆栈236

第18章集合元素大操练239

18.1Java集合的类框架240

18.2集合的基本用法240

18.2.1包装类的自动装箱和拆箱241

18.2.2Set(集)和List(列表)的各种具体实现类的特点241

18.2.3集合的静态of()方法243

18.3List(队列)245

18.4Map(映射)245

18.5用Lambda表达式遍历集合247

18.6小结248

18.7编程实战:计算数学表达式248

18.8编程实战:计算带括号的数学表达式252

18.9编程实战:用集合工具对数字排序255

18.10编程实战:按月份先后顺序数兔子256

18.11编程实战:用映射来存放学生信息257

18.12编程实战:圆桌报数游戏259

第19章数据出入靠I/O261

19.1输入流和输出流概述262

19.2输入流263

19.3FilterInputStream(过滤输入流)264

19.3.1BufferedInputStream类265

19.3.2DataInputStream类265

19.4输出流267

19.5FilterOutputStream(过滤输出流)267

19.5.1DataOutputStream267

19.5.2BufferedOutputStream268

19.5.3PrintStream类268

19.6Reader/Writer概述269

19.7Reader类271

19.7.1InputStreamReader类271

19.7.2FileReader类271

19.7.3BufferedReader类272

19.8Writer类272

19.8.1OutputStreamWriter类273

19.8.2FileWriter类273

19.8.3BufferedWriter类273

19.8.4PrintWriter类273

19.9读写文本文件的范例274

19.10随机访问文件类:RandomAccessFile276

19.11File类277

19.12用java.nio.file类库来操纵文件系统279

19.13小结282

19.14编程实战:替换文本文件中的字符串283

19.15编程实战:批量修改文件名285

第20章并发运行多线程287

20.1Java线程的运行机制288

20.2线程的创建和启动289

20.2.1扩展java.lang.Thread类289

20.2.2实现java.lang.Runnable接口291

20.3线程的状态转换293

20.3.1新建状态(New)293

20.3.2就绪状态(Runnable)293

20.3.3运行状态(Running)293

20.3.4阻塞状态(Blocked)294

20.3.5等待状态(Waiting)294

20.3.6死亡状态(Terminated)294

20.3.7线程状态转换举例294

20.4线程调度295

20.4.1调整各个线程的优先级296

20.4.2线程睡眠:Thread.sleep()方法297

20.4.3线程让步:Thead.yield()方法298

20.4.4等待其他线程结束:join299

20.5获得当前线程对象的引用300

20.6小结301

20.7编程实战:孙悟空偷吃蟠桃302

第21章同步通信多线程305

21.1线程的同步307

21.1.1同步代码块310

21.1.2线程同步的特征312

21.2线程的通信314

21.3小结318

21.4编程实战:悟空保唐僧打群妖319

21.5编程实战:运动员赛跑322

21.6编程实战:秒针、分针和时针的通信324

第22章图形界面俏容颜327

22.1图形用户界面的构建机制327

22.2容器类组件329

22.3布局管理器331

22.3.1FlowLayout流式布局管理器333

22.3.2BorderLayout边界布局管理器334

22.3.3GridLayout网格布局管理器336

22.3.4CardLayout卡片布局管理器338

22.4事件处理340

22.5AWT绘图343

22.6创建动画346

22.7菜单348

22.8小结350

22.9编程实战:创建数学计算器352

22.10编程实战:创建BMI指数计算器353

第23章轻松访问数据库359

23.1安装和配置MySQL数据库360

23.2JDBCAPI简介362

23.3JDBCAPI的基本用法365

23.4获得新插入记录的主键值368

23.5封装连接数据库的细节369

23.6处理SQLException374

23.7设置批量抓取属性375

23.8可滚动及可更新的结果集376

23.9小结383

23.10编程实战:创建客户管理器383

精彩书摘

编程入门一点通:

话说我的本家孙悟空帮助唐僧到西天取到真经后,就在天上逍遥自在地当起了斗战胜佛。斗转星移,岁月如梭,一股信息化浪潮席卷全球,悟空的家乡花果山也与时俱进,处处配备了新式的计算机。

如今,悟空会熟练地运行安装在Windows操作系统中的各种可执行程序,利用它们来完成特定任务。例如通过浏览器程序来上网,通过记事本程序来编辑文档,通过画图程序来画画,通过计算器程序来进行数学运算。

有一天,悟空正在网上东游西逛,花果山的小猴智多星跑过来,对悟空说:“孙爷爷,我看这计算机上的程序都是给人玩的,要是您也能编写点程序出来,专门给俺们猴儿耍耍,那该多好啊。”

智多星的想法正合悟空的心意。悟空想:要是自己学会了编程,就可以开发出符合猴子趣味的程序给儿孙们耍耍,等到编程功底扎实了,还可以给花果山也开发个网站呢。

在本章中,悟空小试牛刀,用Java语言编写了一个简单的程序。本章内容主要围绕以下问题展开:

为什么Java语言具有跨操作系统平台的特性?

什么是面向对象(ObjectOriented,OO)的基本思想?

创建、编译和运行Java程序的基本过程是怎样的?

……

前言/序言

Java语言是目前IT领域里的主流编程语言。面向对象的Java语言具备一次编程、在任何平台中均可运行的跨平台特性,在需要支持多种操作系统和硬件平台的场合,Java是首选的解决方案。

Java语言非常安全和健壮。Java致力于检查程序在编译和运行时的错误,奉行“错误发现和纠正得越早,造成的损失就越小”的原则,可谓防患于未然。Java还支持自动内存管理,这不但减轻了程序员的许多负担,也减少了程序员错误释放内存的机会。Java语言自1996年诞生以来,其开源的精神吸引了世界各地的IT精英们不遗余力地为它添砖加瓦。在如今的Java领域,各种新技术、新工具层出不穷,一方面,每一种技术都会不停地升级换代,另一方面,还会不断涌现出新的技术和工具。Java世界就像小时候玩的万花筒,尽管实质上只是由几个普通的玻璃碎片组成的,但只要轻轻一摇,就会变化出千万种缤纷的图案。Java世界如此变化多端,很容易让初学Java的人有无从下手的感觉。

常常会有Java新手问我类似这样的问题:“我学Java已经有一段时间了,现在只能编写一点简单的程序,要学的东西实在太多了,我整天学都学不完,很迷茫,不知道该如何有针对性地去学,才能早日成为一名功底深厚的Java程序员。”确实,对于初学者,一开始就陷入包罗万象的Java技术的汪洋大海中,难以把握技术的核心思想,以及知识的深浅和主次,学习起来会比较吃力。

为了满足广大Java初学者的要求,本人在创作了十多本Java领域里的畅销书籍后,融合近二十年来的软件开发、教学和写作经验,用轻松诙谐的笔调,创作了《大话Java》这《大话Java:程序设计从入门到精通(含DVD光盘1张)》。本人在动手写每一个知识点时,有三个问题时时在脑袋里激发自己的灵感:“怎样写才能让读者一看就懂?怎样写才能增添书的趣味性,激发读者的学习兴趣?设计怎样的范例才能让读者迅速掌握实际运用的技能?”这三个问题激励着我精益求精地设计书中的范例,推敲书中的措辞,精炼书的结构。

古人云:“授人以鱼,不如授人以渔。”在一本Java书中,泛泛而谈地罗列所有的技术,如同授人以鱼,而以抛砖引玉的方式引导读者把握Java编程的核心思想,并且掌握灵活运用技术进行编程的技能,则如授人以渔。《大话Java:程序设计从入门到精通(含DVD光盘1张)》致力于引领Java初学者们在Java领域里乘风破浪,游刃有余地“织网渔猎”。

大话Java:程序设计从入门到精通(含DVD光盘1张)》的组织结构和主要内容

大话Java:程序设计从入门到精通(含DVD光盘1张)》别出心裁,引入了中国传统文化中家喻户晓的《西游记》人物孙悟空,以他学习Java语言为主线,以模拟《西游记》中的种种传奇故事及实现各种有趣的实际应用为案例,带领读者逐步领略Java语言的种种神通妙用,大大增加了书的趣味性。

大话Java:程序设计从入门到精通(含DVD光盘1张)》的每一章都按照提出问题和解决问题的结构来安排内容,并且提供了编程实战练习,引导读者由被动阅读转为主动阅读,从而使读者既能深刻地领悟各种Java知识的用途,又能提高运用特定技术来解决实际问题的能力。

大话Java:程序设计从入门到精通(含DVD光盘1张)》主要内容包括:创建和运行Java程序的基本方法、Java语言的基本语法、数据类型和变量、操作符、流程控制、继承、Java语言中的修饰符、接口、异常处理、对象的生命周期、内部类、多线程、数组、集合、输入输出、图形用户界面和访问数据库。《大话Java:程序设计从入门到精通(含DVD光盘1张)》还介绍了JDK9的一些新特性,包括JShell命令及Java类库的模块化等。

这《大话Java:程序设计从入门到精通(含DVD光盘1张)》是否适合你

大话Java:程序设计从入门到精通(含DVD光盘1张)》通俗幽默,内容循序渐进,适合所有Java初学者阅读。即使是没有任何编程基础的读者,也可以轻松阅读《大话Java:程序设计从入门到精通(含DVD光盘1张)》。

大话Java:程序设计从入门到精通(含DVD光盘1张)》与作者的另一《大话Java:程序设计从入门到精通(含DVD光盘1张)》《Java面向对象编程》一书相比,前者的特色在于化繁为简,以通俗浅显的语言介绍了Java语言的基础知识,并且通过经典有趣的实战演练题帮助读者提高实际编程能力。后者则更为详细全面地阐述了Java语言的各种技术、性能优化的策略,以及Java的核心思想。前者提纲挈领,后者包罗万象,两者各有千秋,相得益彰。

大话Java:程序设计从入门到精通(含DVD光盘1张)》致力于轻轻松松地带领读者跨入Java世界的大门,体验通过Java编程实现各种实用范例的乐趣,而《Java面向对象编程》则帮助读者全面掌握Java的各种技术,并且更深刻理解Java的核心思想,进一步提高Java编程能力。

大话Java:程序设计从入门到精通(含DVD光盘1张)》的所有范例都基于最新的JDK9版本。《大话Java:程序设计从入门到精通(含DVD光盘1张)》每一章都提供了典型有趣的编程实战题。建议读者首先尝试自己独立完成题目。当遇到困难时,再参考书中给出的“编程提示”。这样会更有助于快速提高你的实际编程能力。

大话Java:程序设计从入门到精通(含DVD光盘1张)》技术支持网站

以下是作者为《大话Java:程序设计从入门到精通(含DVD光盘1张)》提供的技术支持网址,读者可通过它下载与《大话Java:程序设计从入门到精通(含DVD光盘1张)》相关的资源(包括源代码、软件安装程序、视频教程和讲义等),还可以与作者互动,或者和其他读者交流学习心得,以及对《大话Java:程序设计从入门到精通(含DVD光盘1张)》提出宝贵意见:

http://www.javathinker.net/funnyjava.jsp

致谢

大话Java:程序设计从入门到精通(含DVD光盘1张)》在编写过程中得到了Oracle公司、电子工业出版社,以及JavaThinker.net网站的网友们的大力支持与帮助,在此表示衷心的感谢!参与编写的人员有孙卫琴、张雷、许亮思、张宇客、孟祥、王琨、曹文伟、曹雅洁、李红军、李洪成共十人。尽管我们尽了最大努力,但《大话Java:程序设计从入门到精通(含DVD光盘1张)》难免会有不妥之处,欢迎各界专家和读者朋友批评指正。

孙卫琴


其他推荐