一.单元概述
通过本章的学习能够了解Java语言在实际应用中的优势,了解Java 的常用开发工具,掌握Java应用程序的简单实例,掌握如何运行Java应用程序。
二、教学重点与难点
重点:
- Java语言的版本
- Java语言的特点
- Java开发环境配置
- Java程序运行的原理
- 类和主方法
难点:
Java程序运行原理
1.1 Java简介
1.1.1 Java的发展历史
Java是一种面向对象的程序设计语言,由Sun Microsystems公司的James Gosling等人于20世纪90年代初开发。它最初被命名为Oak,用来开发消费类电子产品,解决诸如电话、电视机等家用电器的控制和通讯问题。后来随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月正式命名为”Java”,变化历程如下图1.1和1.2所示。
1.1.2 Java语言的版本
Java SE —- 标准版(Standard )。Java SE包含那些构成Java语言核心的类。适合开发桌面应用程序和底层应用程序。同时它也是Java EE的基础平台。
Java EE —- 企业版(Enterprise)。Java EE包含Java SE中的类,并且还包含用于开发企业级应用的类,如EJB、servlet、JSP、事务控制。为企业级应用提供了标准平台,简化复杂的企业级编程。
Java ME —- 微缩版(Micro)。包含Java SE中一部分类,用于嵌入式系统开发。专门针对一些小型的消费电子产品,如:手机、PDA、机顶盒
1.2 Java的特点
1.跨平台
何谓平台:即一套特定的硬件再加上运行其上的操作系统,即硬件+软件。
Java编译器将Java源程序编译成一种与体系结构无关的中间文件格式,称为字节码。只要有Java运行系统的机器都能执行这种中间代码。从而使同一版本的应用程序可以运行在不同的平台上。
怎样理解平台无关性呢?JVM (java Virtual Machine)起到了主要作用。JVM是运行在平台之上的程序,它能够虚拟出一台目标机,所有字节码就是在虚拟出的目标机上运行。
2.半编译半解释
源程序先编译成字节码,Java解释器(运行系统)能直接对Java字节码进行解释执行。链接程序通常比编译程序所需资源少,Java的编译和解释执行过程如下图1.4所示。
3.简单
Java是个精简的系统,无需强大的硬件环境便可以很好地运行。Java的风格和语法类似于C++,因此,C++程序员可以很快就掌握Java编程技术。Java摒弃了C++中容易引发程序错误的地方,如多重继承、运算符重载、指针和内存管理等,Java语言具有支持多线程、自动垃圾收集和采用引用等特性。Java提供了丰富的类库,方便用户迅速掌握Java。
4.面向对象
对象可以是人们研究的任何实体,小到一个原子大到整个宇宙,均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、概念等。对象之间通过消息相互作用,用公式表示,面向对象编程语言可以表示为:程序=对象+消息。现实世界中的对象均有属性和行为,映射到计算机程序上,属性就表示对象的数据(用来表示对象的状态),行为就表示对象的方法(用来处理数据或同外界交互)。
所有面向对象编程语言都支持三个概念:封装、继承和多态,Java也不例外。
面向对象可以说是Java最基本的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。所有的Java程序和applet均是对象,Java支持静态和动态风格的代码继承及重用。
5.分布式
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,就像访问本地文件一样简单方便。Java的分布性为实现在分布环境尤其是Internet下实现动态内容提供了技术途径。
6.健壮
Java提供了自动垃圾收集机制来进行内存管理,并检测程序对内存的访问,确定合法并不会引起任何问题后,才允许访问。
Java还提供了异常处理机制用来检查编译及运行时可能出现的问题,Java在编译和运行程序时要对可能出现的异常进行检查;同时,Java在编译时还可捕获类型声明中的许多常见错误,帮助程序员消除错误,防止系统崩溃。
7、安全
作为网络语言,安全是非常重要的。Java的安全性可从两个方面得到保证。一方面,在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和一类浏览器本身提供的功能结合起来,使它更安全。Java语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,试图改变一个对象的类型。另外,Java拥有多个层次的互锁保护措施,能有效地防止病毒的入侵和破坏行为的发生。Java不支持指针,避免了由于指针操作所引起的错误和非法入侵。同时,Java在运行应用程序时,严格检查其访问数据的权限,保证数据的可靠性。
8.多线程
线程有时也称小进程,是一个大进程里分出来的小的独立运行的基本单位。Java提供的多线程功能使得在一个程序里可同时执行多个小任务,即同时进行不同的操作或处理不同的事件。多线程带来的更大的好处是具有更好的网上交互性能和实时控制性能,尤其是实现多媒体功能。
1.3 Java开发环境的搭建
Java运行环境就是JRE (Java Runtime Environment),是由Sun所研发的,是一个软件, JRE可以让计算机系统执行Java应用程序,它是运行JAVA程序所必须的环境的集合,JRE的内部有一个JAVA虚拟机(Java Virtual Machine,JVM)以及一些标准的类库(Class Library),如果你只需要运行Java程序,下载并安装它即可。
如果你要自行开发 Java软件,请下载JDK。在JDK中附带有JRE。最新版本下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html。
1.4 第一个Java程序
本程序的作用是在屏幕上显示”Hello World!”,效果如下图1.11所示。
1.4.1 Java程序运行的原理
Java程序运行在Java虚拟机上,Java虚拟机就是指JVM (Java Virtual Machine) ,这是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统,编辑、编译及运行Java程序的过程如图1.13所示。
图1.13编辑、编译及运行Java程序的过程
一个运行时的Java虚拟机实例的天职就是:负责运行一个Java程序。Java虚拟机的主要任务是装载class文件并且解释执行其中的字节码。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中,如下图1.14所示。
图 Java虚拟机示意图
图 运行时过程
编译源文件:java源代码被java编译器编译(Compile)。如果这时产生错误,我们称为编译错误。如果没有错误,则生成字节码(byte code)。
运行字节码:这里,java字节码被装载到java虚拟机中,解释成本地代码再运行。如果此时产生错误,我们称之为运行时错误(Runtime)。
1.4.2 注释的使用
Java 的注释是被Javac忽略的部分,Java中的注释包含下面三种。
1.单行注释
// 单行注释
2.多行注释
/ 多行注释 /
3.文档注释
/ 文档注释 */
Java的注释如下图1.17所示。
图1.17Java中的注释**
1.4.3 空白符和行号
Java中的空白符和行号如下图1.18所示。
图1.18空白符和行号
Java中的修饰符如下图1.19所示,其中public用来修饰类,也可以修饰方法,static用来修饰main方法,void是main方法的返回值类型,表示此方法没有返回值。
图1.19Java中的修饰符
1.4.4 类和主方法
Java中的类和主方法的结构图下图1.20所示,主方法在类的内部,类里包含方法。
图1.20类和主方法
1.5 Eclipse集成开发工具介绍
Eclipse是一个开放源码的、基于Java的可扩展平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse平台定义了一个开放式体系结构,任何插件开发者都可以在扩展点上添加各种功能。Eclipse软件旨在简化用于多操作系统软件工具的开发过程,它被设计成可以在多个操作系统上运行,基于Eclipse的软件在Linux和Windows系统上都可以运行,因此可以省去开发者有时要把Windows应用程序切换到Linux的操作,进而简化了整个开发过程。同时Eclipse还提供了与每个底层操作系统的强大集成。
Eclipse的前身就是IBM的Visual Age for Java(简称VA4J)。IBM把这个项目免费赠送给Eclipse社团(www.eclipse.org)。Eclipse社团的合作人还包括Borland、Rational Software、Red Hat和Oracle等公司。如今,IBM通过其研发机构Object Technologies International(简称OTI),继续领导着Eclipse的开发。
1.5.1 选择工作空间界面
安装Eclipse软件前,要确保已经成功安装了JDK工具。Eclipse是可以免费使用的软件,可以从Eclipse的官方站点http://www.eclipse.org上下载。
安装方法是直接解开压缩包到磁盘某个分区(如:D盘)的根目录,—安装Eclipse的计算机上必须先安装与之版本对应的jdk。
Eclipse的启动方式是在Windows操作系统中可以直接双击Eclipse安装目录下的eclipse.exe启动Eclipse。
当你第一次运行Eclipse软件时,会遇到如下图所示的窗口界面。
这个窗口的功能是让开发者选择一个工作空间(Workspace),或者叫工作目录。如果你输入的工作目录在计算机上并不存在,那么Eclipse会自动为你创建一个目录。以后我们在Eclipse上开发的项目及代码都会放在这个Workspace中,因此建议大家将Workspace放在非系统盘下,以避免重装系统而丢失代码,Eclipse的启动页面如下图1.21所示。
图1.21 Eclipse的启动界面
选择工作空间,就是将来程序存放的位置,如下图1.22所示。
图1.22设置Workspace的窗口
在选中了Workspace窗口下面的复选框后,会将我们所选择的工作目录作为默认的工作空间,以后再运行Eclipse也不会出现这个窗口进行询问了。
1.5.2 Eclipse的主界面
Eclipse的主界面图如下图1.23所示。
图1.23 Eclipse主界面
主要框架部分介绍如下:
- 菜单栏和工具栏;
- Package Explorer:树状的项目导航视图,在这里我们可以清晰地看到项目列表以及项目下的包、文件夹、文件列表以及它们的层次关系。我们可以在这里通过鼠标右键菜单来实现文件、包及文件夹的创建、复制、删除、重命名、刷新列表等操作;
- 文本编辑窗口:在这个视图里,以文本编辑的方式打开Java代码,可以进行编辑修改,并可以通过鼠标右键菜单来实现运行、调试等功能,默认情况下,Eclipse支持自动编译的功能,也就是说,我们在保存文件的同时,Eclipse就会对其进行编译;
- Outline视图:文件的大纲视图,在这里我们可以看到被打开文件的类、属性、方法等成员的结构;
- Console视图:控制台视图,当被打开文件执行时,输出的信息就在这里显示。
提示:
- 如果某些视图在你的Eclipse界面中没有看到,那么你可以通过菜单”Window(窗口)”->”show view(显示视图)”来选择你要显示的视图;
如果某些视图不在你习惯的位置,你可以通过拖拽鼠标来改变它们的位置和大小。
1.5.3 创建项目
创建项目可以如下进行操作:
选择菜单”File(文件)”->”New(新建)”->”Project(项目)”,如果看不到”Project(项目)”这个菜单,可以在”Others(其它)”中找到。
- 或者使用工具栏
按钮,点击右面那个黑色小钮
,选择”Project(项目)”菜单。
- 打开”New Project”窗口后,选择”Java Project”项目类型,然后按”next”按钮。
操作界面如下图1.24所示。
图1.24 New Project界面
- 进入”New Java Project”窗口后,输入项目名,然后按”Finish”按钮,我们就创建了一个Java项目,如下图1.25所示。
图1.25 New Java Project界面
- 创建项目后,在Package Explorer视图(主界面左侧)中,我们会看到一个新的Java项目,如下图1.26所示。
1.5.4 创建Java文件
我们创建好项目后,就可以在项目下创建Java代码文件了。
- 在Package Explorer视图中,右键点击MyFirst项目,选择菜单菜单”File(文件)”->”New(新建)”->”Class(类)”。
- 或者选中项目后,使用工具栏
按钮,点击右面那个黑色小钮
,选择”Class(类)”菜单。
- 进入”New Java Class”窗口,输入类名,然后点”Finish”按钮,如下图1.27和1.28所示。
图1.27 New Java Class界面1
图1.28 New Java Class界面2
- 在Package Explorer视图中,可以看到我的项目下有了一个新的Java文件,如下图1.29所示。
1.5.5 编辑Java文件
在编辑页面中输入代码。当对该文件做了更改后,文件名前会有个”*”号,表示文件已更改但未保存,保存文件后,这个符号就会消失,默认情况下保存文件的同时对程序进行编译。
保存文件的方式有三种:
- 点击菜单”File(文件)”->”Save(保存)”;
- 或者点击菜单栏
按钮;
- 或者使用快捷键”Ctrl+S”。
保存前的文件如下图1.30所示。
图1.30编辑Java文件MyFirstClass.java
在Eclipse中,一般情况下是自动编译Java文件的,也就是说保存Java文件的同时,Eclipse就编译了该文件。
1.5.6 运行class文件
编辑并编译了Java文件后,我们还可以在集成环境Eclipse中来运行测试Class文件。启动运行的方式有两种:
- 在编辑页面中点击鼠标右键菜单”Run As(运行为)”->”Java Application(Java应用程序)”运行该程序。
- 或者使用工具栏
按钮,点击右面那个黑色小钮
,选择”Run As(运行为)”->”Java Application(Java应用程序)”运行该程序。
运行Java文件的方式如下图1.31所示。
- 在Console视图中,会看到运行结果,如下图1.32所示。
1.6 课后作业
(一)选择题
1.编译Java应用程序源文件将产生相应的字节码文件,字节码文件的扩展名为
A. .java
B. .class
C. .html
D. .exe
2.Java源程序文件的扩展名为
A. .java
B. .class
C. .html
D. .exe
3.编译Java源代码(.java)文件的工具为
A. javac
B. java
C. javadoc
D.jdb
4.执行Java字节码(.class)文件的工具为
A. javac
B. java
C. javadoc
D.jdb
5.main方法是Java Application程序执行的入口点,关于main方法头,哪项是合法的
A.public static void main()
B.public static void main(String args[])
C.public static int main(String[] arg)
D.public void main(String args[])
6.下列说法错误的是
A.main( )方法是Java应用程序的运行入口。
B.一个Java文件可以写多个类,但是只有一个类才能有main( )方法。
C.public修饰的类名不一定与Java文件名相同。
D.Java程序可分为Java应用程序和Java小程序两种。
7.在使用Eclipse开发Java程序之前,必须安装
A.文本编辑工具
B.JDK
C.JBuilder
D.JDeveloper
(二)简答题
- Java语言的特点有哪些?(至少列举五个)
- Java源文件的扩展名是什么?字节码文件的扩展名是什么?
- 编译Java程序的命令是什么?运行Java程序的命令是什么?
- 设置环设置环境变量,path,classpath,并编写打印输出Hello World程序,要求为类、方法、语句添加注释,程序运行效果如下。