编程的本质是利用计算机为人们解决实际问题,这些问题可大可小,小的如加减乘除,大的如飞天登月,都离不开计算机指令的 操作。但是计算机在诞生之初并不如此智能,相反它只会几种简单的指令,跟牙牙学语的婴儿差不多,那么计算机又是怎样精通十八 般武艺的呢?虽然大家知道计算机程序由编程实现,但背后离不开两大基础学科的发展壮大,其中一个是数学,另一个是逻辑学。 数学是一切自然科学的基础,借助于数学已经发现的各种算法和定理,计算机才能通过四则运算实现各种科学计算,从而具备计算器 的演算功能。而逻辑学提供了科学检验的方法,根据存在的某种事实,经过判断去推理结果,使得计算机能够完成状态机的因果判定 。把计算器与状态机结合在一起,并利用编程技术进一步封装方法和结构,使之开展更复杂的业务操作,由此诞生了早期的软件程序 ,逐步发展成专业的软件开发领域。 依据编程规范的差异,程序开发又可划分为各类编程语言,从早的机器语言,到稍后的汇编语言,再到以C语言为代表的中级语言 ,继之以C++、Java为代表的高级语言,每种语言顺应时代要求各领风骚若干年。Java便是其中一个长盛不衰的语言,不仅老而且新 。说它老,是因为Java诞生于20世纪90年代,可谓来自20世纪的老古董;说它新,是因为它每半年就发布一个新版本,迭代之快令人 目不暇接。早在Java问世之时,它就提供了面向对象、跨平台运行等强大特性;自Java 8开始,它又增加了函数式编程、流式处理等 先进理念,一直站在编程领域的发展前沿。 原本Java语言的设计者打算让它涉猎三个开发方向,分别是:用于服务器的JavaEE、用于桌面程序的JavaSE、用于移动终端的JavaME 。经过二十余年的大浪淘沙,Java编程在企业服务器开发方向始终屹立不倒,它在国内的市场份额远超另外两个Web开发框架——PHP 和.NET。此外,Java作为安卓系统的主要开发语言,它在移动互联网时代更是大放异彩。一个拥有Java编程技能的求职者,既可投递 Web开发岗位,又能应聘App开发职位,就业渠道无疑拓宽了许多。 因此,在未来的相当长时期之内,Java编程都将是软件开发的主力军,而非像一些语言那样昙花一现。尽管时代热点此起彼伏,各路 豪强语言轮番登台,但多数语言缺乏庞大的产业基础,众人一窝蜂追逐的结果,必然导致学成之日即是失业之时。唯有Java历经数十 年的风风雨雨,至今仍保有国内大编程语言的宝座。况且Java拥有这些年沉淀下来的众多框架组件,早已筑造一条难以逾越的护 城河,加之各行各业推行“互联网+”的革新,长远来看,这场数字变革将持续开展,带动Java人才的需求居高不下。 本书是一本Java入门教程,可以帮助读者迅速上手Java基础编程。作为一本编程图书,本书将详细讲解Java语言的语法构成和编程技 巧,但并不局限于传统的Java编码说明,而是以软件工程的视角铺叙编程知识,从基本的数学公式到专门的求解算法,从多样的数据 结构到常见的设计模式,这些知识不仅适用于Java语言,也适用于其他编程语言。如此写作的目的是, 力图让读者掌握通用的编程技能,而非仅仅学会某个语言的编码,以后读者若去学习其他编程语言,只要具备通用的编程技能,即可 借此触类旁通、事半功倍。 全书共17章内容,可分为4大部分,其中第1~6章介绍Java的常见数据类型及开发,包括基本变量类型、数组类型、包装变量类型、 字符串类型以及日期时间类型;第7~11章介绍面向对象的开发过程,包括面向对象的三要素(封装、继承、多态)、面向对象的扩 展(嵌套、枚举、抽象、接口)、面向对象的应用(容器、泛型、文件IO)、面向对象的特殊处理(异常、反射、注解)以及基于面 向对象的函数式编程;第12~14章介绍Java语言的界面编程,包括AWT、Swing、JavaFX三大图形框架的编码运用;第15~17章介绍 Java编程的高级开发,包括多线程、网络通信和数据库操作,各章末尾着重描述打地鼠游戏、即时通信工具、诗歌管理系统三大实战 项目的软件设计及编码实现。 所谓零基础指的是Java零基础,不是数学零基础,读者在学习本书之前,应当至少掌握初中数学知识,像方程式、坐标系、勾股定理 、三角函数这些概念均需了解。所以,只要是正常接受九年义务教育的读者,均已具备学习本书的条件,并非只有计算机相关专业才 可学习Java编程。 本书所有代码都基于Java 11编写,且在IDEA上面编译和调试通过,读者在阅读本书时,若对书中的内容有疑问,可在笔者的博客 (https://blog.csdn.net/aqi00)上留言,或者关注笔者的微信公众号“老欧说安卓”,更快、更方便地阅读技术干货。至于本书 的源码,可访问笔者的GitHub主页获取,GitHub地址是https://github.com/aqi00/java。读者也可以扫描以下二维码获取本书 的源码、38节Java入门教学视频和PPT教学课件: 如果在下载过程中出现问题,请发送邮件至:booksoge@126.com获得帮助,邮件标题为“好好学Java:从零基础到项目实战”。 ,感谢王金柱编辑的热情指点,感谢出版社同仁的辛勤工作,感谢我的家人一年多来的默默支持,感谢各位师长的谆谆教导,没 有他们的鼎力相助,本书就无法顺利完成。 欧阳燊 2020年1月 |