• 疯狂Java讲义(第5版)(含DVD光盘一张) 9787121361586
21年品牌 40万+商家 超1.5亿件商品

疯狂Java讲义(第5版)(含DVD光盘一张) 9787121361586

全新正版 _可开发票_极速发货

88.3 6.4折 139 全新

库存2件

山东泰安
认证卖家担保交易快速发货售后保障

作者李刚编著

出版社电子工业出版社

ISBN9787121361586

出版时间2019-04

装帧平装

开本16开

定价139元

货号9503158

上书时间2024-06-30

果然是好书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
"如何学习Java ——谨以此文献给打算以编程为职业、并愿意为之疯狂的人 经常看到有些学生、求职者捧着一本类似uilder入门、Eclipse指南之类的图书学习Java,当他们学会了在这些工具中拖出窗体、安装按钮之后,就觉得自己掌握、甚至精通了Java;又或是找来一本类似JSP动态网站编程之类的图书,学会使用JSP脚本编写一些页面后,就自我感觉掌握了Java开发。 还有一些学生、求职者听说J2EE、Spring或E很有前途,于是立即跑到书店或图书馆找来一本相关图书。希望立即学会它们,然后进入软件开发业、大显身手。 还有一些学生、求职者很好希望找到一本既速成、又大而全的图书,比如突击J2EE开发、一本书精通J2EE之类的图书(包括笔者曾出版的《轻量级J2EE企业应用实战》一书,据说销量不错),希望这样一本图书就可以打通自己的“任督二脉”,一跃成为J2EE开发高手。 也有些学生、求职者很好喜欢J2EE项目实战、项目大全之类的图书,他们的想法很单纯:我按照书上介绍,按图索骥、依葫芦画瓢,应该很快就可学会J2EE,很快就能成为一个受人羡慕的J2EE程序员了。 …… 凡此种种,不一而足。但很后的结果往往是失败,因为这种学习没有积累、没有根基,学习过程中困难重重,每天都被一些相同、类似的问题所困扰,起初热情十足,经常上论坛询问,按别人的说法解决问题之后很高兴,既不知道为什么错?也不知道为什么对?只是盲目地抄袭别人的说法。很后的结果有两种: 久而久之,热情丧失,很后放弃学习。 大部分常见问题都问遍了,很后也可以从事一些重复性开发,但一旦遇到新问题,又将束手无策。 第二种情形在普通程序员中占了极大的比例,笔者多次听到、看到(在网络上)有些程序员抱怨:我做了2年多Java程序员了,工资还是3000多点。偶尔笔者会与他们聊聊工作相关内容,他们会告诉笔者:我也用Spring了啊,我也用E了啊……他们感到很好不平衡,为什么我的工资这么低?其实笔者很想告诉他们:你们太浮躁了!你们确实是用了Spring、Hibernate又或是E,但你们未想过为什么要用这些技术?用这些技术有什么好处?如果不用这些技术行不行? 很多时候,我们的程序员把Java当成一种脚本,而不是一门面向对象的语言。他们习惯了在JSP脚本中使用Java,但从不去想JSP如何运行,Web服务器里的网络通信、多线层机制,为何一个JSP页面能同时向多个请求者提供服务?更不会想如何开发Web服务器;他们像代码机器一样编写Spring Bean代码,但从不去理解Spring容器的作用,更不会想如何开发Spring容器。 有时候,笔者的学生在编写五子棋、梭哈等作业感到困难时,会向他们的大学师兄、朋友求救,这些程序员告诉他:不用写了,网上有下载的!听到这样回答,笔者不感到哑然:网上还有Windows下载呢!网上下载和自己编写是两码事。偶尔,笔者会怀念以前黑色屏幕、绿荧荧字符时代,那时候程序员很单纯:当我们想偷懒时,习惯思维是写一个小工具;现在程序员很聪明:当他们想偷懒时,习惯思维是从网上下一个小工具。但是,谁更幸福? 当笔者的学生把他们完成的小作业放上互联网之后,然后就有许多人称他们为“高手”!这个称呼却让他们万分惭愧;惭愧之余,他们也感到万分欣喜,很好有成就感,这就是编程的快乐。编程的过程,与寻宝的过程接近一样:历经辛苦,终于找到心中的梦想,这是何等的快乐? 如果真的打算将编程当成职业,那就不应该如此浮躁,而是应该扎扎实实先学好Java语言,然后按Java本身的学习规律,踏踏实实一步一个脚印地学习,把基本功练扎实了才可获得更大的成功。 实际情况是,有多少程序员真正掌握了Java的面向对象?真正掌握了Java的多线程、网络通信、反射等内容?有多少Java程序员真正理解了类初始化时内存运行过程?又有多少程序员理解Java对象从创建到消失的全部细节?有几个程序员真正独立地编写过五子棋、梭哈、桌面弹球这种小游戏?又有几个Java程序员敢说:我可以开发Struts?我可以开发Spring?我可以开发Tomcat?很多人又会说:这些都是许多人开发出来的!实际情况是:许多开源框架的核心很初接近是由一个人开发的。现在这些很好程序已经出来了!你,是否深入研究过它们,是否深入掌握了它们? 如果要真正掌握Java,包括后期的Java EE相关技术(例如Struts、Spring、Hibernate和E等),一定要记住笔者的话:绝不要从IDE(如uilder、Eclipse和NetBeans)工具开始学习!IDE工具的功能很强大,初学者学起来也很容易上手,但也很好危险:因为IDE工具已经为我们做了许多事情,而软件开发者要全部了解软件开发的全部步骤。 2019年1月22日 "

