
写在前面的话
我们在用心做事,做最好的教育,写最好的图书。
魔乐科技软件学院教学部(MLDN)——李兴华
从2008年编写第一本书开始,我的写作生涯已经持续了10年。在这10年中我始终坚持“原创图书”的创作理念,用心设计并尽力编写好每一本书,目的是希望每一位读者都能够通过我出的图书学习到有用的技术知识,通过学习使自己不断进步,从而获取更大的人生成就。
到目前为止,Java推出已经24年了。有幸的是,我从它发展的第5年开始进入这一开发阵营,并一直坚持到今天,在这期间我见证了Java编程从最早的默默无闻,到逐渐成长为行业主流,现在更是被广大互联网开发公司竞相使用。由于技术的不断进步,最初的Java语言和现在的Java语言也发生了翻天覆地的变化,如何将这些新的设计理念传播给所有的技术爱好者,我相信只有那些具有灵魂与开发思想的原创图书才可以做到。但是技术学习大多比较晦涩,只依靠简单的图形与文字未必能解释详细,所以我在设计图书时又配备了详细的视频资料,并且有效地利用了微信小程序与魔乐科技在线学习平台(www.mldn.cn)的技术优势为读者提供移动学习的环境,这一切的目的只有一个:写一本真正让所有技术爱好者都能学会的技术图书,把Java这门技术讲清楚、讲透彻。
经常会有读者问我:现在这么多流行的编程语言,应该选择哪一种?实质上这个问题与开发者从事的行业背景有关,如果你要实现的是高性能的并发访问程序,那么只有Java可以实现;如果你需要实现的是一个大数据分析,那么Python会更加适合你;如果你只是进行普通的Web开发,那么Node.JS又成为首选。每一种编程语言都有着自己擅长或不擅长的部分,Java的优势在于处理性能高,但是其劣势也很明显:学习时间长,复杂度较高,初学者入门不易。然而一旦开启了Java编程生涯,你会发现许多技术都可以轻松学会,因为Java在整体设计中提倡的是设计思想与软件架构,当你已经掌握了如此复杂的技术,那么其他的技术学习也就相对容易了许多。为了方便读者对Java的整体学习有一个完善的了解,本书给出了图0-1所示的Java学习路线图,而详细的课程内容可以直接登录魔乐科技软件学院获取,登录地址为www.mldn.cn。
编程技术学习非一朝一夕之功,它需要读者静下心来用心体会每一项技术的优缺点、每一个设计模式以及每一个类设计的意义与底层实现机制。所以在整本书编写过程中,不仅讲解了Java语言的各项技术特点,同时也针对一些重点内容进行了源代码与算法实现分析,而之所以采用这样的形式,除了帮助读者更好地理解Java底层设计之外,也是为了帮助读者提高面试的成功率。从本人15年的培训经验来看,现在的软件企业在进行人员招聘时都会针对Java底层源代码的实现提出大量的问题,如果你现在正面临着同样的问题,那么本书将是你最得力的助手。
本书综合讲解Java程序设计中的核心技术,全书一共设计为22章(如图0-2所示),章节结构如下。
Java编程基础(第1~4章):走进Java的世界、程序基础概念、程序逻辑控制、方法。
Java面向对象编程(第5~12章):类与对象、数组、String类、继承、抽象类与接口、类结构
扩展、异常的捕获与处理、内部类。

图0-1 Java开发体系结构
Java应用编程(第13~20章):Eclipse开发工具、多线程编程、常用类库、I/O编程、反射机制、类集框架、网络编程、数据库编程。
Java底层编程(第21~22章):JUC并发编程、NIO编程。

图0-2 全书结构
本书针对前3个部分提供全部的免费学习视频,读者可以直接通过每一章开始部分的二维码扫描学习,而对于本书的JUC并发编程、NIO编程等属于收费视频部分,同时考虑到篇幅问题,本书并没有加入“深入Java虚拟机”和“业务设计分析”等收费课程内容,需要深入学习的读者可以登录www.yootk.com后搜索课程名称购买。
在此,我要特别介绍一下魔乐科技软件学院(www.mldn.cn,以下简称为MLDN)的情况。我们从2006年开始依据自己的教育理念创办了MLDN,最初的原动力在于:希望将一些有用的开发技术教授给学生,同时也为技术培训的行业做一个课程标杆,所以我们始终都在关注新技术的发展,不断地完善并升级课程体系,为我们的学员带来实用的技术内容,降低学习成本。在这些年里我们不仅保持着精品的面授培训课程,同时推出了“极限IT工程师”与“极限IT架构师”两套在线培训课程体系,不仅满足于技术开发要求,同时我们也提供持续的课程升级服务。
我喜欢研究技术,也喜欢分享技术,我用上一个10年创作了许多自己的技术资料,这些技术资料有的经过加工进行了出版,有些未加工的资料则在www.mldn.cn平台上公布,在未来的日子里,我会编写更多的原创图书,也会不断地去为技术爱好者分享更多的技术内容,具体请在“本书资源获取及交流方式”中关注笔者的微博。
本书主要章节由李兴华编写,其他具体参与编写的人员有李淑芬、汤佳敏、郑建文、郭鸿喜、姜成芝、柯兆杨、李晓惠、吴桂兰、刘刚、庞猛、师铂弘、刘晟、李志兰、贾宁、赵晓彤、刘倩、赵金发、李杰、刘惠民、庞明生、刘洁民、范玉明、田清圆、孟庆元、芦维晶、王思博、王茜、宋文竹、王和贵、冯宗嘉、胡金凤,在此对他们的认真付出表示感谢。
最后我需要特别感谢我的家庭成员对我的爱与支持,在创作的过程中感谢他们为我安排好了生活的一切,才使得我可以安心创作,我也衷心地希望我儿子可以健康快乐的长大成人,希望他长大后也喜欢程序设计,读我写的书。
本书资源获取及交流方式
(1)读者可手机扫描并关注下面的“人人都是程序猿”微信公众号,输入本书书名发送到公众号后台获取资源下载链接,然后将该链接复制到计算机浏览器的地址栏中,根据提示下载即可。下载完成后即可在计算机中使用所有资源。

(2)可加入QQ群:689440600(请注意加群时的提示,根据提示加入对应的群),与笔者及广大技术爱好者在线交流学习。
(3)如果你在阅读中发现问题,也欢迎来信指教,来信请发:“784420216@qq.com”,笔者看到后将尽快给你回复。
(4)读者也可以扫描下面的微博二维码,关注笔者的技术心得、教学总结和最新动态,在微博上与笔者进行交流。

最后,祝您学习顺利!
李兴华
魔乐科技软件学院教学部