10年原创经典影响数十万读者的一本java参考书籍,疯狂java讲义第四版电了版免费版是由李刚著,覆盖了够用的java语言和技术,尽力把相关的问题讲明白,分析清楚,在同类的书籍中还是非常难得的一本好书。
疯狂java讲义第四版pdf图片预览疯狂Java讲义第4版目录大全第1章Java语言概述与开发环境1
1.1Java语言的发展简史2
1.2Java程序运行机制4
1.2.1高级语言的运行机制4
1.2.2Java程序的运行机制和JVM5
1.3开发Java的准备6
1.3.1下载和安装Java9的JDK6
不是说JVM是运行Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢?6
为什么不安装公共JRE呢?8
1.3.2设置PATH环境变量9
为什么选择用户变量?用户变量与系统变量有什么区别?10
1.4第一个Java程序11
1.4.1编辑Java源代码11
1.4.2编译Java程序11
当编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢?12
1.4.3运行Java程序12
1.4.4根据CLASSPATH环境变量定位类13
1.5Java程序的基本规则14
1.5.1Java程序的组织形式14
1.5.2Java源文件的命名规则15
1.5.3初学者容易犯的错误15
1.6JDK9新增的jshell工具17
1.7Java9的G1垃圾回收器18
1.8何时开始使用IDE工具20
我想学习Java编程,到底是学习Eclipse好,还是学习NetBeans好呢?21
1.9本章小结21
本章练习21
第2章理解面向对象22
2.1面向对象23
2.1.1结构化程序设计简介23
2.1.2程序的三种基本结构24
2.1.3面向对象程序设计简介26
2.1.4面向对象的基本特征27
2.2UML(统一建模语言)介绍28
2.2.1用例图30
2.2.2类图30
2.2.3组件图32
2.2.4部署图33
2.2.5顺序图33
2.2.6活动图34
2.2.7状态机图35
2.3Java的面向对象特征36
2.3.1一切都是对象36
2.3.2类和对象36
2.4本章小结37
第3章数据类型和运算符38
3.1注释39
3.1.1单行注释和多行注释39
3.1.2Java9增强文档注释40
API文档是什么?40
为什么要学习查看API文档的方法?42
3.2标识符和关键字46
3.2.1分隔符46
3.2.2Java9的标识符规则48
3.2.3Java关键字48
3.3数据类型分类48
什么是变量?变量有什么用?49
3.4基本数据类型49
3.4.1整型50
3.4.2字符型52
什么是字符集?52
3.4.3浮点型53
3.4.4数值中使用下画线分隔54
3.4.5布尔型55
3.5基本类型的类型转换55
3.5.1自动类型转换56
3.5.2强制类型转换57
3.5.3表达式类型的自动提升58
3.6直接量59
3.6.1直接量的类型59
3.6.2直接量的赋值60
3.7运算符61
3.7.1算术运算符61
3.7.2赋值运算符63
3.7.3位运算符64
3.7.4扩展后的赋值运算符66
3.7.5比较运算符67
3.7.6逻辑运算符68
3.7.7三目运算符69
3.7.8运算符的结合性和优先级69
3.8本章小结71
本章练习71
第4章流程控制与数组72
4.1顺序结构73
4.2分支结构73
4.2.1if条件语句73
4.2.2Java7增强后的switch分支语句77
4.3循环结构79
4.3.1while循环语句79
4.3.2dowhile循环语句80
4.3.3for循环81
4.3.4嵌套循环84
4.4控制循环结构85
4.4.1使用break结束循环85
4.4.2使用continue忽略本次循环剩下语句86
4.4.3使用return结束方法87
4.5数组类型87
4.5.1理解数组:数组也是一种类型87
int[]是一种类型吗?怎么使用这种类型呢?88
4.5.2定义数组88
4.5.3数组的初始化89
能不能只分配内存空间,不赋初始值呢?89
4.5.4使用数组90
为什么要我记住这些异常信息?90
4.5.5foreach循环91
4.6深入数组92
4.6.1内存中的数组92
为什么有栈内存和堆内存之分?93
4.6.2基本类型数组的初始化95
4.6.3引用类型数组的初始化96
4.6.4没有多维数组98
我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样不就可以扩展成三维数组,甚至扩展成更多维的数组吗?99
4.6.5Java8增强的工具类:Arrays100
4.6.6数组的应用举例103
4.7本章小结106
本章练习106
第5章面向对象(上)107
5.1类和对象108
5.1.1定义类108
构造器不是没有返回值吗?为什么不能用void声明呢?110
5.1.2对象的产生和使用111
5.1.3对象、引用和指针111
5.1.4对象的this引用112
5.2方法详解116
5.2.1方法的所属性116
5.2.2方法的参数传递机制117
5.2.3形参个数可变的方法120
5.2.4递归方法121
5.2.5方法重载123
为什么方法的返回值类型不能用于区分重载的方法?123
5.3成员变量和局部变量124
5.3.1成员变量和局部变量是什么124
5.3.2成员变量的初始化和内存中的运行机制127
5.3.3局部变量的初始化和内存中的运行机制129
5.3.4变量的使用规则130
5.4隐藏和封装131
5.4.1理解封装131
5.4.2使用访问控制符131
5.4.3package、import和importstatic134
5.4.4Java的常用包139
5.5深入构造器139
5.5.1使用构造器执行初始化139
构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象?140
5.5.2构造器重载140
为什么要用this来调用另一个重载的构造器?我把另一个构造器里的代码复制、粘贴到这个构造器里不就可以了吗?142
5.6类的继承142
5.6.1继承的特点142
5.6.2重写父类的方法143
5.6.3super限定145
5.6.4调用父类构造器147
为什么我创建Java对象时从未感觉到java.lang.Object类的构造器被调用过?149
5.7多态149
5.7.1多态性149
5.7.2引用变量的强制类型转换151
5.7.3instanceof运算符152
5.8继承与组合153
5.9初始化块157
5.10本章小结162
本章练习162
第6章面向对象(下)164
6.1Java8增强的包装类165
Java为什么要对这些数据进行缓存呢?168
6.2处理对象169
6.3类成员174
6.4final修饰符176
6.5抽象类188
6.6Java9改进的接口192
6.7内部类202
6.8Java8新增的Lambda表达式214
6.9枚举类223
6.10对象与垃圾回收229
6.11修饰符的适用范围236
6.12Java9的多版本JAR包237
6.13本章小结242
本章练习242
第7章Java基础类库243
7.1与用户互动244
7.2系统相关247
7.3常用类250
7.4日期、时间类262
7.5正则表达式268
7.6变量处理和方法处理274
7.7Java9改进的国际化与格式化276
7.8Java8新增的日期、时间格式器286
7.9本章小结289
本章练习289
第8章Java集合290
8.1Java集合概述291
8.2Collection和Iterator接口292
8.3Set集合300
8.4List集合313
8.5Queue集合317
8.6Java8增强的Map集合322
8.7HashSet和HashMap的性能选项334
8.8操作集合的工具类:Collections335
8.9烦琐的接口:Enumeration341
8.10本章小结342
本章练习342
第9章泛型343
9.1泛型入门344
9.2深入泛型347
9.3类型通配符350
9.4泛型方法356
9.5擦除和转换362
9.6泛型与数组364
9.7本章小结365
第10章异常处理366
10.1异常概述367
10.2异常处理机制368
10.3Checked异常和Runtime异常体系378
10.4使用throw抛出异常380
10.5Java的异常跟踪栈386
10.6异常处理规则388
10.7本章小结390
本章练习390
第11章AWT编程391
11.1Java9改进的GUI(图形用户界面)和AWT392
11.2AWT容器393
11.3布局管理器396
11.4AWT常用组件407
11.5事件处理411
11.6AWT菜单421
11.7在AWT中绘图425
11.8处理位图430
11.9剪贴板436
11.10拖放功能446
11.11本章小结451
本章练习451
第12章Swing编程452
12.1Swing概述453
12.2Swing基本组件的用法454
12.3Swing中的特殊容器478
12.4Swing简化的拖放功能491
12.5Java7新增的Swing功能492
12.6使用JProgressBar、ProgressMonitor和BoundedRangeModel创建进度条500
12.7使用JSlider和BoundedRangeModel创建滑动条505
12.8使用JSpinner和SpinnerModel创建微调控制器508
12.9使用JList、JComboBox创建列表框511
12.10使用JTree和TreeModel创建树521
12.11使用JTable和TableModel创建表格535
12.12使用JFormattedTextField和JTextPane创建格式文本557
12.13本章小结575
本章练习575
第13章MySQL数据库与JDBC编程576
13.1JDBC基础577
13.2SQL语法579
13.3JDBC的典型用法613
13.4执行SQL语句的方式618
13.5管理结果集627
13.6Javar的RowSet636
13.7事务处理641
13.8分析数据库信息646
13.9使用连接池管理连接649
13.10本章小结651
本章练习651
第14章注解(Annotation)652
14.1基本注解653
14.2JDK的元注解657
14.3自定义注解660
14.4编译时处理注解670
14.5本章小结674
第15章输入/输出675
15.1File类676
15.2理解Java的IO流679
15.3字节流和字符流681
15.4输入/输出流体系685
15.5重定向标准输入/输出690
15.6Java虚拟机读写其他进程的数据691
15.7RandomAccessFile694
15.8Java9改进的对象序列化697
15.9NIO711
15.10Java7的NIO.2721
15.11本章小结726
本章练习727
第16章多线程728
16.1线程概述729
16.2线程的创建和启动731
16.3线程的生命周期735
16.4控制线程739
16.5线程同步743
16.6线程通信753
16.7线程组和未处理的异常761
16.8线程池764
16.9线程相关类769
16.10本章小结774
本章练习775
第17章网络编程776
17.1网络编程的基础知识777
17.2Java的基本网络支持779
17.3基于TCP协议的网络编程787
17.4基于UDP协议的网络编程814
17.5使用代理服务器828
17.6本章小结832
本章练习832
第18章类加载机制与反射833
18.1类的加载、连接和初始化834
18.2类加载器838
18.3通过反射查看类信息844
18.4使用反射生成并操作对象850
18.5使用反射生成JDK动态代理857
18.6反射和泛型862
18.7本章小结865
本章练习866
附录AJava9的模块化系统867
篇幅限制,部分小节未完整罗列,完整目录请见本书。
内容简介《疯狂Java讲义(第4版)》是《疯狂Java讲义》的第4版,第4版保持了前3版系统、全面、讲解浅显、细致的特性,全面新增介绍了Java9的新特性。
《疯狂Java讲义(第4版)》深入介绍了Java编程的相关方面,《疯狂Java讲义(第4版)》内容覆盖了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包下绝大部分类和接口。本书重点介绍了Java9的模块化系统,还详细介绍了Java9的jshell工具、多版本JAR包、匿名内部类的菱形语法、增强的try语句、私有接口方法,以及Java9新增的各种API功能。
与前3版类似,《疯狂Java讲义(第4版)》并不单纯从知识角度来讲解Java,而是从解决问题的角度来介绍Java语言,所以《疯狂Java讲义(第4版)》中涉及大量实用案例开发:五子棋游戏、梭哈游戏、仿QQ的游戏大厅、MySQL企业管理器、仿EditPlus的文本编辑器、多线程、断点下载工具、Spring框架的IoC容器……这些案例既能让读者巩固每章的知识,又可以让读者学以致用,激发编程自豪感,进而引爆内心的编程激情。《疯狂Java讲义(第4版)》光盘里包含书中所有示例的代码和《疯狂Java实战演义》的所有项目代码,这些项目可以作为本书课后练习的“非标准答案”,如果读者需要获取关于课后习题的解决方法、编程思路,可以登录http://www.crazyit.org站点与笔者及本书庞大的读者群相互交流。
《疯狂Java讲义(第4版)》为所有打算深入掌握Java编程的读者而编写,适合各种层次的Java学习者和工作者阅读,也适合作为大学教育、培训机构的Java教材。但如果只是想简单涉猎Java,则本书过于庞大,不适合阅读。
作者介绍李刚,十余年软件开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系原创图书作者。广东技术师范学院计算机科学系兼职副教授,CSDN特邀讲师。培训的学生已在腾讯、阿里、华为、IBM、网易、唯品会、电信盈科等名企就职。国内知名高端IT技术图书作家,已出版《疯狂Java讲义》《疯狂Android讲义》《轻量级JavaEE企业应用实战》《疯狂前端开发讲义》《疯狂HTML5/CSS3/JavaScript讲义》《疯狂iOS讲义(基础篇)(提高篇)》《疯狂XML讲义》《经典JavaEE企业应用实战》《Struts2.xquanwei指南》等著作。其中疯狂Java体系图书均已沉淀多年,赢得极高的市场认同,多次重印,多部著作印刷数量超过10万册,并被多所“985”“211”院校选作教材,部分图书已被翻译成繁体中文版,授权到中国台湾地区。
疯狂Java讲义是选择第4版还是第5版
1,两个版本的代码并不完全兼容,所以要根据自身需求选择图书版本进行学习。
第4版覆盖Java9/817,在大多数生产环境中,出于系统性能稳定性和升级成本的考量,使用的Java版本多是7/8,如果为了快速与大厂的开发环境接轨,建议选择第4版。
2·价格不同,第4版比第5版定价低30元。
图书特色1)作者提供用于学习和交流的配套网站及作者亲自在线的答疑微信群、QQ群。
2)DVD光盘中含
√1500分钟图书部分内容的相关视频
√图书配套代码
√Java面试题真题
√PPT课件
√设计模式电子书
√有助于完成课后练习的大量完整案例
3)《疯狂Java讲义》历时十年沉淀,现已升级到第4版,经过无数Java学习者的反复验证,被包括北京大学在内的大量985、211高校的优秀教师引荐为参考资料、选作教材。
4)《疯狂Java讲义》曾翻译为中文繁体字版,在宝岛台湾上市发行。
5)《疯狂Java讲义》屡获殊荣,多次获取电子工业出版社的“畅销图书”、“长销图书”奖项,作者本人也多次获得“优秀作者”称号。仅第3版一版的印量即达9万多册。
6)赠送线下课程优惠券。
7)介绍新知识时,通过巧妙的类比,将未知事物与已知事物进行类比,降低读者的学习难度;对于一些复杂、易于混淆的语法,本书还归纳了琅琅上口的口诀,比如方法重写的口诀,能让读者快速掌握Java的核心语法,并加深记忆。
8)《疯狂Java讲义》不是一本翻译而来的Java图书,书中不会有任何生僻、晦涩的翻译词汇,有的只是浅显、易懂的表达;符合中国人思维习惯、学习方式,更适合中国人学习Java。