1、本章学习目标:熟悉Java语言的产生、特点以及编写规范 掌握Java开发环境和开发工具的使用 掌握编写简单的Java程序 掌握创建、编译和运行Java程序的基本步骤第一章第一章 JavaJava概述概述第第1 1节节partJava简介 Java是一种可用于编写跨平台应用软件的面向对象程序设计语言,也是Java SE(标准版)、Java EE(企业版)和Java ME(微型版)三种平台的总称。由于Java具有“一次编写,多处应用(Write Once,Run Anywhere)”的特点,使其广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等不同的媒介。Java具有卓越
2、的通用性、高效性、平台移植性和安全性,为其赢得了大量的爱好者和专业社群组织。J a v a 简 介本节概述 Java自1995诞生,至今已经20多年的历史。Java的名字来源于印度尼西亚爪哇岛的英文名称。该地因盛产咖啡而闻名,因此,JAVA的图标也正是一杯正冒着热气的咖啡,如图1.1所示。Java来自于Sun公司的一个“绿色项目(Green Project)”,其原先的目的是为家用消费电子产品开发一个分布式代码系统,目标是把E-mail发给电冰箱、电视机等家用电器,对这些电器进行控制以及信息交流。詹姆斯高斯林(James Gosling)加入到该项目小组。开始,项目小组准备采用C+,但C+太复
3、杂,安全性差,最后高斯林用C+开发了一种新的语言Oak(橡树),这就是Java的前身,在1994年Oak被正式更名为Java。1.1.1J a v a 起 源Java起源 詹姆斯高斯林(James Gosling)也被人们亲切的称为Java之父,如图1.2所示。从1995年Java诞生以来,Java先后经历了8个版本的变更,当然版权的所有者也一度由Sun变为Oracle。如表1-1所示为Java发展过程中几个重要的里程碑。1.1.2Java发展史Java发展史表1-1 Java发展史Java语言之所以受到广大编程爱好者的青睐,是因为Java有着以下几方面的语言优势。1.1.3Java的特点Ja
4、va的特点 资源开源性 跨平台性 健壮、安全性 高性能性 简单性 面向对象 动态性 多线程 支持分布式网络应用第第2 2节节partJava体系(Java Enterprise Edition,Java企业版)Java EE是企业级解决方案,支持开发、部署和管理等相关复杂问题的体系结构,主要用于分布式系统的开发、构建企业级的服务器应用,例如,电子商务网站、ERP系统等。Java EE在SE基础上定义了一系列的服务、API和协议等,如Servlet、JSP、RMI、EJB、Java Mail、JTA等。Java EE(Java Micro Edition,Java微型版)Java ME是各版本中
5、最小的,是在SE基础上进行裁剪和高度优化,目的是在小型的受限设备上开发和部署应用程序,例如,手机、PDA、智能卡、机顶盒、汽车导航或家电系统等。Java ME遵循微型开发规范和技术,如MIDLet、CLDC、Personal Profile等。Java ME1.2.1Java应用平台(Java Standard Edition,Java标准版)Java SE是Java技术的基础,适用于桌面系统应用程序(Application)、网页小程序(Applet)以及服务器程序的开发。Java SE主要包括Java语言核心技术和应用,如数据库访问、I/O、网络编程、多线程等。Java SE 1999年,
6、在美国旧金山的Java One大会上,Sun公司公布了Java体系架构,该架构根据不同级别的应用开发划分了三个版本:Java应用平台1.2.1Java应用平台Java应用平台 JDK(Java Development Kit,Java开发工具包)是Sun公司提供的一套用于开发Java程序的开发工具包。JDK提供编译、运行Java程序所需要的各种工具及资源,包括Java开发工具,Java运行时环境,以及Java的基础类库。1、JDK JRE(Java Runtime Environment,Java运行时环境)是运行Java程序所依赖的环境的集合,包括类加载器、字节码校验器、Java虚拟机、Ja
7、va API。JRE已包含在JDK中,但是如果仅仅是为了运行Java程序,而不是从事Java开发,可以直接下载安装JRE。2、JRE SDK(Software Development Kit,开发工具包)在版本1.2到1.4时,被称为Java SDK,在某些场合下,还可以看到执行过时的术语。4、SDK JVM(Java Virtual Machine,Java虚拟机)是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,只需将Java语言程
8、序编译成在Java虚拟机上运行的目标代码(.class,字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。3、JVM1.2.2专 有 名 词专有名词1.2.3Java跨平台原理 JVM在具体的操作系统之上运行,其本身具有一套虚拟指令,但它通常是在软件上而不是在硬件上实现。JVM形成一个抽象层,将底层硬件平台、操作系统与编译过的代码联系起来。Java字节码的格式通用,具有跨平台特性,但这种跨平台建立在JVM虚拟机的基础之上,只有通过JVM处理后才可以将字节码转换为特定机器上的机器码,然后在特定的机器上运行。JVM跨平台
9、特性如图1.5所示:Java跨平台原理1.2.3Java跨平台原理 JVM虚拟机是Java程序具有“一次编译,多处应用”的特性,如图1.6所示。首先,Java编译器将Java源程序编译成Java字节码;其次,字节码在本地或通过网络传达给JVM虚拟机;再次,JVM对字节码进行即时编译或解释执行后形成二进制的机器码;最后,生成的机器码可以在硬件设备上直接运行。JVM执行时将在其内部创建一个运行时环境,每次读取并执行一条Java语句会经过三个过程:装载代码、校验代码和执行代码,如图1.7所示。1.2.3Java跨平台原理JavaJava字节码有两种执行方式:字节码有两种执行方式:解释执行方式。JVM
10、通过解释器将字节码逐条读入,逐条解释翻译成对应的机器指令。很显然,这种执行方式虽灵活但执行速度会比较慢。为了提高执行速度,引入了JIT(Just-in-time compilation)技术。即时编译方式(即JIT编译)。当JIT编译启用时(默认是启用的),JVM将解释后的字节码文件发给JIT编译器,JIT编译器将字节码编译成机器代码,并把编译过的机器码保存起来,已备下次使用。为了加快执行速度,JIT目前只对经常使用的热代码进行编译。通常采用的是解释执行方式,由于JVM规格描述具有足够的灵活性,使得将字节码翻译为机器代码的工作具有较高的效率。对于那些对运行速度要求较高的应用程序,解释器可将Ja
11、va字节码即时编译为机器码,从而很好地保证了Java代码的可移植性和高性能。第第3 3节节partJDK工具 “工欲善其事,必先利其器。”在开发的第一步,必须搭建起开发环境。本书以Java SE Development Kit 8在Windows操作系统的下载、安装作为范例,讲解整个Java开发环境的安装及配置过程。JDK工具本节概述1.3.1J D K 介 绍 JDK(Java Development Kit)是Sun Microsystems公司针对Java开发人员发布的免费软件开发工具包。JDK是整个Java的核心,是学好Java的第一步,如果没有JDK,则无法安装或者运行Eclipse
12、。普通用户并不需要安装JDK来运行Java程序,而只需要安装JRE(Java Runtime Environment),而程序开发者必须安装JDK来编译、调试程序。从Sun公司的JDK 5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高,其环境变量也可以不需要手动配置。JDK介绍Java虚拟机可以运行在各种操作系统平台上,负责解析和执行Java程序。Java运行环境提供了最基础的Java类以及各种实用类。如java.lang、java.io、java.util、java.awt、java.swing和java.sql包中的类都位于JDK类库中。Java继承类库
13、(rt.jar)1.3.1J D K 介 绍这些开发工具都是可执行程序,主要包括:javac.exe(编译工具)、java.exe(运行工具)、javadoc.exe(生成JavaDoc文档的工具)和jar.exe(打包工具)等。Java开发工具 JDK包含一批用于Java开发的组件,其中包括以下几部分:1.3.2JDK安装配置下述内容分别介绍JDK下载、安装及配置。JDK安装配置1.1.下载下载JDKJDK进入Oracle官方网站可以下载JDK的最新版本。Oracle官方网站:http:/JDK8的下载地址:http:/ 8.0的下载页面如图1.8所示。下载JDK 8.0的Windows x
14、64版本,即jdk-8u171-windows-x64.exe。由于不同版本的下载地址会经常发生变化,最有效的方法是访问官方网站,通过导航找到下载页面;如果是32位操作系统,则下载对应的“x86”版本。1.3.2JDK安装配置2.2.安装安装JDKJDK【步骤1】运行JDK的安装文件,进入JDK的安装向导界面,如图1.9所示。【步骤2】单击“下一步”按钮,进入定制安装界面,如图1.10所示。可以单击右下方的“更改”按钮,设置JDK的安装路径,否则进入默认安装路径。1.3.2JDK安装配置【步骤3】单击“下一步”按钮,进入安装进度界面,如图1.11所示。【步骤4】JDK安装进度完成,进入目标文件
15、夹安装对话框,如图1.12所示。可以单击“更改”按钮,选择JRE的安装路径。一般要求JDK和JRE安装在同一个文件夹内。1.3.2JDK安装配置【步骤5】单击“下一步”按钮,进入JRE安装进度界面,如图1.13所示。当安装完成以后,进入安装成功界面,如图1.14所示。单击“关闭”按钮,完成JDK整个安装过程。1.3.3J D K 目 录JDK安装完成后,在安装的位置中可以找到如图1.15所示的目录。JDK目录JDKJDK主要目录如下:主要目录如下:bin:JDK包中命令及工具所在目录。这是JDK中非常重要的目录,它包含大量开发当中的常用工具程序,如编译器、解释器、打包工具、代码转换器和相关调试
16、工具等。jre:运行环境目录。JDK自己附带的Java运行环境。lib:类库所在目录。包含了开发所需要的类库(即Java API)和支持文件。db:附带数据库目录。在JDK 6.0以上的版本中附带Apache Derby数据库,这是一个Java编写的数据库,支持JDBC 4.0。include:包含本地代码的C头文件的目录。用于支持java本地接口和Java虚拟机调试程序接口的本地代码编译。src.zip:源代码压缩文件。Java提供的API都可以通过此文件查看其源代码是如何实现的。1.3.3J D K 目 录在在JDKJDK的的binbin目录下,提供了大量的开发工具程序,以下是几个常用的工
17、具:目录下,提供了大量的开发工具程序,以下是几个常用的工具:javac:Java语言编译器。可以将Java源文件编译成与平台无关的字节码文件(.class文件)。java:Java字节码解释器。将字节码文件在不同的平台中解释执行。javap:Java字节码分解程序。可以查看Java程序的变量以及方法等信息。javadoc:文档生成器。可以将代码中的文档注释生成HTML格式的Java API文档。javah:JNI编程工具。用于从Java类调用C+代码。appletviewer:小应用程序浏览工具,用于测试并运行Java小应用程序。jar:打包工具。在Java SE中压缩包的扩展名为.jar。第
18、第4 4节节part集成开发环境 安装配置好JDK后可以直接使用记事本编写Java程序,但是,当程序复杂到一定程度、规模逐渐增大后,使用记事本就远远满足不了开发的需求。一个好的集成开发环境(IDE,Integrated Development Environment)可以起到事半功倍的效果。集成开发环境具有很多优势:不仅可以检查代码的语法,还可以调试、跟踪、运行程序;此外,通过菜单、快捷键可以自动补全代码;且在编写代码的时候回自动进行编译;运行Java程序时,只需要单击运行按钮即可,大大缩短了开发时间。目前,最流行的两种是Eclipse和NetBeans,为了正当“领头羊”,两者之间展开了激烈
19、的竞争。这些年来由于Eclipse的开放性、极为高校的GUI、先进的代码编辑器等特性,在IDE的市场占有率上远远超越NetBeans。本节仅介绍Eclipse这一款IDE工具的下载、安装和使用。集成开发环境本节概述1.4.1Eclipse简介 Eclipse是一个开放源代码、可扩展的、跨平台的集成开发环境。Eclipse最初主要用来进行Java语言开发,如今也是一些开发人员通过插件使其作为其他语言如C+和PHP的开发工具。Eclipse本身只是一个框架平台,众多插件的支持使得Eclipse具有更高的灵活性,这也是其他功能相对固定的IDE工具很难做到的。Eclipse发行版本如表1-2所示。Ec
20、lipse简介1.4.2Eclipse下载及安装1.Eclipse1.Eclipse下载下载进入Eclipse官方网站可以下载最新版本的Eclipse安装文件。Eclipse官方网站:http:/www.eclipse.orgeclipse下载地址:https:/www.eclipse.org/downloads/download.php?file=/oomph/epp/photon/R/eclipse-inst-win64.exe&mirror_id=1261Eclipse下载页面如图1.16所示。Eclipse下载及安装1.4.2Eclipse下载及安装2.Eclipse2.Eclipse
21、安装安装 Eclipse的安装一般有两种方式:一种是在网上下载绿化版的Eclipse开发工具,不需要安装,直接解压即可使用;另一种,是在官网下载需要安装的Eclipse软件。我们这里主要介绍第二种安装方式。下面对Eclipse的安装分步骤进行详细介绍。Eclipse下载及安装【步骤1】下载完成后解压下载包,可以看到 Eclipse Installer 安装器,双击它,弹出安装类型选择页面,如图1.17所示。可以选择各种不同的语言的开发环境(包括Java、C/C+、JavaEE、PHP 等)。我们这里选择“Eclipse IDE for Java Developes”项。1.4.2Eclipse
22、下载及安装 【步骤2】单击“next”按钮,进入安装路径选择界面,如图1.18所示。可以单击右侧的文件夹图标,进行安装路径选择。【步骤3】按回车键,进入安装版本选择界面,如图1.19所示。我们这里选择64位的Oxygen(氧气)版本进行安装。1.4.2Eclipse下载及安装 【步骤4】以后依次单击“next”按钮,直至安装完成即可。根据安装路径,打开Eclipse安装文件夹,其目录如图1.20所示。1.4.3Eclipse基本操作1.Eclipse1.Eclipse启动启动 单击eclipse.exe启动开发环境,第一次运行Eclipse,启动向导会让你选择Workspace(工作区),如图
23、1.21所示。在Workspace中输入某个路径,表示接下来的代码和项目设置都将保存在该工作目录下。单击“Launch”按钮,进入启动页面,如图1.22所示。Eclipse基本操作1.4.3Eclipse基本操作 启动成功后,第一次运行会显示欢迎界面,如图1.23所示,单击Welcome标签页上的关闭按钮,关闭欢迎界面,将显示Eclipse开发环境布局界面,如图1.24所示。1.4.3Eclipse基本操作开发环境分为如下几个部分:开发环境分为如下几个部分:菜单栏。工具栏。IDE的透视图,用于切换Eclipse不同的视图外观,通常根据开发项目的需要切换不同的视图。项目资源导航,主要有包资源管理
24、器。代码编辑区,用于编写程序代码。程序文件分析工具,主要有大纲、任务列表。问题列表、文档注释、声明和控制台窗口。显示区域,主要有编译问题列表、运行结果输出等。1.4.3Eclipse基本操作2.2.创建创建JavaJava项目项目 打开Eclipse集成开发工具,选择FileNewJava Project菜单项,如图1.25所示。或直接在项目资源管理器空白处右击,在弹出菜单中选择NewJava Project菜单项。在弹出的创建项目对话框中输入项目名称,如图1.26所示。直接单击“Finish”按钮,项目创建成功。1.4.3Eclipse基本操作3.3.创建类创建类 在student项目中的s
25、rc节点上右击,在弹出菜单中选择NewClass菜单项。在弹出的新建类对话框中,如图1.27所示,输入包名和类名,选中“public static void main(String args)”复选框,然后单击“Finish”按钮,创建类完成。新建类后,Eclipse会自动打开新建类的代码编辑窗口,在main()方法中输入如下代码:System.out.println(我是一个好学生,我要好好学习Java!);单击工具栏中的保存按钮,或者按“Ctrl+S”快捷键保存代码。单击工具栏上的运行按钮,选择“Run AsStudent”选项,即可运行Student.java程序,并且在控制台中可以看到
26、输出结果如下:我是一个好学生,我要好好学习Java!1.4.3Eclipse基本操作4.Eclipse4.Eclipse调试调试【步骤1】设置断点 单击需要设置断点的程序行左侧,在弹出的对话框中选择“设置断点”选项,会出现一个蓝色的断点标识,如图1.28所示。1.4.3Eclipse基本操作【步骤2】调试程序 单击工具栏的调试按钮 ,或选择“Debug AsJava Application”选项,如图1.29所示,调试Student.java程序。此时弹出一个对话框如图1.30所示,询问是否切换到Debug透视图,单击“Yes”按钮,进入程序调试界面,如图1.31所。单击调试工具栏的 或 按钮
27、,观察Variables窗口中的局部变量的变化,以及输出的变化,对代码进行调试并运行。1.4.3Eclipse基本操作5.Eclipse5.Eclipse导入导入 在开发过程中,经常会需要从其他位置复制已有的项目,这些项目不需要重新创建,可以通过Eclipse的导入功能,将这些项目导入到Eclipse的工作空间。首先,选择“FileImport”菜单项,在弹出的对话框中选择“GeneralExisting Projects into Workspace”选项,如图1.32所示。1.4.3Eclipse基本操作 单击“Next”按钮,弹出导入项目窗口,如图1.33所示。可以导入两种形式的项目:项
28、目根目录,即该项目以文件夹形式存放,则单击“Browse”按钮,指定其项目的根目录即可。项目压缩存档文件,即整个项目压缩成zip文件,则单击“Browse”按钮,指定其项目的压缩存档文件即可。最后,单击“Finish”按钮,完成项目导入。此时需要导入的项目已经引入到Eclipse工作空间中。注意:注意:能够向Eclipse中导入的项目必须是使用Eclipse导出的项目。导出项目与导入项目正好相反,选择“FileExport”菜单项。第第5 5节节partJava应用程序 Java程序分为Application程序和Applet程序两类。Application程序是普通的应用程序,其编译结果不是
29、通常的exe文件而是class文件。Application程序能够在任何具有Java解释器的计算机上运行。Applet程序不是独立的程序,使用时必须把编译时生成的class文件嵌入到HTML文件中,借助浏览器解释执行。Java应用程序本节概述1.5.1Java语言编写规范 在Java语言中,为包、类、接口、变量、常量和方法等取的名字,称为标识符。有关标识符的命名规则在第二章详细介绍,不遵循标识符命名规则会导致编译错误。在Java中,还有一种推荐的编程习惯,如果不遵守,虽然不会导致编译错误,但是编写的程序后期维护成本较高,可读性也较差。一般素质良好的程序员,在编写Java程序时,通常都会遵守如下
30、的编程规范。Java语言编写规范1.1.包名包名包名是全小写的名词,具有多个层次结构的包名中间用点号分隔开。例如:com.student或java.sql.jdbc等。2.2.类名和接口名类名和接口名类名和接口名通常由多个单词构成,要求每个单词的首字母都要大写,其余字母小写。例如:HelloWorld或StudentInformation等。3.3.方法名方法名方法名如果有多个单词组成,则第一个单词首字母要求小写,其余每个单词首字母大写,其余所有字母都小写。例如:createBookSaleRecord。4.4.变量名和对象名变量名和对象名变量名和对象名的编程规范和方法名相同,只是一般为名词。
31、例如:name,age等。5.5.常量名常量名基本数据类型的常量名为全大写,如果由多个单词构成,可以用下划线隔开。例如:MAX_VALUE、MIN_AGE等。1.5.2Java注释 注释是对程序代码做出注销或者解释说明的作用。在程序编译时,注释的内容不会被编译器处理,所以对于编译和运行的结果不会有任何影响。但是在复杂的项目中,注释往往用来帮助开发人员阅读和理解程序,同时也有利于程序修改和调试。Java注释 Java语言支持单行注释、多行注释和文档注释三种方法。1.1.单行注释单行注释 单行注释使用“/”符合进行标记,可放置于代码后面或单独成行,标记之后的内容都被视为注释。例如:public s
32、tatic void main(String args)int i=0;/定义变量i,并赋初值0。/向控制台输出语句 System.out.println(Hello World!);1.5.2Java注释2.2.多行注释多行注释 多行注释使用“/*/”进行标记,注释内容可以跨越多行,从“/*”开始到“*/”结束,之间的内容都被视为注释。多行注释主要用于注释内容较多的文本,如说明文件、接口、方法和相关功能块描述,一般放在一个方法或接口的前面,起到解释说明的作用,也可以根据需要放在合适的位置。例如:public static void main(String args)/*System.out.
33、print()输出内容后不换行*System.out.println()输出内容后换行*/System.out.print(输出内容后不换行!);System.out.println(输出内容后换行!);1.5.2Java注释3 3 文档注释文档注释 文档注释使用“/*/”进行标记,其注释的规则与用途相似于多行注释。文档注释不同于多行注释的是可以通过“javadoc”工具将其注释的内容生成HTML格式Java API文档。程序的文档是项目产品的重要组成部分,将注释抽取出来可以更好地供使用者参阅。因此,在实际应用中,文档注释应用更为广泛,尤其是对类、接口、构造方法、方法的注释应尽量使用文档注释。
34、例如:/*单位 重庆机电职业技术学院 *作者 向守超*/public class HelloWorld public static void main(String args)/向控制台输出语句 System.out.println(Hello World!);1.5.3Java打印输出 在Java程序中,向控制台输出信息是必不可少的。输出的工作是通过打印语句来完成的。据不完全统计,打印语句是在代码中使用频率最高的语句之一,对于初学者来说是验证结果、测试代码、记录系统信息最普遍的方法。本书介绍两个Java中最常用的打印方法:System.out.println()和System.out.pri
35、nt(),以便于后续学习中的应用,两者都是向控制台输出信息,不同的是System.out.println()方法会在输出字符串后在输出回车换行符,而System.out.print()方法则不会输出回车换行符。Java打印输出1.5.3Java打印输出下述代码示例了分别使用两种打印方法实现各种数据的输出,代码如下所示。【代码1.1】PrintExample.javapackage com;public class PrintExample public static void main(String args)String s=Hello;char c=c;System.out.print(S
36、tring is:);System.out.println(s);System.out.print(char is:);System.out.println(c);上述代码运行结果如下所示:String is:Hellochar is:c1.5.4Hello World程序编写编写JavaJava程序需要注意以下几点:程序需要注意以下几点:Java是区分字母大小写的编程语言,Java语言的源程序文件是以.java为后缀的。所有代码都写在类体之中,因为Java是纯面向对象的编程语言,一个完整的Java程序,至少需要有一个类(class)。一个Java文件只能有一个公共类(public),且该公共
37、类的类名与Java文件名必须相同,但一个Java文件可以有多个非公共类。每个独立的、可执行的Java应用程序必须要有main()方法才能运行。main()方法时程序的主方法,是整个程序的入口,运行时执行的第一句就是main()方法。Java语法对main()方法有固定的要求,方法名必须是小写的“main”,且方法必须是公共、静态、返回值类型为空的“public static void”类型,且其参数必须是一个字符串数组。Hello World程序1.5.4Hello World程序下面以HelloWorld程序为例,详细讲解Java程序的基本结构和代码含义。代码程序如下所示。【代码1.2】He
38、lloWorld.java/定义包,指定类存放路径package com;/import语句,导入Java核心类库import java.lang.*;/*使用“class”关键字定义一个名称为“HelloWorld”的类*该类的访问权限修饰符为public,表示在整个应用程序中都可以用访问该类*该公共类的类名必须与源文件的文件名一致*类的类体是由一对大括号“”括起来的,起到封装作用*/public class HelloWorld/定义程序的主方法main()方法,即程序的入口public static void main(String args)/向控制台输出双引号内的语句,通常一个语句书写一行,/语句必须以英文格式的分号“;”来结束System.out.println(Hello World!);本章课后作业见教材