本书是一部Java基础开发教程,使用Java 11 版本,以IntelliJ IDEA为开发环境,从软件工程的视角讲解Java编程的各种知识,由浅入深,由理论到实战,带领读者走进Java编程的广袤世界。全书共分为17章。其中第1~6章介绍Java的常见数据类型及开发,包括基本变量类型、数组类型、包装变量类型、字符串类型以及日期时间类型;第7~11章介绍面向对象的开发过程,包括面向对象的三要素(封装、继承、多态)、面向对象的扩展(嵌套、枚举、抽象、接口)、面向对象的应用(容器、泛型、文件IO)、面向对象的特殊处理(异常、反射、注解)以及基于面向对象的函数式编程;第12~14章介绍Java语言的界面编程,包括AWT、Swing、JavaFX三大图形框架的编码运用;第15~17章介绍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编程的高级开发,包括多线程、网络通信和数据库操作,各章末尾着重描述了打地鼠游戏、即时通信工具、诗歌管理系统三大实战项目的软件设计及其编码实现。
编程的本质是利用计算机为人们解决实际问题,这些问题可大可小,小的如加减乘除,大的如飞天登月,都离不开计算机指令的精确操作。但是计算机在诞生之初并不如此智能,相反它只会几种简单的指令,跟牙牙学语的婴儿差不多,那么计算机又是怎样精通十八般武艺的呢?虽然大家知道计算机程序由编程实现,但背后离不开两大基础学科的发展壮大,其中一个是数学,另一个是逻辑学。
数学是一切自然科学的基础,借助于数学已经发现的各种算法和定理,计算机才能通过四则运算实现各种科学计算,从而具备计算器的演算功能。而逻辑学提供了科学检验的方法,根据存在的某种事实,经过判断去推理结果,使得计算机能够完成状态机的因果判定。把计算器与状态机结合在一起,并利用编程技术进一步封装方法和结构,使之开展更复杂的业务操作,由此诞生了早期的软件程序,逐步发展成专业的软件开发领域。
依据编程规范的差异,程序开发又可划分为各类编程语言,从最早的机器语言,到稍后的汇编语言,再到以C语言为代表的中级语言,继之以C++、Java为代表的高级语言,每种语言顺应时代要求各领风骚若干年。Java便是其中一个长盛不衰的语言,不仅老而且新。说它老,是因为Java诞生于20世纪90年代,可谓来自20世纪的老古董;说它新,是因为它每半年就发布一个新版本,迭代之快令人目不暇接。早在Java问世之时,它就提供了面向对象、跨平台运行等强大特性;自Java8开始,它又增加了函数式编程、流式处理等先进理念,一直站在编程领域的发展前沿。
原本Java语言的设计者打算让它涉猎三个开发方向,分别是:用于服务器的JavaEE、用于桌面程序的JavaSE、用于移动终端的JavaME。经过二十余年的大浪淘沙,Java编程在企业服务器开发方向始终屹立不倒,它在国内的市场份额远超另外两个Web开发框架-PHP和.NET。此外,Java作为安卓系统的主要开发语言,它在移动互联网时代更是大放异彩。一个拥有Java编程技能的求职者,既可投递Web开发岗位,又能应聘App开发职位,就业渠道无疑拓宽了许多。
因此,在未来的相当长时期之内,Java编程都将是软件开发的主力军,而非像一些语言那样昙花一现。尽管时代热点此起彼伏,各路豪强语言轮番登台,但多数语言缺乏庞大的产业基础,众人一窝蜂追逐的结果,必然导致学成之日即是失业之时。唯有Java历经数十年的风风雨雨,至今仍保有国内第一大编程语言的宝座。况且Java拥有这些年沉淀下来的众多框架组件,旱己筑造一条难以逾越的护城河,加之各行各业推行“互联网+”的革新,长远来看,这场数字变革将持续开展,带动Java人才的需求居高不下。
第1章 Java开发环境搭建
1.1 JDK的安装和配置
1.1.1 Java的发展历程
1.1.2 下载和安装JDK
1.1.3 配置环境变量
1.2 IntelliJIDEA的安装与配置
1.2.1 安装IntelliJIDEA
1.2.2 配置IntelliJIDEA
1.2.3 运行第一个Java程序
1.3 Java虚拟机(JVM)
1.3.1 Java程序的运行机制
1.3.2 JVM的体系结构
1.3.3 JVM、JRE与JDK的区别
1.4 Java编程的基本概念
1.4.1 Java的代码结构
1.4.2 Java的特殊官吏
1.4.3 Java的度量衡
1.5 小结
第2章 数学运算
2.1 数值变量
2.1.1 数值变量的类型
2.1.2 特殊数字的表达
2.1.3 强制类型转换
2.2 算术运算
2.2.1 四则运算符
2.2.2 赋值运算符
2.2.3 一元运算符
2.3 数学函数
2.3.1 取整函数
2.3.2 取随机数
2.3.3 科学计算函数
2.3.4 三角函数
2.4 实战练习
2.4.1 利用牛顿迭代法求平方根
2.4.2 利用割圆术求解圆周率
2.5 小结
第3章 逻辑控制
3.1 逻辑运算
3.1.1 布尔类型及其运算
3.1.2 关系运算符
3.1.3 运算符的优先级顺序
3.1.4 按位逻辑与短路逻辑
3.2 控制语句
3.2.1 条件分支
3.2.2 多路分支
3.2.3 while循环
3.2.4 for循环
3.3 数组
3.3.1 一维数组
3.3.2 二维数组
3.3.3 冒号的几种用法
3.3.4 数组工具Arrays
3.4 实战练习
3.4.1 求解“鸡兔同笼”问题
3.4.2 求解“韩信点兵”问题
3.4.3 利用二分查找法定位数组元素
3.5 小结
第4章 方法与包装
4.1 方法定义
4.1.1 方法的组成形式
4.1.2 方法的输入参数
4.1.3 方法的输出参数
4.2 基本类型包装
4.2.1 数值类型包装
4.2.2 包装变量的运算
4.2.3 布尔类型包装
4.3 大数字类型
4.3.1 大整数Big Integer
4.3.2 大小数Big Decimal
4.4 实战练习
4.4.1 通过方法递归实现阶乘函数
4.4.2 利用牛顿迭代法求大数开方
4.4.3 利用大数字求更精确的圆周率
4.5 小结
……
第5章 字符串与正则表达式
第6章 日期时间
第7章 类的三要素
第8章 特殊的类
第9章 容器与泛型
第10章 类的进阶用法
第11章 文件I/O处理
第12章 AWT界面编程
第13章 Swing界面编程
第14章 JavaFX界面编程
第15章 多线程
第16章 网络通信
第17章 数据库操作
附录