目录
第1章 Java语言概述与开发环境1
1.1 Java语言的发展简史2
1.2 Java程序运行机制4
1.2.1 语言的运行机制4
1.2.2 Java程序的运行机制和JVM5
1.3 开发Java的准备6
1.3.1 和安装Java 11的JDK6
不是说JVM是运行Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢?7
1.3.2 设置PATH环境变量9
为什么选择用户变量?用户变量与系统变量有什么区别?10
1.4 第一个Java程序10
1.4.1 编辑Java源代码10
1.4.2 编译Java程序11
当编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢?11
1.4.3 运行Java程序12
1.4.4 根据CLASSPATH环境变量定位类13
1.5 Java程序的基本规则14
1.5.1 Java程序的组织形式14
1.5.2 Java源文件的命名规则14
1.5.3 初学者容易犯的错误15
1.6 交互式工具:jshell17
1.7 Java 11改进的垃圾回收器18
1.8 何时开始使用IDE工具20
我想学习Java编程,到底是学习Eclipse好,还是学习IntelliJ IDEA好呢?21
1.9 本章小结22
本章练习22

第2章 理解面向对象23
2.1  面向对象24
2.1.1  结构化程序设计简介24
2.1.2  程序的三种基本结构25
2.1.3  面向对象程序设计简介27
2.1.4  面向对象的基本特征28
2.2  UML(统一建模语言)介绍29
2.2.1  用例图31
2.2.2  类图31
2.2.3  组件图33
2.2.4  部署图34
2.2.5  顺序图34
2.2.6  活动图35
2.2.7  状态机图36
2.3  Java的面向对象特征37
2.3.1  一切都是对象37
2.3.2  类和对象37
2.4  本章小结38

第3章 数据类型和运算符39
3.1  注释40
3.1.1  单行注释和多行注释40
3.1.2  文档注释41
API文档是什么?41
为什么要学习查看API文档的方法?43
3.2  标识符和关键字47
3.2.1  分隔符47
3.2.2  标识符规则49
3.2.3  Java关键字49
3.3  数据类型分类50
什么是变量?变量有什么用?50
3.4  基本数据类型51
3.4.1  整型51
3.4.2  字符型53
什么是字符集?53
3.4.3  浮点型54
3.4.4  数值中使用下画线分隔56
3.4.5  布尔型56
3.4.6  使用var定义变量57
3.5  基本类型的类型转换58
3.5.1  自动类型转换58
3.5.2  强制类型转换59
3.5.3  表达式类型的自动提升61
3.6  直接量62
3.6.1  直接量的类型62
3.6.2  直接量的赋值62
3.7  运算符63
3.7.1  算术运算符63
3.7.2  赋值运算符66
3.7.3  位运算符66
3.7.4  扩展后的赋值运算符68
3.7.5  比较运算符69
3.7.6  逻辑运算符70
3.7.7  三目运算符71
3.7.8  运算符的结合性和优先级72
3.8  本章小结73
本章练习73

第4章 流程控制与数组74
4.1  顺序结构75
4.2  分支结构75
4.2.1  if条件语句75
4.2.2  Java 11改进的switch分支语句79
4.3  循环结构81
4.3.1  while循环语句81
4.3.2  do while循环语句82
4.3.3  for循环83
4.3.4  嵌套循环86
4.4  控制循环结构87
4.4.1  使用break结束循环87
4.4.2  使用continue忽略本次循环剩下语句88
4.4.3  使用return结束方法89
4.5  数组类型90
4.5.1  理解数组:数组也是一种类型90
int[]是一种类型吗?怎么使用这种类型呢?90
4.5.2  定义数组90
4.5.3  数组的初始化91
能不能只分配内存空间,不赋初始值呢?91
4.5.4  使用数组93
为什么要我记住这些异常信息?93
4.5.5  foreach循环94
4.6  深入数组95
4.6.1  内存中的数组95
为什么有栈内存和堆内存之分?96
4.6.2  基本类型数组的初始化97
4.6.3  引用类型数组的初始化98
4.6.4  没有多维数组100
我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样不就可以扩展成三维数组,甚至扩展成更多维的数组吗?102
4.6.5  操作数组的工具类:Arrays103
4.6.6  数组应用举例106
4.7  本章小结109
本章练习109

