简介
Java是Sun公司推出的能够跨越多平台的、可移植性最高的一种面向对象的编程语言,也是目前最先进、特征最丰富、功能最强大的计算机语言。利用Java可以编写桌面应用程序、Web应用程序、分布式系统应用程序、嵌入式系统应用程序等,从而使其成为应用最广泛的开发语言。
Java分为三个体系:
JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。
Java概述
1.什么是程序
什么是程序呢?事实上,"程序"一词源于生活,通常指完成某些事情的一种既定方式和过程。 下面看一看生活中到银行柜台"取钱"的程序,如图1.1所示。
银行"取钱"的步骤:
(1) 带上存折/银行卡到银行。
(2) 取号排队。
(3) 将存折或银行卡递给银行职员并告知取款数额。
(4) 输入取款密码。
(5) 银行职员办理取款事宜。
(6) 拿到钱,带上存折/银行卡。
(7) 离开银行。
简单地说,程序可以看做对一系列动作执行过程的描述。上图描述的是一个非常简单的程序,实际上该过程也可能变得很复杂。例如,轮到取款时发现带的是另一家银行的银行卡,就需要回家取卡,再次排队,这样就出现了重复性动作,步骤也会相应地增加。
那么,计算机程序到底是什么呢?计算机中的程序和曰常生活中的程序很相似。
曰常使用计算机时,就是利用计算机处理各种不同的问题。但是,计算机不会自己思考,它是人类手中的木偶,因此要明确告诉它做什么工作及需要几个步骤才能完成该工作。试想一下,计算机程序执行的整个过程是怎样的?它完成一件我们分配给它的任务,如"取钱",它会按照我们的命令去执行,我们说"立正",它不能"稍息",在我们的支配下完成预定工作。这里,人们所下达的每一个命令都称为指令,它对应着计算机执行的一个基本动作。计算机按照某种顺序完成一系列指令,这一系列指令的集合称为程序。
程序:
为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。
如何编制程序呢?这就需要一个工具,即编程语言。人类交流有自己的语言,那么人与计算机对话就要使用计算机语言,这样,人表达的想法、下达的指令计算机才能够明白。如何用语言表达指令呢?全世界各个国家都有自己的语言,因此要表达"谢谢",就能看到上百种表示方式,如中文----谢谢,英文----Thanks,德文-----Dankeschon。
同样地,计算机语言也有很多种,它们都有自己的语法规则,可以选用其中一种来描述程序,传达给计算机。例如,用Java语言描述的程序称为Java程序。计算机阅读该程序,也就是阅读指令集,然后按部就班地严格执行。通常来讲,编制程序时选用的语言是有利于人类读写的语言,俗称高级语言。但是计算机仅明白0和1代码组成的低级语言(即二进制形式的机器语言),中间需要进行语言转换。开发高级语言的工程师们已经为我们准备好了"翻译官",我们只要学好高级语言就可以。
2.为什么学习Java语言
Java是前Sun公司(现甲骨文股份有限公司)于1995年推出的高级编程语言,Java技术可以应用在几乎所有类型和规模的设备上,小到计算机芯片、蜂窝电话,大到超级计算机,无所不在。
Java的来历:Java的初期开发早在1991年就开始了。当时,在前Sun公司内,有一个称
为Green的项目,在James Gosling的带领下,这个项目的工程师受命设计一种小型的计算机语言,用于机顶盒、家电控制芯片等消费类设备。最初,这种新语言被命名为“Oak”(James Gosling办公室窗外的橡树名),但后来由于“Oak”这一名称已被占用,因此改名为“Java”。据说这是因为当时人们在想新名称的时候,正在品尝着一种来自印度尼西亚的爪哇小岛盛产的咖啡(这种咖啡也称为Java),于是就选用了 “Java” 一种咖啡的名称作为新语言的名称,所以Java语言的标志就是一杯热气腾腾的咖啡。Java语言的创始人James Gosling也被人们誉为 “Java语言之父”。
在当前的软件开发行业中,Java 已经成为绝对的主流,Java 领域的 Java SE 、 Java EE 技术已发展成为同 Microsoft公司的 C# 和 .NET 技术平分天下的应用软件开发技术和平台,其对应的图标如下图所示。因此,有人说掌握了 Java 语言就号准了软件开发的“主脉”。这些技术我们在后续的课程中都会陆续学到。
3 Java 可以做什么
Java 语言这么重要,它究竟能够做什么呢?在计算机软件应用领域中,可以把 Java 应用分为两种典型类型:一种是安装和运行在本机上的桌面程序,如政府和企业中常用的各种信息管理系统;另一种是通过浏览器访问的面向 Internet 的应用程序,如网上数码商城系统。
除此之外, Java 还能够做出非常炫的图像效果,图 1.8 和图 1.9 就是使用 Java 做出的 2D 和 3D立体效果的应用程序。
使用 Java 开发的 2D 效果的桌面应用程序
使用 Java 开发的 3D 立体效果 Internet 应用程序
1.1 Java 技术平台
如果人们提起 Java, 则可能有很多含义。因为 Java 的内涵非常丰富,它既可以指 Java 编程语言,又可以指与此相关的很多技术。随着学习的深入,大家会慢慢发现它的强大、丰富和吸引人之处。
为了对 Java 技术的使用方向和范围进行区分,避免在学习和使用过程中关注那些不必要的技术特性,前Sun公司对 Java 技术进行了市场划分。我们将学习应用最广泛的两种 Java 技术: Java SE和 Java EE 。
1. Java SE
Java SE (Java Platform Standard Edition, Java 平台标准版)是 Java 技术的核心,提供基础的 Java开发工具、执行环境与应用程序接口 (API), 主要用于桌面应用程序的开发。程序员就像一个厨师,刚开始是掂大勺,然后是练刀工,之后开始煎炒烹炸,最后才可以自己设计菜肴。 Java SE 就是教人们成为一名烹饪大师所需要掌握的基本功。
2. Java EE
Java EE (Java Platform Enterprise Edition, Java 平台企业版)主要用于网络程序和企业级应用的开发。需要强调的是,任何 Java 学习者都要从 Java SE 开始,Java SE 是 Java 语言的核心,而 Java EE是在 Java SE 的基础上扩展的。Java SE 提供了 Java 的执行环境,使开发出的应用程序能够在操作系统上运行,如图 1.10所示。就像上战场打仗一样, Java SE 是一把锋利无比的刀,Java EE 是排兵布阵的方法,程序员则在布好的阵中要拿着刀去杀敌。
也许大家还是不太理解,没有关系,随着学习的深入,将会慢慢了解并掌握这两种平台的内容及相关技术。本课程的内容都属于 Java SE 。
1.2开发第一个 Java 程序
在对 Java 有了初步的认识之后,大家一定已经迫不及待地想知道程序是怎么开发的。下面就来学习开发一个 Java 程序的步骤。
开发 Java 程序的步骤
编写源程序
通过前面的学习,大家已经了解到 Java 语言是一门高级程序语言,在明确了要计算机做的事情之后,把要下达的指令逐条使用 Java 语言描述出来,这就是编制程序。通常,人们称这个文件为源程序或者源代码,图中的 MyProgram.java 就是一个 Java 源程序。就像 Word 文档使用.doc 作为扩展名一样,Java 源程序文件使用 .java 作为扩展名。
编译
编译编译时就要用到前面提到的"翻译官"了,也就是通常所说的编译器。经过它的翻译,输出结果就是一个扩展名为 .class 的文件,称为字节码文件,如图中的 MyProgram.class 文件。
运行
在 Java 平台上运行生成的字节码文件,便可看到运行结果。
那么,到底什么是编译器,在哪里能看到程序的运行结果呢?前 Sun 公司提供的 JDK (Java Development Kit, Java 开发工具包)就能够实现编译和运行的功能。
安装 JDK
JDK 本身也在不断地修改、完善,并推出新的版本,这里使用 JDK 1.7 来开发 Java 程序,如图 1.12 所示,JDK 的安装目录为 C: \Program Files\Java\jdk1.7.0_51 。
你知道JDK1.7和1.8的区别吗?
JDK1.7
1.1二进制变量的表示,支持将整数类型用二进制来表示,用0b开头。
1.2 Switch语句支持String类型。
1.3 Try-with-resource语句:
ry-with-resources语句是一种声明了一种或多种资源的try语句。资源是指在程序用完了之后必须要关闭的对象。
try-with-resources语句保证了每个声明了的资源在语句结束的时候都会被关闭。任何实现了java.lang.AutoCloseable接口的对象,和实现了java.io.Closeable接口的对象,都可以当做资源使用。
1.4 Catch多个异常
1.5 数字类型的下划线表示 更友好的表示方式,不过要注意下划线添加的一些标准
1.6 泛型实例的创建可以通过类型推断来简化 可以去掉后面new部分的泛型类型,只用<>就可以了。
1.7在可变参数方法中传递非具体化参数,改进编译警告和错误
1.8 信息更丰富的回溯追踪 就是上面try中try语句和里面的语句同时抛出异常时,异常栈的信息等等
JDK1.8
java 1.8 是1.7的增强版,新增了以下特性
1、default关键字,在接口中可以通过使用default关键字编写方法体,实现类可以不用实现该方法,可以进行直接调用
2、Lambda 表达式,函数式编程,函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量
3、函数式接口,“函数式接口”是指仅仅只包含一个抽象方法的接口,每一个该类型的lambda表达式都会被匹配到这个抽象方法。jdk1.8提供了一个@FunctionalInterface注解来定义函数式接口,如果我们定义的接口不符合函数式的规范便会报错。
4、方法与构造函数引用,jdk1.8提供了另外一种调用方式::,当你需要使用方法引用时 , 目标引用放在分隔符::前 ,方法的名称放在后面。
5、局部变量限制
6、Date Api更新1.8之前JDK自带的日期处理类非常不方便,我们处理的时候经常是使用的第三方工具包,比如commons-lang包等。不过1.8出现之后这个改观了很多,比如日期时间的创建、比较、调整、格式化、时间间隔等。这些类都在java.time包下。比原来实用了很多。
7、流,流是Java API的新成员,它允许我们以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,我们可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理,也就是说我们不用写多线程代码了。
第一步:双击运行选中软件。
第二步:选择“下一步”按钮继续。
软件。点击“下一步”按钮继续。
第四步:JDK在安装中!过程稍微有点慢耐心等待
第五步:设置目标文件夹将文件安装的位置。
第六步:等待最后的安装过程。
第七步:安装成功!点击“关闭”即可!
下面是 JDK 中的重要目录或文件。
bin 目录:存放编译、运行 Java 程序的可执行文件。
> jre 目录:存放 Java 运行环境文件。
> lib 目录: 存放 Java 的类库文件。
> src.rar 文件:构成 Java 平台核心 API 的所有类的源文件。
配置环境变量
(1) 右击桌面上的 "此电脑" 图标。
(2) 从弹出的快捷菜单中选择 "属性" 选项,在弹出的 "属性" 对话框中选择 "高级系统设置" 选项卡。
(3) 单击 "环境变量" 按钮,弹出 "环境变量" 对话框。
(4) 在 "系统变量" 选项组中,编辑 path 变量。在 path 变量开始位置增加 E:\JDK8.0\bin,并上移至第一项就可以了。
有了 JDK 的支持,使用记事本就可以编写 Java 源程序。使用记事本开发 Java 程序的步骤如下。
首先,创建记事本程序,并以 .java 作为扩展名进行保存。例如,在 "I:\ "文件夹下创建 "HelioWorld.java" 文件。
随后,打开 HelloWorld.java 文件,并在其中编写 Java 代码,如示例 1 所示。
示例一
public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!!!"); } }
再次,在控制台使用 javac 命令对 .java 文件进行编译。例如,编译 HelloWorld.java 文
件后生成HelloWorld.class 文件
最后,在控制台使用 java 命令运行编译后生成的 .class 文件,就可以输出程序结果