《Java从入门到精通(第4版)》是由人民邮电出版社出版的一本关于Java方面的书籍,作者是宁跃飞、史卫亚、张洪超,主要介绍了关于Java、Java入门、Java精通方面的知识内容,目前在Java类书籍综合评分为:7.6分。
书籍介绍
编辑推荐
1.丰富、实用、专业的范例和项目
本书结合实际工作中的范例,逐一讲解Java的各种知识和技术;结尾还以实际开发项目来总结本书所学内容,帮助读者在实战中掌握知识,轻松获得项目经验。
2.习题要点汇总,随时检测自己的学习成果
每章开头给出了“本章要点”,以便读者明确学习方向。每章结尾的“实战练习”则根据所在章的知识点精心设计而成,读者可以随时进行自我检测,巩固所学知识。
3.随书附赠教学录像,书影同步,让你的学习更加立体简单
17小时全程同步教学录像,录像涵盖本书所有知识点,详细讲解每个范例及项目的开发过程与关键点,帮助读者更轻松地掌握书中所有的Java程序设计知识。
4.海量程序代码资源大放送
赠送大量资源,包括Java和Oracle项目实战教学录像、JavaSE类库查询手册、Eclipse常用快捷键说明文档、Eclipse提示与技巧电子书、Java常见面试题、Java常见错误及解决方案、Java开发经验及技巧大汇总、Java程序员职业规划、Java程序员面试技巧。
内容简介
本书以零基础讲解为宗旨,用实例引导读者学习,深入浅出地介绍了Java的相关知识和实战技巧。
本书“第Ⅰ篇基础知识”主要介绍Java开发环境搭建、Java程序要素、常量、变量、数据类型、运算符、表达式、语句、流程控制、数组、枚举、类、对象以及方法等,“第Ⅱ篇核心技术”主要介绍类的封装、继承、多态、抽象类、接口、Java常用类库以及异常的捕获与处理等,“第Ⅲ篇高级应用”主要介绍多线程、文件I/O操作、GUI编程、数据库编程、JavaWeb以及常用设计框架等,“第Ⅳ篇项目实战”主要介绍中国象棋和我的饭票网等项目。此外,附赠的电子书中还介绍了Android编辑基础、Hadoop下的数据处理、全分布式Hadoop集群的构建等内容。
本书提供了与图书内容全程同步的视频教程,还赠送了大量相关学习资料,以便读者配合学习。
本书适合任何想学习Java的读者,无论你是否从事计算机相关行业,是否接触过Java,均可通过学习本书快速地掌握Java的开发方法和技巧。
作者简介
宁跃飞工程硕士,副教授,现执教于郑州升达经贸管理学院信息工程学院。主要研究方向为计算机网络、物联网技术应用等。主持和参与科研(教研)项目9项,参与编写教材(专著)6部,发表相关科研(教研)论文10余篇。史卫亚博士,副教授,现执教于河南工业大学信息科学与工程学院。主要研究方向为机器学习、大数据检索、数据库、图像和视频处理、人工智能和模式识别等。先后在国内外核心期刊及会议上发表30多篇论文,参加多项国家自然科学基金、河南省科技攻关项目。张洪超电力工程师,河南工业大学计算机硕士。主要研究方向为图像和视频处理、基于人工智能的网络安全等。
目录
- 第0章Java学习指南
- 0.1Java为什么重要002
- 0.2Java简史——带给我们的一点思考003
- 0.3Java应用领域和前景008
- 0.4Java学习路线图010
- 第Ⅰ篇基础知识
- 第1章Java开发环境搭建
- 1.1Java开发环境013
- 1.2下载与安装JDK013
- 1.2.1下载JDK013
- 1.2.2安装JDK015
- 1.3Java环境变量的配置017
- 1.3.1理解环境变量017
- 1.3.2JDK中的3个环境变量018
- 1.4享受安装成果—开发第一个Java程序023
- 1.5Eclipse的使用025
- 1.5.1Eclipse概述025
- 1.5.2创建Java项目026
- 1.5.3创建Java类文件027
- 1.5.4运行Java程序029
- 1.6在AndroidStudio中运行Java程序030
- 1.7高手点拨031
- 1.8实战练习032
- 第2章Java程序要素概览
- 2.1一个简单的例子034
- 2.2认识Java程序035
- 2.2.1Java程序的框架035
- 2.2.2标识符036
- 2.2.3关键字037
- 2.2.4注释037
- 2.2.5变量038
- 2.2.6数据类型039
- 2.2.7运算符和表达式040
- 2.2.8类040
- 2.3程序的检测041
- 2.3.1语法错误041
- 2.3.2语义错误042
- 2.4提高程序的可读性042
- 2.5综合实例——计算两数之和043
- 2.6高手点拨044
- 2.7实战练习044
- 第3章Java编程基础—常量、变量与数据类型
- 3.1常量与变量046
- 3.1.1常量的声明与使用046
- 3.1.2变量的声明与使用047
- 3.2基本数据类型051
- 3.2.1数据类型的意义051
- 3.2.2整数类型052
- 3.2.3浮点数类型055
- 3.2.4字符类型056
- 3.2.5布尔类型057
- 3.2.6var类型058
- 3.3综合实例——var类型和基本类型的比较059
- 3.4高手点拨060
- 3.5实战练习060
- 第4章编程元素详解——运算符、表达式、语句与流程控制
- 4.1运算符062
- 4.1.1赋值运算符062
- 4.1.2一元运算符062
- 4.1.3算术运算符064
- 4.1.4逻辑运算符065
- 4.1.5位运算符067
- 4.1.6三元运算符069
- 4.1.7if语句与关系运算符070
- 4.1.8递增与递减运算符070
- 4.2表达式071
- 4.2.1算术表达式与关系表达式072
- 4.2.2逻辑表达式与赋值表达式073
- 4.2.3表达式的类型转换074
- 4.3语句075
- 4.3.1语句中的空格075
- 4.3.2空语句076
- 4.3.3声明语句与赋值语句077
- 4.4程序的控制逻辑077
- 4.4.1顺序结构077
- 4.4.2选择结构078
- 4.4.3循环结构078
- 4.5选择结构078
- 4.5.1if语句079
- 4.5.2if...else语句081
- 4.5.3if...elseif...else语句083
- 4.5.4多重选择switch语句084
- 4.6循环结构086
- 4.6.1while循环086
- 4.6.2do...while循环088
- 4.6.3for循环089
- 4.7循环的跳转091
- 4.7.1break语句091
- 4.7.2continue语句093
- 4.7.3return语句095
- 4.8综合实例——模拟抛硬币一亿次096
- 4.9高手点拨097
- 4.10实战练习098
- 第5章数组与枚举
- 5.1理解数组100
- 5.2一维数组102
- 5.2.1一维数组的声明与内存的分配102
- 5.2.2数组中元素的表示方法103
- 5.2.3数组元素的使用104
- 5.3二维数组107
- 5.3.1二维数组的声明与赋值107
- 5.3.2二维数组元素的引用及访问108
- 5.4枚举简介109
- 5.5Java中的枚举110
- 5.5.1常见的枚举定义方法110
- 5.5.2在程序中使用枚举110
- 5.5.3在switch语句中使用枚举111
- 5.6综合实例——查找二维数组中的值112
- 5.7高手点拨113
- 5.8实战练习113
- 第6章类和对象
- 6.1理解面向对象程序设计116
- 6.1.1面向对象程序设计简介116
- 6.1.2面向对象程序设计的基本特征116
- 6.2面向对象的基本概念117
- 6.2.1类117
- 6.2.2对象117
- 6.2.3类和对象的关系117
- 6.3类的声明与定义118
- 6.3.1类的声明118
- 6.3.2类的定义119
- 6.4类的属性121
- 6.4.1属性的定义121
- 6.4.2属性的使用121
- 6.5对象的声明与使用124
- 6.5.1对象的声明124
- 6.5.2对象的使用125
- 6.5.3匿名对象127
- 6.6综合实例——创建一个手机对象128
- 6.7高手点拨129
- 6.8实战练习129
- 第7章重复调用的代码块—方法
- 7.1方法的基本定义132
- 7.2方法的使用133
- 7.3方法中的形参与实参135
- 7.4方法的重载135
- 7.5构造方法139
- 7.5.1构造方法的概念139
- 7.5.2构造方法的重载141
- 7.5.3构造方法的私有化144
- 7.6在方法内部调用方法147
- 7.7static方法149
- 7.7.1自定义static方法149
- 7.7.2static主方法150
- 7.8综合实例——求解一元二次方程152
- 7.9高手点拨153
- 7.10实战练习153
- 第Ⅱ篇核心技术
- 第8章类的封装、继承与多态
- 8.1封装157
- 8.1.1Java访问权限修饰符157
- 8.1.2封装问题引例157
- 8.1.3类的封装实例158
- 8.2继承164
- 8.2.1Java中的继承164
- 8.2.2继承问题的引入165
- 8.2.3继承实现代码复用166
- 8.2.4继承的限制167
- 8.3覆写170
- 8.3.1属性的覆盖170
- 8.3.2方法的覆写171
- 8.4多态174
- 8.4.1多态的基本概念174
- 8.4.2方法的多态性176
- 8.4.3对象的多态性177
- 8.5综合实例—创建Person类和它的子类178
- 8.6高手点拨180
- 8.7实战练习180
- 第9章抽象类与接口
- 9.1抽象类182
- 9.1.1抽象类的定义182
- 9.1.2抽象类的使用182
- 9.2接口185
- 9.2.1接口的基本概念185
- 9.2.2使用接口的原则186
- 9.3Lambda表达式194
- 9.4综合实例——实现USB接口196
- 9.5高手点拨197
- 9.6实战练习197
- 第10章Java常用类库
- 10.1类库的概念200
- 10.2基本数据类型的包装类200
- 10.2.1装箱与拆箱201
- 10.2.2基本数据类型与字符串的转换202
- 10.3String类204
- 10.3.1String类的声明205
- 10.3.2String类中常用的方法206
- 10.4Math与Random类209
- 10.4.1Math类的使用209
- 10.4.2Random类的使用211
- 10.5综合实例——验证身份证号码是否合法212
- 10.6高手点拨214
- 10.7实战练习214
- 第11章异常的捕获与处理
- 11.1异常的基本概念216
- 11.1.1简单的异常范例216
- 11.1.2异常的处理217
- 11.2异常类的处理流程223
- 11.3throws关键字224
- 11.4throw关键字225
- 11.5异常处理的标准格式226
- 11.6综合实例——数组的创建与查找227
- 11.7高手点拨228
- 11.8实战练习228
- 第Ⅲ篇高级应用
- 第12章多线程
- 12.1感知多线程231
- 12.2体验多线程231
- 12.2.1通过继承Thread类实现多线程232
- 12.2.2通过实现Runnable接口实现多线程234
- 12.2.3两种多线程实现机制的比较236
- 12.2.4Java8中运行线程的新方法239
- 12.3线程的状态240
- 12.4线程操作的一些方法242
- 12.4.1取得和设置线程的名称242
- 12.4.2判断线程是否启动245
- 12.4.3守护线程与setDaemon()方法246
- 12.4.4线程的联合247
- 12.5综合实例——龟兔赛跑248
- 12.6高手点拨249
- 12.7实战练习250
- 第13章文件I/O操作
- 13.1输入/输出的重要性252
- 13.2读写文本文件252
- 13.2.1File文件类252
- 13.2.2文本文件的操作254
- 13.2.3字符编码问题257
- 13.3文本的I/O260
- 13.3.1读入文本单词260
- 13.3.2读入单个字符261
- 13.3.3判断字符分类的方法261
- 13.3.4读入一行文本261
- 13.3.5将字符转换为数字262
- 13.4使用try-with-resources自动关闭资源263
- 13.5命令行参数的使用265
- 13.5.1System类对I/O的支持265
- 13.5.2Java命令行参数解析266
- 13.6综合实例——文本替换程序268
- 13.7高手点拨269
- 13.8实战练习270
- 第14章GUI编程
- 14.1GUI概述272
- 14.2JavaFX与Swing以及AWT的比较272
- 14.2.1JavaFX程序的基本结构272
- 14.2.2GUI与AWT276
- 14.2.3Swing和AWT的区别与联系276
- 14.3AWT容器277
- 14.3.1Frame窗口277
- 14.3.2Panel面板280
- 14.3.3布局管理器281
- 14.4AWT常用组件286
- 14.4.1按钮与标签组件287
- 14.4.2文本域289
- 14.4.3图形控件290
- 14.5事件处理291
- 14.5.1事件处理的流程292
- 14.5.2常用的事件293
- 14.5.3事件处理小实例——会动的小乌龟297
- 14.6Swing概述299
- 14.7Swing的基本组件300
- 14.7.1JTable表格301
- 14.7.2JComboBox下拉列表框302
- 14.7.3组件的常用方法303
- 14.8综合实例——简易学生管理系统304
- 14.9高手点拨306
- 14.10实战练习306
- 第15章数据库编程
- 15.1数据库概述308
- 15.2Java数据库连接利器——JDBC308
- 15.3轻量级数据库——SQLite308
- 15.3.1SQLite的准备工作308
- 15.3.2用Java连接SQLite310
- 15.3.3创建数据表312
- 15.3.4更新数据表313
- 15.3.5查询数据表318
- 15.4MySQL数据库319
- 15.4.1MySQL数据库的基本命令320
- 15.4.2在Java中使用MySQL数据库322
- 15.5综合实例—简易学生信息管理系统324
- 15.5.1基本数据结构324
- 15.5.2数据库操作有关工具类325
- 15.5.3主界面的构造328
- 15.5.4用于输入新数据的对话框实现331
- 15.6高手点拨333
- 15.7实战练习334
- 第16章JavaWeb初步
- 16.1JSP概述336
- 16.2JSP的运行环境336
- 16.2.1安装Tomcat336
- 16.2.2配置虚拟目录338
- 16.2.3编写第一个JSP程序340
- 16.2.4Tomcat执行流程341
- 16.3基础语法341
- 16.3.1显式注释与隐式注释341
- 16.3.2代码段342
- 16.3.3page指令344
- 16.3.4包含指令346
- 16.3.5跳转指令349
- 16.4内置对象350
- 16.4.1request对象351
- 16.4.2response对象354
- 16.5Servlet359
- 16.5.1Servlet简介359
- 16.5.2第一个Servlet程序360
- 16.6综合实例—简易通信地址管理系统363
- 16.6.1基本数据结构363
- 16.6.2连接数据库的工具类365
- 16.6.3构造Servlet类366
- 16.6.4构造JSP367
- 16.7高手点拨370
- 16.8实战练习370
- 第17章常用设计框架
- 17.1框架的内涵372
- 17.2Struts开发基础372
- 17.2.1Struts简介372
- 17.2.2MVC的基本概念373
- 17.2.3下载Struts2类库373
- 17.2.4从Struts2的角度理解MVC374
- 17.2.5第一个Struts2实例374
- 17.2.6运行测试strutsLoginDemo工程384
- 17.2.7小结384
- 17.3Spring快速上手385
- 17.3.1Spring基本知识385
- 17.3.2Spring开发准备385
- 17.3.3Spring框架配置386
- 17.3.4Spring开发实例388
- 17.4Hibernate入门393
- 17.4.1Hibernate开发基础393
- 17.4.2Hibernate开发准备393
- 17.4.3Hibernate开发实例395
- 17.5综合实例——基于SSH的订单系统404
- 17.5.1项目初始化404
- 17.5.2预模型层的开发405
- 17.5.3持久层的配置406
- 17.5.4业务层的开发和配置407
- 17.5.5DAO接口的定义和实现408
- 17.5.6业务层的配置409
- 17.5.7UI层的实现409
- 17.6高手点拨412
- 17.7实战练习412
- 第Ⅳ篇项目实战
- 第18章Java项目实战——中国象棋
- 18.1项目概述415
- 18.1.1功能描述415
- 18.1.2中国象棋简介415
- 18.1.3中国象棋棋盘415
- 18.1.4中国象棋棋子415
- 18.2总体设计416
- 18.3代码实现416
- 18.3.1引用类包及类的定义416
- 18.3.2图形用户界面模块417
- 18.3.3按钮的操作模块417
- 18.3.4棋子的操作模块417
- 18.3.5棋子的移动规则类模块418
- 18.3.6运行程序418
- 第19章JavaWeb项目实战——我的饭票网
- 19.1系统分析420
- 19.2系统设计420
- 19.3数据库设计420
- 19.3.1功能分析420
- 19.3.2基本表设计421
- 19.4用户注册模块设计424
- 19.4.1用户注册模块概述425
- 19.4.2与用户注册有关的数据库连接及操作类425
- 19.4.3用户注册界面设计428
- 19.4.4用户注册事件处理页面429
- 19.5用户登录模块设计430
- 19.5.1用户登录模块概述430
- 19.5.2与用户登录有关的数据库连接及操作类430
- 19.5.3用户登录界面设计431
- 19.5.4用户登录验证处理页面432
- 19.6用户主页面模块设计433
- 19.6.1用户主页面模块概述433
- 19.6.2与用户主页面有关的数据库连接及操作类433
- 19.6.3用户主页面界面设计435
- 19.7高手点拨436
- 19.8实战练习436
- (以下内容为电子书)
- 第20章Android编程基础
- 20.1Android简介438
- 20.1.1Android系统架构438
- 20.1.2Android应用开发特色438
- 20.2搭建开发环境438
- 20.2.1准备所需要的软件439
- 20.2.2搭建开发环境439
- 20.3创建第一个Android项目442
- 20.3.1创建HelloWorld项目442
- 20.3.2运行HelloWorld项目443
- 20.3.3解析第一个Android程序445
- 20.4详解基本布局447
- 20.4.1线性布局447
- 20.4.2相对布局451
- 20.4.3帧布局454
- 20.5常见控件的使用方法455
- 20.5.1TextView455
- 20.5.2EditText457
- 20.5.3Button458
- 20.5.4ImageView461
- 20.6Activity详细介绍462
- 20.6.1Activity的生命周期462
- 20.6.2Activity的状态462
- 20.6.3Activity的启动模式462
- 20.7综合实例——编写聊天界面463
- 20.7.1制作Nine-Patch图片464
- 20.7.2编写聊天界面465
- 20.8高手点拨470
- 20.9实战练习470
- 第21章大数据项目实战——Hadoop下的数据处理
- 21.1认识Hadoop472
- 21.2理解MapReduce编程范式473
- 21.3第一个Hadoop实例——WordCount代码详解473
- 21.3.1WordCount基本流程474
- 21.3.2WordCount代码详解475
- 21.3.3运行WordCount程序478
- 21.4面向K-Means聚类算法的Hadoop实践482
- 21.4.1K-Means聚类算法简介482
- 21.4.2基于MapReduce的K-Means算法实现484
- 21.4.3编写K-Means算法代码484
- 21.4.4在Hadoop集群运行KMeans项目506
- 21.5高手点拨510
- 21.6实战练习510
- 附录全分布式Hadoop集群的构建
- 安装CentOS7511
- 安装Java并配置环境变量512
- 安装Hadoop514
- 下载Hadoop包514
- 安装Hadoop的方法514
- Hadoop的运行模式514
- 本地模式(LocalModel)514
- 伪分布模式(Pseudo-DistributedModel)515
- 全分布模式(FullyDistributedModel)515
- Hadoop集群构建515
- 设置静态IP地址515
- 修改hosts文件517
- 安装和配置SSH服务517
- 安装SSH518
- SSH免密码登录518
- 虚拟机的配置文件同步520
- 全分布模式下配置Hadoop520
- 配置Hadoop环境变量520
- 配置hadoop-env.sh文件521
- 配置HDFS的主节点(core-site.xml文件)522
- 配置slaves文件523
- 配置yarn-site.xml文件524
- 配置mapred-site.xml文件525
- 验证全分布模式526
- 默认配置文件所在位置527
-
关闭Hadoop528