第5章 面向对象(上)110
5.1  类和对象111
5.1.1  定义类111
构造器不是没有返回值吗?为什么不能用void声明呢?113
5.1.2  对象的产生和使用114
5.1.3  对象、引用和指针114
5.1.4  对象的this引用116
5.2  方法详解119
5.2.1  方法的所属性119
5.2.2  方法的参数传递机制120
5.2.3  形参个数可变的方法124
5.2.4  递归方法125
5.2.5  方法重载126
为什么方法的返回值类型不能用于区分重载的方法?127
5.3  成员变量和局部变量127
5.3.1  成员变量和局部变量128
5.3.2  成员变量的初始化和内存中的运行机制131
5.3.3  局部变量的初始化和内存中的运行机制133
5.3.4  变量的使用规则133
5.4  隐藏和封装134
5.4.1  理解封装134
5.4.2  使用访问控制符135
5.4.3  package、import和import static138
5.4.4  Java的常用包142
5.5  深入构造器142
5.5.1  使用构造器执行初始化142
构造器是创建Java对象的途径,是不是说构造器负责创建Java对象?143
5.5.2  构造器重载144
为什么要用this来调用另一个重载的构造器?我把另一个构造器里的代码复制、粘贴到这个构造器里不就可以了吗?145
5.6  类的继承145
5.6.1  继承的特点145
5.6.2  重写父类的方法147
5.6.3  super限定148
5.6.4  调用父类构造器150
为什么我创建Java对象时从未感觉到java.lang. Object类的构造器被调用过?152
5.7  多态152
5.7.1  多态性153
5.7.2  引用变量的强制类型转换154
5.7.3  instanceof运算符156
5.8  继承与组合156
5.8.1  使用继承的注意点157
5.8.2  利用组合实现复用158
使用组合关系来实现复用时,需要创建两个Animal对象,是不是意味着使用组合关系时系统开销更大?160
5.9  初始化块161
5.9.1  使用初始化块161
5.9.2  实例初始化块和构造器163
5.9.3  类初始化块163
5.10  本章小结166
本章练习166

第6章 面向对象(下)167
6.1  包装类168
Java为什么要对这些数据进行缓存呢?171
6.2  处理对象172
6.2.1  打印对象和toString方法172
6.2.2  ==和equals方法174
上面程序中判断obj是否为Person类的实例时,为何不用obj instanceof Person来判断呢?177
6.3  类成员177
6.3.1  理解类成员177
6.3.2  单例(Singleton)类178
6.4  final修饰符179
6.4.1  final成员变量180
6.4.2  final局部变量182
6.4.3  final修饰基本类型变量和引用类型变量的区别182
6.4.4  可执行“宏替换”的final变量183
6.4.5  final方法185
6.4.6  final类186
6.4.7  不可变类186
6.4.8  缓存实例的不可变类189
6.5  抽象类191
6.5.1  抽象方法和抽象类191
6.5.2  抽象类的作用194
6.6  Java 9改进的接口195
6.6.1  接口的概念195
6.6.2  Java 9中接口的定义196
6.6.3  接口的继承198
6.6.4  使用接口199
6.6.5  接口和抽象类201
6.6.6  面向接口编程201
6.7  内部类205
6.7.1  非静态内部类205
学生提问:非静态内部类对象和外部类对象的关系是怎样的?208
6.7.2  静态内部类209
为什么静态内部类的实例方法也不能访问外部类的实例属性呢?210
学生提问:接口里是否能定义内部接口?211
6.7.3  使用内部类211
既然内部类是外部类的成员,那么是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类呢?213
6.7.4  局部内部类213
6.7.5  匿名内部类214
6.8  Java 11增强的Lambda表达式217
6.8.1  Lambda表达式入门217
6.8.2  Lambda表达式与函数式接口219
6.8.3  在Lambda表达式中使用var221
6.8.4  方法引用与构造器引用222
6.8.5  Lambda表达式与匿名内部类的联系和区别225
6.8.6  使用Lambda表达式调用Arrays的类方法226
6.9  枚举类226
6.9.1  手动实现枚举类227
6.9.2  枚举类入门227
6.9.3  枚举类的成员变量、方法和构造器229
6.9.4  实现接口的枚举类231
枚举类不是用final修饰了吗?怎么还能派生子类呢?232
6.9.5  包含抽象方法的枚举类232
6.10  对象与垃圾回收233
6.10.1  对象在内存中的状态233
6.10.2  强制垃圾回收234
6.10.3  finalize方法235
6.10.4  对象的软、弱和虚引用236
6.11  修饰符的适用范围240
6.12  多版本JAR包240
6.12.1  jar命令详解241
6.12.2  创建可执行的JAR包244
6.12.3  关于JAR包的技巧244
6.13  本章小结245
本章练习245

