书海网短评:
本书采用由浅入深、与实际应用紧密结合的方式,利用大量典型生动的范例,详细讲解了Java编程的各种基本技术。本书的范例全部基于全新的JDK9版本。本书内容包括:创建和运行Java程序的基本方法、Java语言的基本语法、数据类型
《大话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张)》难免会有不妥之处,欢迎各界专家和读者朋友批评指正。
孙卫琴









