第1章 初识Java
(视频讲解:18分钟)
Java是一种可以编写跨平台的、面向对象的程序设计语言。本章将向读者简单介绍Java语言和相关的特性、不同的版本以及学好Java语言的方法等。本章所需要掌握的内容,其主要目的是让读者对Java语言有一个整体的了解,然后再慢慢地学习具体内容,最后达到完全掌握Java语言的目的。
通过阅读本章,您可以:
了解Java语言的历史
了解Java语言的现状
了解Java语言的面向对象特性
掌握不同平台的JDK环境搭建
掌握Java程序的编写方法
1.1 Java语言概述
视频讲解:光盘\TM\lx\1\Java语言概述.mp4
1.1.1 Java语言的历史
Java语言是Sun公司于1990年开发的,当时Green项目小组的研究人员正在致力于为未来的智能设备开发一种新的编程语言。由于该小组的成员James Gosling对C++语言在执行过程中的表现非常不满,就把自己封闭在办公室里编写了一种新的语言,并将其命名为Oak(Oak就是Java语言的前身),这个名字源于Gosling办公室窗外的一棵橡树(Oak)。此时的Oak已经具备安全性、网络通信、面向对象、多线程等特性,是一款相当优秀的程序语言。后来,在注册Oak商标时,发现它已经被另一家公司注册,所以不得不改名。要取什么名字呢?工程师们边喝咖啡边讨论着,看看手上的咖啡,联想到印度尼西亚有一个盛产咖啡的岛屿(中文名叫爪哇),于是将其改名为Java。
随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。1994年,Gosling用Java语言开发了一个实时性较高、可靠、安全、有交互功能的新型Web浏览器,它不依赖于任何硬件平台和软件平台。该浏览器被命名为HotJava,并于1995年在业界发表,引起了巨大的轰动,Java语言的地位随之得到了肯定。1995年5月23日,JDK(Java Development Kit)1.0a2版本正式对外发布。此后,Java语言的发展异常迅速。2009年4月20日,Sun公司被Oracle公司收购。
1.1.2 Java语言的现状
借助Java,程序开发人员可以自由地使用现有的硬件和软件系统平台。由于Java是独立于平台的,它还可以应用于计算机之外的领域。Java程序可以在便携式计算机、电视、电话、手机和其他设备上运行。Java的用途数不胜数,它拥有无可比拟的能力,使用它所节省的时间和费用十分可观。
如果仔细观察就会发现,Java就在我们身边。使用Java语言编写的常见开源软件包括NetBeans和Eclipse集成开发环境、JBoss和GlassFish应用服务器;商业软件包括永中Office、合金战士Chrome、Websphere和Oracle Database 11g。此外,各手机厂商都为自己的产品提供了Java技术的支持,手机上的Java程序和游戏已经不胜枚举。
为了满足不同开发人员的需求,Java开发分成了以下3个方向。
Java SE:主要用于桌面程序的开发。它是学习Java EE和Java ME的基础,也是本书的重点内容。
Java EE:主要用于网页程序的开发。随着互联网的发展,越来越多的企业使用Java语言来开发自己的官方网站,其中不乏一些世界500强的企业。
Java ME:主要用于嵌入式系统程序的开发。
1.1.3 Java语言的面向对象特性
Java语言的作者们编写了具有广泛影响的Java白皮书,里面详细介绍了他们的设计目标以及实现成果。此外,还用简短的篇幅介绍了Java语言的特性。下面将对其进行简要介绍。
1.简单
Java语言的语法简单明了,容易掌握,而且是纯面向对象的语言。Java语言的简单性主要体现在以下几点:
语法规则和C++类似。从某种意义上讲,Java语言是由C和C++语言转变而来,所以C程序设计人员可以很容易地掌握Java语言的语法。
Java语言对C++进行了简化和提高。例如,Java使用接口取代了多重继承,并取消了指针,因为指针和多重继承通常使程序变得复杂。Java语言还通过实现垃圾自动收集,大大简化了程序设计人员的资源释放管理工作。
Java提供了丰富的类库和API文档以及第三方开发包,另外,还有大量的基于Java的开源项目,现在JDK也开放源代码了,读者可以通过分析项目的源代码,提高自己的编程水平。
2.面向对象
Java语言本身是一种面向对象的程序设计语言。Java提倡万物皆对象,语法中不能在类外面定义单独的变量和方法,也就是说,Java语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。
3.分布性
Java的分布性包括操作分布和数据分布,其中操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别存放在多个不同的主机上,这些主机是网络中的不同成员。Java可以凭借URL对象访问网络对象,访问方式与访问本地系统相同。
4.可移植性
Java程序具有与体系结构无关的特性,从而使Java程序可以方便地移植到网络的不同计算机中。同时,Java的类库中也实现了针对不同平台的接口,使这些类库也可以移植。
5.解释性
运行Java程序需要解释器。任何移植了Java解释器的计算机或其他设备都可以用Java字节码进行解释执行。字节码独立于平台,它本身携带了许多编译信息,使得连接过程更加简单,开发过程也就更加迅速,更具探索性。
6.安全性
Java语言删除了类似C语言中的指针和内存释放等语法,从而有效地避免了非法操作内存。Java程序代码要经过代码校验、指针校验等很多的测试步骤才能够运行,所以未经允许的Java程序不可能出现损害系统平台的行为,而且使用Java可以编写防病毒和防修改的系统。
7.健壮性
Java的设计目标之一是编写多方面可靠的应用程序,Java将检查程序在编译和运行时的错误,以及消除错误。类型检查能帮助用户检查出许多在开发早期出现的错误。同时,很多集成开发工具IDE(如Eclipse、NetBeans)的出现使编译和运行Java程序更加容易。
8.多线程
多线程机制能够使应用程序在同一时间并行执行多项任务,而且相应的同步机制可以保证不同线程能够正确地共享数据。使用多线程,可以带来更好的交互能力和实时行为。
9.高性能
Java编译后的字节码是在解释器中运行的,所以它的速度比多数交互式应用程序提高了很多。另外,字节码可以在程序运行时被翻译成特定平台的机器指令,从而进一步提高运行速度。
10.动态
Java在很多方面比C和C++更能够适应发展的环境,可以动态调整库中方法和变量的增加,而客户端却不需要作任何更改。在Java中,动态调整是非常简单、直接的。
1.2 搭建Java环境
视频讲解:光盘\TM\lx\1\JDK的下载与安装.mp4
在学习Java语言之前,必须了解并搭建好它所需要的开发环境。要编译和执行Java程序,JDK(Java Developers Kits)是必备的。下面将具体介绍下载并安装JDK和配置环境变量的方法。
1.2.1 JDK下载
Java的JDK又称Java SE,是Sun公司的产品。由于Sun公司已经被Oracle收购,因此JDK可以在Oracle公司的官方网站http://www.oracle.com/index.html下载。
下面以JDK8为例介绍下载JDK的方法,具体步骤如下。
(1)打开IE浏览器,输入网址http://www.oracle.com/index.html,打开Oracle官方主页。将光标移动到Downloads菜单项上,将显示下载列表,单击Java SE超链接,如图1.1所示。
图1.1 Oracle主页
(2)在JDK的下载页面中单击JDK的下载按钮,即如图1.2所示的Download按钮。
图1.2 JDK的下载页
(3)在JDK的下载列表中,首先选中Accept License Agreement单选按钮,如果不选中此单选按钮,单击要下载的超链接时将不能进行下载。然后根据操作系统的位数选择适当版本的JDK进行下载。如果是64位的Windows操作系统,那么需要下载jdk-8u112-windows-x64.exe文件,直接单击该文件的超链接即可,如图1.3所示。在撰写本书时,最新的JDK版本为JDK 8u112。② 单击超链接,下载系统对应版本,此处以Windows 64位系统为例
图1.3 JDK的下载列表
说明
这里下载的JDK版本是笔者写作本书时的最新版本,由于JDK的版本更新比较快,因此,如果您在使用本书时没有JDK 8u112版本,可以直接下载JDK的最新版本。
1.2.2 JDK安装
下载Windows平台的JDK安装文件jdk-8u112-windows- x64.exe后即可进行安装,具体步骤如下:
(1)双击已下载的安装文件,将弹出欢迎对话框,单击“下一步”按钮,如图1.4所示。
图1.4 欢迎对话框
(2)在弹出的对话框中,可以选择需安装的功能组件,这里选择默认设置,如图1.5所示。
图1.5 自定义安装对话框
(3)单击“下一步”按钮,使用默认的安装路径C:\Program Files\Java\jdk1.8.0_112\。
(4)单击“下一步”按钮,开始安装JDK。在安装过程中会弹出JRE的“目标文件夹”对话框,使用JRE默认的安装路径即可,如图1.6所示。
图1.6 JDK默认的安装路径对话框
(5)安装完成后,将弹出如图1.7所示的对话框,单击“关闭”按钮即可。
图1.7 “完成”对话框
注意
在安装JDK时,不要同时运行其他的安装程序,以免出现冲突。
1.2.3 配置JDK
安装完JDK之后,必须配置环境变量方可使用Java环境。在Windows操作系统中,主要配置3个环境变量,分别是JAVA_HOME、Path和CLASSPATH。其中JAVA_HOME用来指定JDK的安装路径;Path用来使系统能够在任何路径下都可以识别Java命令;CLASSPATH用来加载Java类库的路径。在Windows 7系统中配置环境变量的步骤如下。
(1)在“计算机”图标上单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,在弹出的“属性”对话框左侧单击“高级系统设置”超链接,将打开如图1.8所示的“系统属性”对话框。
图1.8 “系统属性”对话框
(2)单击“环境变量”按钮,将弹出“环境变量”对话框,如图1.9所示,单击“系统变量”栏下的“新建”按钮,创建新的系统变量。
图1.9 “环境变量”对话框
(3)弹出“新建系统变量”对话框,分别输入变量名“JAVA_HOME”和变量值(即JDK的安装路径),其中变量值是笔者的JDK安装路径,读者需要根据自己的计算机环境进行修改,如图1.10所示。单击“确定”按钮,关闭“新建系统变量”对话框。
图1.10 “新建系统变量”对话框
(4)在图1.9所示的“环境变量”对话框中双击Path变量,对其进行修改。将原变量值最前面的“C:\ProgramData\Oracle\Java\javapath; ”删除,并输入“%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin; ”(注意,最后的“; ”不要丢掉,它用于分割不同的变量值),如图1.11所示。单击“确定”按钮完成环境变量的设置。
图1.11 设置Path环境变量值
(5)在图1.9所示的“环境变量”对话框中,单击“系统变量”栏下的“新建”按钮,新建一个CLASSPATH变量,变量值为“.; %JAVA_HOME%\lib; %JAVA_HOME%\lib\tools.jar; ”,如图1.12所示。
图1.12 设置CLASSPATH变量
说明
在Windows系统中,环境变量需要使用英文的分号进行分隔;在Linux系统中,环境变量需要使用英文的冒号进行分隔。要注意全角和半角的区别。
1.2.4 测试开发环境
JDK配置完成后,需确认是否配置准确。在Windows系统中测试JDK环境需要选择“开始”/“运行”命令(没有“运行”命令可以按Windows+R组合键),然后在“运行”对话框中输入“cmd”并单击“确定”按钮启动控制台。在控制台中输入javac命令,按Enter键,将输出如图1.13所示的JDK的编译器信息,其中包括修改命令的语法和参数选项等信息。这说明JDK环境搭建成功。
图1.13 JDK的编译器信息
1.3 第一个Java程序
视频讲解:光盘\TM\lx\1\第一个Java程序.mp4
在完成JDK的下载和安装后,就可以开始编写Java程序了。下面将编写第一个Java程序,其用途是在DOS控制台上显示“我能学好Java语言!”。通过本节内容,读者可以学习开发Java程序的流程。
1.编写源代码
使用Java编程的第一步是编写源代码,这里需要使用到文本编辑器。目前有各种各样的文本编辑器,如“记事本”工具、Office等。这里使用Windows系统自带的“记事本”工具。选择“开始”/“所有程序”/“附件”/“记事本”命令,然后输入如下内容:
public class MyApp { public static void main(String[] args) { System.out.println("我能学好Java语言!"); } }
按Ctrl+S组合键保存源代码,弹出如图1.14所示的窗口。
图1.14 保存窗口
将文件保存到D盘,文件名使用MyApp.java。
注意
默认“记事本”软件会为文件增加扩展名.txt,而Java程序的源代码扩展名要使用.java。所以在修改文件名时需要使用双引号将文件名括起来,这样就不会增加新的扩展名。
说明
文件名需要与源代码中公共类的名字相同,这里公共类是MyApp,因此文件名也是MyApp。
注意
Java语言是区分大小写的,因此文件名必须是MyApp,而不能是Myapp,或者其他。
2.编译源代码
选择“开始”/“所有程序”/“附件”/“命令提示符”命令,将路径切换到D盘,并使用dir命令查看D盘中的文件,其运行效果如图1.15所示。
图1.15 编译前的D盘文件列表
接着运行javac MyApp.java命令,然后使用dir命令查看D盘中的文件,其运行效果如图1.16所示。
图1.16 编译后的D盘文件列表
读者可以发现,在D盘中出现了一个名为MyApp、类型为class的文件。
说明
javac是JDK中提供的编译源代码的命令,由于已经配置了环境变量,因此可以直接使用。
注意
javac命令和MyApp.java之间存在一个空格。
3.运行class文件
输入“java MyApp”来运行class文件,其运行效果如图1.17所示。
图1.17 运行class文件后的窗体
读者可以看到,在DOS控制台上输出了“我能学好Java语言!”。
注意
使用java命令时,不需要输入文件的扩展名。而使用javac命令时,需要输入文件的扩展名。
1.4 本章小结
本章首先简单介绍了Java语言的历史、现状及各种特性,接着介绍了JDK的安装和配置,这是进行Java程序开发的第一步,也是本章的重点。最后介绍了如何开发第一个Java应用程序,读者可以从中学习到Java开发的一般流程,分别是编写源代码、编译源代码和运行class文件。