第7章 Java基础类库246
7.1  与用户互动247
7.1.1  运行Java程序的参数247
7.1.2  使用Scanner获取键盘输入248
7.2  系统相关250
7.2.1  System类250
7.2.2  Runtime类与Java 9的ProcessHandle252
7.3  常用类253
7.3.1  Object类253
7.3.2  操作对象的Objects工具类255
7.3.3  Java 9改进的String、StringBuffer和StringBuilder类256
7.3.4  Math类259
7.3.5  ThreadLocalRandom与Random261
7.3.6  BigDecimal类262
7.4  Java 8的日期、时间类265
7.4.1  Date类265
7.4.2  Calendar类266
7.4.3  新的日期、时间包269
7.5  正则表达式271
7.5.1  创建正则表达式271
7.5.2  使用正则表达式274
7.6  变量处理和方法处理277
7.6.1

内容摘要
本书是《疯狂Java讲义》的第5版,第5版保持了前4版系统、全面、讲解浅显、细致的特性,全面新增介绍了Java10、Java11的新特性。本书深入介绍了Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、JavaGUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。覆盖了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下绝大部分类和接口。本书重点介绍了Java的模块化系统,还详细介绍了Java10、Java11的使用var声明局部变量、在Lambda表达式中使用var声明变量、改进的javac命令、基于嵌套的访问控制、HTTPClient网络编程,以及Java10、Java11新增的各种API功能。与前4版类似,本书并不单纯从知识角度来讲解Java,而是从解决问题的角度来介绍Java语言,所以本书中涉及大量实用案例开发:五子棋游戏、梭哈游戏、仿QQ的游戏大厅、MySQL企业管理器、仿EditPlus的文本编辑器、多线程、断点下载工具、Spring框架的IoC容器……这些案例既能让读者巩固每章的知识,又可以让读者学以致用,激发编程自豪感,进而引爆内心的编程激情。本书光盘里包含书中所有示例的代码和《疯狂Java实战演义》的所有项目代码,这些项目可以作为本书课后练习的“非标准答案”,如果读者需要获取关于课后习题的解决方法、编程思路,可以登录http://www.crazyit.org站点与笔者及本书庞大的读者群相互交流。本书为所有打算深入掌握Java编程的读者而编写,适合各种层次的Java学习者和工作者阅读,也适合作为大学教育、培训机构的Java教材。但如果只是想简单涉猎Java,则本书过于庞大,不适合阅读。

主编推荐
1)作者提供用于学习和交流的配套网站及作者亲自在线的答疑微信群、QQ群。
2)DVD光盘中含
√ 1500分钟图书部分内容的相关视频
√ 图书配套代码
√ Java面试题真题
√ PPT课件
√ 设计模式电子书
√ 有助于完成课后练习的大量完整案例
3)《疯狂Java讲义》历时十年沉淀,现已升级到第4版,经过无数Java学习者的反复验证,被包括北京大学在内的大量“双”、985、211高校的教师引荐为参考资料、选作教材。
4)《疯狂Java讲义》曾翻译为中文繁体字版,在宝岛台湾上市发行。
5)《疯狂Java讲义》屡获殊荣,多次获取电子工业出版社的“图书”、“长销图书”奖项,作者本人也多次获得“作者”称号。仅第3版一版的印量即达9万多册。
6)介绍新知识时,通过巧妙的类比,将未知事物与已知事物进行类比,降低读者的学习难度;对于一些复杂、易于混淆的语法,本书还归纳了琅琅上口的口诀,比如方法重写的口诀,能让读者快速掌握Java的核心语法,并加深记忆。
7)《疯狂Java讲义》不是一本翻译而来的Java图书,书中不会有任何生僻、晦涩的翻译词汇,有的只是浅显、易懂的表达;符合中国人思维习惯、学习方式,更适合中国人学习Java。
 

精彩内容

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP