第 0章 Java技术概览
Java是一种出色的面向对象跨平台编程语言。在当今的软件领域几乎无处不见 Java语言活跃的身影,然而 Java语言究竟是什么,本节将从两个方面解释 Java的“身世”,Java既是一种编程语言,
也是一个软件平台。并且将从多个方面分析了
Java到底能为我们做什么。
0.1 Java技术
Java既是编程语言也是软件平台,作为编程语言的 Java有自己的一套机制实现源程序到处理器可执行程序间的过度与转换,作为软件平台的 Java
为程序员提供了编程接口和 Java虚拟机( JVM),
下面将依次介绍。
0.1.1 Java编程语言
Java作为一种高级语言具有许多优良特性,如跨平台、面向对象、分布式、
多线程、安全性、健壮性、简单性等。这些优良的特性在读者学习完本书后会有很好的体会。
在 Java语言中所有的源代码可以通过无格式的记事本编写,并保存为,Java文件,因为通过该扩展名,Java编译器会知道该文件是自己可以处理的文件。经过编译后的文件为,class文件,该文件是字节码文件,此时,class文件不能被处理器直接读取执行,必须通过虚拟机转换成二进制文件后才可以被处理器执行。图 Java程序的开发过程说明了上面叙述的内容。
0.1.2 Java语言平台
Java语言也是一种软件平台。平台可以理解为软件运行所需的软件或硬件环境,如操作系统可以看做软件平台,它提供了引用程序运行的环境,如在 Window XP操作系统上运行 Word字处理程序。当然如果从用户的角度看,操作系统其实是软件和硬件相结合的综合平台,因为操作系统对硬件的操作用户是看不见的,但是操作系统又确实管理并运行在硬件平台上。
而 Java语言作为软件平台,为 Java源程序编写和运行提供了完善的环境。但是该 Java提供的软件平台不和硬件发生任何关系,该平台是纯软件平台,运行在操作系统上,Sun
为不同的操作系统编写了相应的 JVM。作为软件平台的 Java
由两部分组成。
0.1.3 Java语言的功能
Java语言作为完善而强大的软件平台,每个版本的 Java平台都会提供如下的功能或组件。
( 1)开发工具
( 2)应用程序编程接口 (API)
( 3)用户接口工具集
( 4)集成类库
0.1.4 Java语言的优点
Java语言与其他语言如 C,C++,Delphi等语言相比,有它自己的优势,无论你学习 Java的初衷为何,Java语言确实使得你的程序更友好,并且需要较少的劳动。下面将介绍 Java语言的优点以证实上述的说法。
( 1)入门更快
( 2)代码量少
( 3)编码更容易
( 4)程序开发更快
( 5)避免平台依赖
( 6)程序的平台独立性
0.2 Windows下的,HelloWorld” 应用程序
到本节为止,笔者还没有介绍如何编写 Java程序。
当然程序的编写、编译和执行都需要一定的软件环境或编辑工具,所以在写 Java程序前需要读者做些准备工作,最基本的需要两个软件,一个是
Java的 JDK,一个是文本编辑工具。本节在 0.2.1
介绍这两个软件,在 0.2.2介绍创建一个 Java应用程序的步骤。
0.2.1 创建应用程序的软件环境
JDK是 Java开发工具集的意思,就是为开发 Java程序提供了一套工具,包括源程序的编译、调试、运行等工具,并提供了一些 API接口工具。读者可以到 Sun的网站下载 JDK并安装使用,这部分内容在第 1章再详细介绍,读者只需要知道开发 Java程序需要安装 JDK。
对于初学者而言,编写源程序的工具最好选择无格式的文本编辑器,Windows自带的记事本就是很好的 Java源程序编写工具。可以如图所示打开 Windows平台的记事本。
0.2.2 创建,HelloWorld” 应用程序的步骤
本节通过一个示例介绍开发 Java应用程序的步骤,该示例程序为 HelloWorld,它的功能很简单,就是在标准输出打印字符串,HelloWorld!” 。下面演示创建步骤。
1.创建源程序文件,该文件包含使用 Java语言编写的代码,
当然这些代码要符合 Java规范的。可以使用任意的文本编辑器来创建 Java源程序文件。
2.编译源程序,首先选择 【 开始 】【 运行 】 然后输入 cmd指令,则打开一个 DOS窗口。该窗口的目录提示为当前目录,
该目录通常是 WindowsXP的主目录。
3.运行源程序,在编译完程序后需要运行程序,运行程序很简单,在当前目录下输入 Java HelloWord,这里的
HelloWorld就是刚才编写的类的名字。
0.3 深入探讨,HelloWord” 应用程序
本节将详细介绍 HelloWorld源程序,在 0.2节读者已经看到如何编写,编译和执行 Java源程序 。 但是读者或许想知道源程序到底是如何运行 。 为了说明的方便这里再次列出该代码程序 。
1 /**
2 类 HelloWorld的功能是在标准输出
3 打印一行输出,HelloWorld!”
4 */
5 class HelloWorld{
6 public static void main(String[] args){
7 System.out.println("HelloWorld!");
//调用标准输出打印字符串
8 }
9 }
0.3.1 注释源代码
在程序中有这样的注释部分,如以下代码所示。
/**
类 HelloWorld的功能是在标准输出
打印一行输出,HelloWorld!”
*/
这是 Java的注释部分,其格式是 /**注释 */,程序会忽略掉注释的内容,Java还提供了另外两种注释,其格式分别是 //和 /*注释 */,具体如何使用可以参考第 1章 1.8节的内容。
0.3.2 实现类定义
下面代码的粗体字部分是类定义部分,其语法格式是 class
classname{code},其中关键字 class声明这是一个类,后面紧跟类名,用两个大括号括起来的部分是类定义的主体部分 。
1 /**
2 类 HelloWorld的功能是在标准输出
3 打印一行输出,HelloWorld!”
4 */
5 class HelloWorld{
6 public static void main(String[] args){
7
System.out.println("HelloWorld!"); //调用标准输出打印字符串
8 }
9 }
0.3.3 详解 main方法
使用 Java语言编写的应用程序必须包含一个 main()方法,它的格式如下所示:
public static void main(String[] args)
修饰符 public和 static的顺序可以互换,但是根据 Java惯例把
public放在前面,参数名 args不是固定的,开发者可以任意命名,
但是习惯上选择使用 args或 argv。
Main()方法是应用程序的入口,但一个程序执行时会首先指定类的 main()方法开始,再启动程序所需要的其他资源。 Main()方法接收一个字符串数据参数,实际上该参数提供了运行时系统向应用程序提供参数的途径。当然也可以不传递任何参数。如果一个应用程序可以读取一系列文件,则需要把这些文件的绝对路径告诉该程序。该参数是命令行参数,即在调用 Java ClassName时使用,方式为 Java ClassName args。
笔者在编译 HelloWorld程序时没有输入参数,该应用程序忽视了该参数但是读者一定要注意确实存在也允许调用这样的参数为应用程序使用。
0.4 常见编译错误
对于初学者而言,在 Java程序的开发、编译和执行过程中都会或多或少的遇到问题,如环境变量设置不正确,源程序的语法错误、语义错误,或在程序编译、运行期发生错误等。这些错误或问题如果不能得到适当的处理对于初学者是很大的障碍,本节将介绍几种常见的错误,以使读者在学习的过程中少走弯路。
0.4.1 环境变量设置错误
在编译并运行 Java应用程序之前,需要设置环境变量,其目的是使 Windows系统可以知道 DOS窗口中运行的 Java工具可执行程序,如 Javac源程序编译工具等。图所示说明 Windows操作系统无法发现
Javac编译程序,所以在源文件所在目录下编译源文件。 JDK环境变量的设置可以参考第 1.5节的内容。
0.4.2 语法错误
Java语言规范设计了语法规则,但是如果疏漏了部分内容,违反了 Java的语法规则,编译器会发出语法错误消息,该消息包含错误类型,发生错误的代码在程序中的位置(以该错误代码行为标识),并且在错误处标识一个,^” 。如图语法错误所示。
0.4.3 语义错误
编译器也会发生语义错误,编译器无法识别一个标识的语义,如发现一个为定义的变量,错误输入的系统类库的类的名字等。图语义错误示例了一个语义错误,笔者故意将语句 System的首字母改为小写,使编译器无法识别,从而输出语义错误。
0.4.4 运行时错误
运行期异常指在执行程序过程中发生的错误,如某个类没有实例化造成空指针,无法找到指定的类文件等。下面介绍三种初学者常见的运行时错误。
1.无法发现类文件
2.执行 Java工具时类名错误
3.无法发现 main()方法
0.5 本章习题
( 1)学完本章中,读者需要回答:
1.如何理解 Java是一门编程语言?
2.如何理解 Java是一个软件平台?
3.如何理解类的定义?
4.如何理解解释 main方法的作用?
5.列出 Java三种注释方式。
6.理解操作系统中环境变量 Path和 CLASSPATH的作用。
0.5 本章习题
( 2)编译如下程序,观察并解释输出结果:
( 3)注意事项:
1.相信本章的学习不会耗费初学者多少脑力,但是作为学习一门语言起步阶段,读者仅仅是看到 Java语言很小的一部分内容,所以希望读者可以轻松理解本章内容并建立学习 Java语言的信心,并保持这样的状态继续下面章节的学习。
2.本章要求读者初步理解 Java语言作为编程语言和作为软件平台的特性。
对于 0.3节深入探讨,HelloWord” 应用程序要用心体会。掌握一个应用程序的基本结构。
Java是一种出色的面向对象跨平台编程语言。在当今的软件领域几乎无处不见 Java语言活跃的身影,然而 Java语言究竟是什么,本节将从两个方面解释 Java的“身世”,Java既是一种编程语言,
也是一个软件平台。并且将从多个方面分析了
Java到底能为我们做什么。
0.1 Java技术
Java既是编程语言也是软件平台,作为编程语言的 Java有自己的一套机制实现源程序到处理器可执行程序间的过度与转换,作为软件平台的 Java
为程序员提供了编程接口和 Java虚拟机( JVM),
下面将依次介绍。
0.1.1 Java编程语言
Java作为一种高级语言具有许多优良特性,如跨平台、面向对象、分布式、
多线程、安全性、健壮性、简单性等。这些优良的特性在读者学习完本书后会有很好的体会。
在 Java语言中所有的源代码可以通过无格式的记事本编写,并保存为,Java文件,因为通过该扩展名,Java编译器会知道该文件是自己可以处理的文件。经过编译后的文件为,class文件,该文件是字节码文件,此时,class文件不能被处理器直接读取执行,必须通过虚拟机转换成二进制文件后才可以被处理器执行。图 Java程序的开发过程说明了上面叙述的内容。
0.1.2 Java语言平台
Java语言也是一种软件平台。平台可以理解为软件运行所需的软件或硬件环境,如操作系统可以看做软件平台,它提供了引用程序运行的环境,如在 Window XP操作系统上运行 Word字处理程序。当然如果从用户的角度看,操作系统其实是软件和硬件相结合的综合平台,因为操作系统对硬件的操作用户是看不见的,但是操作系统又确实管理并运行在硬件平台上。
而 Java语言作为软件平台,为 Java源程序编写和运行提供了完善的环境。但是该 Java提供的软件平台不和硬件发生任何关系,该平台是纯软件平台,运行在操作系统上,Sun
为不同的操作系统编写了相应的 JVM。作为软件平台的 Java
由两部分组成。
0.1.3 Java语言的功能
Java语言作为完善而强大的软件平台,每个版本的 Java平台都会提供如下的功能或组件。
( 1)开发工具
( 2)应用程序编程接口 (API)
( 3)用户接口工具集
( 4)集成类库
0.1.4 Java语言的优点
Java语言与其他语言如 C,C++,Delphi等语言相比,有它自己的优势,无论你学习 Java的初衷为何,Java语言确实使得你的程序更友好,并且需要较少的劳动。下面将介绍 Java语言的优点以证实上述的说法。
( 1)入门更快
( 2)代码量少
( 3)编码更容易
( 4)程序开发更快
( 5)避免平台依赖
( 6)程序的平台独立性
0.2 Windows下的,HelloWorld” 应用程序
到本节为止,笔者还没有介绍如何编写 Java程序。
当然程序的编写、编译和执行都需要一定的软件环境或编辑工具,所以在写 Java程序前需要读者做些准备工作,最基本的需要两个软件,一个是
Java的 JDK,一个是文本编辑工具。本节在 0.2.1
介绍这两个软件,在 0.2.2介绍创建一个 Java应用程序的步骤。
0.2.1 创建应用程序的软件环境
JDK是 Java开发工具集的意思,就是为开发 Java程序提供了一套工具,包括源程序的编译、调试、运行等工具,并提供了一些 API接口工具。读者可以到 Sun的网站下载 JDK并安装使用,这部分内容在第 1章再详细介绍,读者只需要知道开发 Java程序需要安装 JDK。
对于初学者而言,编写源程序的工具最好选择无格式的文本编辑器,Windows自带的记事本就是很好的 Java源程序编写工具。可以如图所示打开 Windows平台的记事本。
0.2.2 创建,HelloWorld” 应用程序的步骤
本节通过一个示例介绍开发 Java应用程序的步骤,该示例程序为 HelloWorld,它的功能很简单,就是在标准输出打印字符串,HelloWorld!” 。下面演示创建步骤。
1.创建源程序文件,该文件包含使用 Java语言编写的代码,
当然这些代码要符合 Java规范的。可以使用任意的文本编辑器来创建 Java源程序文件。
2.编译源程序,首先选择 【 开始 】【 运行 】 然后输入 cmd指令,则打开一个 DOS窗口。该窗口的目录提示为当前目录,
该目录通常是 WindowsXP的主目录。
3.运行源程序,在编译完程序后需要运行程序,运行程序很简单,在当前目录下输入 Java HelloWord,这里的
HelloWorld就是刚才编写的类的名字。
0.3 深入探讨,HelloWord” 应用程序
本节将详细介绍 HelloWorld源程序,在 0.2节读者已经看到如何编写,编译和执行 Java源程序 。 但是读者或许想知道源程序到底是如何运行 。 为了说明的方便这里再次列出该代码程序 。
1 /**
2 类 HelloWorld的功能是在标准输出
3 打印一行输出,HelloWorld!”
4 */
5 class HelloWorld{
6 public static void main(String[] args){
7 System.out.println("HelloWorld!");
//调用标准输出打印字符串
8 }
9 }
0.3.1 注释源代码
在程序中有这样的注释部分,如以下代码所示。
/**
类 HelloWorld的功能是在标准输出
打印一行输出,HelloWorld!”
*/
这是 Java的注释部分,其格式是 /**注释 */,程序会忽略掉注释的内容,Java还提供了另外两种注释,其格式分别是 //和 /*注释 */,具体如何使用可以参考第 1章 1.8节的内容。
0.3.2 实现类定义
下面代码的粗体字部分是类定义部分,其语法格式是 class
classname{code},其中关键字 class声明这是一个类,后面紧跟类名,用两个大括号括起来的部分是类定义的主体部分 。
1 /**
2 类 HelloWorld的功能是在标准输出
3 打印一行输出,HelloWorld!”
4 */
5 class HelloWorld{
6 public static void main(String[] args){
7
System.out.println("HelloWorld!"); //调用标准输出打印字符串
8 }
9 }
0.3.3 详解 main方法
使用 Java语言编写的应用程序必须包含一个 main()方法,它的格式如下所示:
public static void main(String[] args)
修饰符 public和 static的顺序可以互换,但是根据 Java惯例把
public放在前面,参数名 args不是固定的,开发者可以任意命名,
但是习惯上选择使用 args或 argv。
Main()方法是应用程序的入口,但一个程序执行时会首先指定类的 main()方法开始,再启动程序所需要的其他资源。 Main()方法接收一个字符串数据参数,实际上该参数提供了运行时系统向应用程序提供参数的途径。当然也可以不传递任何参数。如果一个应用程序可以读取一系列文件,则需要把这些文件的绝对路径告诉该程序。该参数是命令行参数,即在调用 Java ClassName时使用,方式为 Java ClassName args。
笔者在编译 HelloWorld程序时没有输入参数,该应用程序忽视了该参数但是读者一定要注意确实存在也允许调用这样的参数为应用程序使用。
0.4 常见编译错误
对于初学者而言,在 Java程序的开发、编译和执行过程中都会或多或少的遇到问题,如环境变量设置不正确,源程序的语法错误、语义错误,或在程序编译、运行期发生错误等。这些错误或问题如果不能得到适当的处理对于初学者是很大的障碍,本节将介绍几种常见的错误,以使读者在学习的过程中少走弯路。
0.4.1 环境变量设置错误
在编译并运行 Java应用程序之前,需要设置环境变量,其目的是使 Windows系统可以知道 DOS窗口中运行的 Java工具可执行程序,如 Javac源程序编译工具等。图所示说明 Windows操作系统无法发现
Javac编译程序,所以在源文件所在目录下编译源文件。 JDK环境变量的设置可以参考第 1.5节的内容。
0.4.2 语法错误
Java语言规范设计了语法规则,但是如果疏漏了部分内容,违反了 Java的语法规则,编译器会发出语法错误消息,该消息包含错误类型,发生错误的代码在程序中的位置(以该错误代码行为标识),并且在错误处标识一个,^” 。如图语法错误所示。
0.4.3 语义错误
编译器也会发生语义错误,编译器无法识别一个标识的语义,如发现一个为定义的变量,错误输入的系统类库的类的名字等。图语义错误示例了一个语义错误,笔者故意将语句 System的首字母改为小写,使编译器无法识别,从而输出语义错误。
0.4.4 运行时错误
运行期异常指在执行程序过程中发生的错误,如某个类没有实例化造成空指针,无法找到指定的类文件等。下面介绍三种初学者常见的运行时错误。
1.无法发现类文件
2.执行 Java工具时类名错误
3.无法发现 main()方法
0.5 本章习题
( 1)学完本章中,读者需要回答:
1.如何理解 Java是一门编程语言?
2.如何理解 Java是一个软件平台?
3.如何理解类的定义?
4.如何理解解释 main方法的作用?
5.列出 Java三种注释方式。
6.理解操作系统中环境变量 Path和 CLASSPATH的作用。
0.5 本章习题
( 2)编译如下程序,观察并解释输出结果:
( 3)注意事项:
1.相信本章的学习不会耗费初学者多少脑力,但是作为学习一门语言起步阶段,读者仅仅是看到 Java语言很小的一部分内容,所以希望读者可以轻松理解本章内容并建立学习 Java语言的信心,并保持这样的状态继续下面章节的学习。
2.本章要求读者初步理解 Java语言作为编程语言和作为软件平台的特性。
对于 0.3节深入探讨,HelloWord” 应用程序要用心体会。掌握一个应用程序的基本结构。