第一篇 Java语言语法基础——面向过程知识
第1章 Java技术概览
Java是一种出色的面向对象跨平台编程语言。在当今的软件领域几乎无处不见Java语言活跃的身影,然而Java语言究竟是什么?本章将从两个方面解释Java的“身世”——Java既是一种编程语言,也是一个软件平台。本章还将从多个方面分析Java到底能为我们做什么。
本章重点:
□ Java语言的功能和特点。
□ 学习创建简单的Java程序。
□ 学会处理常见的Java编译错误。
1.1 Java技术
Java既是编程语言也是软件平台,作为编程语言的Java有一套自己的机制,实现源程序到处理器可执行程序间的过渡与转换;作为软件平台,Java为程序员提供了编程接口和Java虚拟机(Java Virtual Machine,JVM),下面将依次介绍。
1.1.1 认识Java语言
Java作为一种高级语言具有许多优良特性,如跨平台、面向对象、分布式、多线程、安全性、健壮性、简单性等;这些优良的特性在读者学习完本书后会深有体会。
在Java语言中所有源代码都可以通过无格式的记事本编写,并保存为.java文件,因为通过该扩展名,Java编译器会知道该文件是自己可以处理的文件。经过编译后的文件为.class文件,该文件是字节码文件,此时.class文件不能被处理器直接读取执行,必须通过虚拟机转换成二进制文件后,才可以被处理器执行。图1-1是Java程序的开发过程,整个过程说明了上面叙述的内容。
图1-1 Java程序的开发过程
Java是跨平台的高级编程语言,这里的平台是指操作系统平台,如Windows、UNIX、Mac、Linux等。使用Java语言编写的程序一次编译就可以在所有上述平台上运行,就是因为有Java虚拟机的存在。Sun公司(已被Oracle公司收购)提供了在各种操作系统平台上运行安装的Java虚拟机,Java虚拟机可以执行.class文件。这样也就实现了众所周知的“一次编译,随处运行”的理想。图1-2演示了在不同平台上通过Java虚拟机执行Java程序的过程,从中可以清楚地理解Java虚拟机的作用。
图1-2 不同平台上通过JVM执行Java程序
注意
图1-2中的“HelloWorld.class”也代表一个应用程序,应用程序本身就是经过打包的.class文件的集合。并且在不同的平台上安装的JVM是不同的,需要到官方网站上下载适合自己机器操作系统平台的虚拟机。
1.1.2 认识Java平台
Java语言也是一种软件平台。平台可以理解为软件运行所需的软件或硬件环境,如操作系统可以看作软件平台,它提供了应用程序运行的环境,如在Windows XP操作系统上运行Word字处理程序。当然如果从用户的角度看,操作系统其实是软件和硬件相结合的综合平台,因为操作系统对硬件的操作该用户是看不见的,但是操作系统又确实管理并运行在硬件平台上。
而Java语言作为软件平台,为Java源程序编写和运行提供了完善的环境。但是该Java提供的软件平台不与硬件发生任何关系,该平台是纯软件平台,运行在操作系统上。不同的操作系统编写了相应的JVM。作为软件平台的Java由两部分组成:
□ Java虚拟机(Java Virtual Machine,JVM):Java虚拟机是Java软件平台的基础,基于不同操作系统的平台对应不同的虚拟机。
□ Java应用编程接口(Java API):API是一套编写好的软件组件的集合,这些API按照功能通过包(package)来提供,包就是一系列具有相似功能的类和接口的集合。图1-3是Java虚拟机和应用编程接口与各种操作系统的软件层次关系。
图1-3 Java API和Java虚拟机
说明
在操作系统上加一层Java虚拟机,使得Java实现了平台的独立性,但是这也使得Java程序比C或C++语言编写的程序要慢一点,但是随着编译器的改进以及虚拟机技术的成熟,二者之间的差距会越来越小。
1.1.3 Java语言的功能
Java语言作为完善而强大的软件平台,每个版本的Java平台都会提供如下的功能或组件。
1.开发工具
开发工具提供了诸如编译、执行、调试、文档化等功能,使得开发人员可以使用这些工具来编译、调试自己的程序。初学者经常使用的Java工具有Javac源程序编译工具、Java程序执行工具和Javadoc源程序的文档化工具等,具体的功能将在本章后面介绍。读者将会了解如何使用Javac和其他Java工具。
说明
Javac编译工具其实就是在DOS下运行的一个命令,而DOS命令不区分大小写,所以本章有时候在DOS窗口中输入命令的时候,也直接说是javac命令。
2.应用编程接口(APⅠ)
Java API提供了Java语言的核心功能,开发人员可以直接调用这些方法或实现其中的接口来满足自己程序设计的需要,如需要对数据进行排序或搜索,Java提供了具体的类来实现,开发人员只要了解这些类的基本功能和类中的方法就可以调用这些功能。读者可以翻阅JDK的HTML文档来搜索自己需要的功能。
3.用户接口工具集
其实这个工具集就是提供如何编写用户接口程序(即GUI程序),为应用程序提供一个友好的用户界面,任何复杂的程序界面都可以通过该工具集中的类或接口实现,具体请参看本书的第20章。
4.集成类库
该类库提供了集成工具来完成复杂的行为,如Java为访问数据库提供了JDBC API;为实现远程方法提供了Java RMI,该方法实现了对网络远端的Java程序的调用,是Java实现分布式计算的重要基础。
1.1.4 Java语言的优点
Java语言与其他语言(如C++、Delphi、C#等语言)相比,有自己的优势,无论你学习Java的初衷如何,Java语言确实使你的程序更友好,并且减少了你的工作量。下面将介绍Java语言的优点以证实上述说法。
1.入门更快
因为Java语言是一门强大的面向对象语言,所以只要理解面向对象技术(符合人类处理事情时的思维方式),就很容易学习这门语言。如果读者已经学习过C++语言或C语言,将更容易进入Java世界。
2.代码量少,开发速度更快
同C++语言比较,同样的程序使用Java语言编写只需要较少的类和方法。Java语言比C++语言简单,相同功能的程序需要更少的代码行。
3.编码更容易
Java语言提供良好的编码规范,使得Java语言编写的程序具有统一的“外表”,并且Java支持垃圾回收机制(GC),所以不会像C++中那样出现内存泄漏的问题,这样开发人员就可以集中精力编写程序所需的类,而不用考虑何时、如何回收这些类对象了,只要在需要时创建对象即可,其他操作都由GC处理。Java的面向对象特性、JavaBeans组件架构和功能强大的API,都使得开发人员可以容易地重用经过严格测试的代码,这些API的使用也减少了程序中Bug的数量。
4.避免平台依赖,程序的平台独立性
Java语言编写的类库可以在其他平台上的Java应用程序中使用,而不像C++语言必须依赖于Windows平台。Java源程序被编译成字节码,字节码通过操作系统平台上的JVM来解释而获得运行,这样使用Java语言编写的程序不依赖于特定的平台,实现“一次编写,随处运行”。
1.1.5 Java分布式应用和多线程的特点
本节讲述Java程序的分布式和多线程的特点。分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同的主机上处理。
Java支持客户机/服务器计算模式,因此它支持这两种分布。对于数据分布,Java提供了一个叫做URL的对象,利用这个对象,可以打开并且访问具有相同URL的对象,访问方式与访问本地文件系统相同。对于操作分布,Java的Applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。有关分布式的原理如图1-4所示。
图1-4 分布式示意图
Java提供了一整套网络类库,开发人员可以利用这些类库进行网络程序设计,方便地实现Java的分布式特性。
线程是操作系统的一种新概念,线程又被称作轻量进程,是比传统进程更加小的,并且可以并发执行的单位。C和C++采用单线程系统结构,而Java提供了多线程的支持。
Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行,负责必要的无用单元回收、系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序的开发。
Java提供了一个Thread类,由它负责启动、运行、终止线程,并且可以检查线程状态。Java线程还包括一组同步原语,这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便地写出支持多线程的应用程序,从而提供程序执行的效率。Java的多线程在一定程度上受运行时所在平台的限制,如果操作系统不支持多线程,那么Java程序的多线程特性就不能表现出来。
1.1.6 Java程序的可靠性、安全性
本节将详细讲述Java的可靠性和安全性。Java最初的设计目的是针对电子类消费品中的应用,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠的因素,可以防止许多编程错误。
它的可靠性和安全性表现在如下几点:
□ Java是强类型的语言,要求显式的方法声明。这保证了编译器可以发现方法调用错误,保证程序更加可靠。
□ Java不支持指针,这杜绝了内存的非法访问。
□ Java的自动单元收集功能,可以防止内存“丢失”等动态内存分配导致的问题。
□ Java解释器运行时实施检查,可以发现数组和字符串访问的越界问题。
□ Java提供了异常处理机制。
由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载执行程序就非常危险。Java通过自己的安全机制,防止了病毒程序的产生,以及下载程序对本地系统的威胁破坏。
当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后Java解释器将决定程序中类的内存布局。随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。上述几种机制结合起来,使得Java成为安全的编程语言。
1.1.7 Java小程序和应用程序
用Java可以写两种类型的程序:小程序和应用程序。小程序就是嵌入在网页文档中的Java程序,而应用程序就是在命令行中运行的程序。对Java而言,对小程序的大小和复杂性都没有限制。事实上,Java小程序有些方面比Java应用程序更加强大。目前,由于Internet的通信速度有限,因此大多数小程序规模较小。小程序和应用程序之间的技术差别就在于运行环境。
Java应用程序运行在最简单的环境中,它的唯一外部输入就是命令行参数。而Java小程序需要来自Web浏览器的大量信息,它需要知道何时启动、何时放入浏览器窗口、何处和何时激活与关闭等。由于这两种不同的执行环境,小程序和应用程序的最低要求不同。
1.2 Windows下的“HelloWorld”应用程序
到本节为止,笔者还没有介绍如何编写Java程序。当然程序的编写、编译和执行都需要一定的软件环境或编辑工具,所以在写Java程序前需要做些准备工作,最基本的即需要两个软件,一个是JDK(Java开发工具集),另一个是文本编辑工具。在1.2.1节将介绍这两个软件,在1.2.2节将介绍创建一个Java应用程序的步骤。
1.2.1 创建应用程序的软件环境
JDK即Java开发工具集,就是为开发Java程序提供了一套工具,包括源程序的编译、调试、运行等工具,并提供了一些API接口工具。读者可以到Oracle网站下载JDK并安装使用,这部分内容在本章的后面会有更详细的介绍,这里读者只需要知道开发Java程序需要安装JDK即可。
对于初学者而言,编写Java源代码的工具最好选择无格式的文本编辑器,Windows自带的记事本就是很好的Java源程序编写工具。可以打开Windows平台的记事本,如图1-5所示。单击“开始”|“运行”命令,在弹出的“运行”对话框内输入“notepad”命令,然后单击“确定”按钮就会打开记事本。
图1-5 打开Windows平台的记事本工具
1.2.2 创建“HelloWorld”应用程序的步骤
【实例1-1】本节通过一个实例介绍开发Java应用程序的步骤,该实例程序为HelloWorld.java,它的功能很简单,就是在标准输出端打印字符串“HelloWorld!”。下面演示创建步骤。
说明
本例只是介绍Java程序创建、编译、运行的整个流程,并不需要读者亲自动手,读者可以在看完第2章的JDK安装和设置后再来创建本例练习。
1.创建源程序文件
该文件包含使用Java语言编写的代码,当然这些代码要符合Java规范。可以使用任意的文本编辑器来创建Java源程序文件。实例程序如下所示。
01 /** 02 HelloWorld类的功能是在标准输出端 03 打印一行输出“HelloWorld!” 04 */ 05 public class HelloWorld{{ //定义类 06 public static void main(String[] args){{ //主方法 07 System.out.println(“HelloWorld!”); //调用标准输出打印字符串 08 } 09 }
【代码说明】
□ 第1~4行是Java的注释语句,这里实现了多行注释的效果。
□ 第5行是类的标识class。
□ 第7行是输出语句。语句后面又使用了“//”表示Java的单行注释。
把在文本编辑器(笔者使用Windows的记事本)中编写的程序另存为“HelloWorld.java”文件,保存源文件为.java文件的过程如图1-6所示。
图1-6 保存源文件为.java文件
注意
保存的文件名一定为“HelloWorld.java”,保存类型选择“文本文档(*.txt)”,而编码选择ANSI,单击“保存”按钮,然后退出记事本编辑器。记住保存目录,在编译时需要该目录来指定源文件所在的位置。
2.编译源程序
首先选择“开始”|“运行”命令,然后在弹出的“运行”对话框内输入“cmd”命令,则打开一个DOS窗口。该窗口的目录提示为当前目录,该目录通常是Windows XP的主目录,如图1-7所示。
图1-7 DOS窗口
为了编译文件,需要改变当前目录到源文件存放的目录下,如源文件在C盘的javacode目录下,则需要在当前DOS提示符下输入“cd C:\javacode”,再按Enter键,则当前的DOS提示符会变为C:\javacode。但是如果源文件目录与当前DOS目录不在同一个磁盘上,如在D盘,则需要首先输入“D:”,再按Enter键,则DOS提示符会进入D盘,再输入源文件的路径,按Enter键则进入源文件目录。图1-8是切换到源文件目录的状态。
图1-8 切换到源文件目录
为了检验是否进入了源文件所在目录,在图1-7所示的目录下输入“dir”命令,发现了刚才保存的HelloWorld.java文件。图1-9是查看当前目录下的文件。
图1-9 查看当前目录下的文件
现在可以编译源程序了,在图1-7所示的当前目录下输入命令“javac HelloWorld.java”来编译源文件,一旦编译成功,则在当前目录下会生成HelloWorld.class文件,在DOS提示符下输入“dir”命令查看,会发现新生成的.class文件。图1-10是查看.class文件的效果。
图1-10 查看.class文件
说明
调用javac命令的前提是已经安装了JDK并且设置了环境变量,将JDK提供的工具命令告知Windows系统。直到Windows系统知道到哪里寻找用户输入的javac命令。JDK环境变量的设置请参考第2章中的设置,为了节约篇幅这里不再赘述。
3.运行源程序
在编译完程序后需要运行程序,运行程序很简单,在当前目录下输入“java HelloWorld”命令,这里的HelloWorld就是刚才编写的类的名字。执行结果如图1-11所示。
图1-11 HelloWorld程序执行结果
读者如果看到如图1-11所示的执行结果,说明HelloWorld程序执行成功了。在本例的源程序中,读者或许有很多疑惑,如main()函数起什么作用?该函数的参数又如何使用?为什么可以直接调用System.out.println(“HelloWorld”)?等,这些疑惑将在下一节详细解释。
1.3 深入探讨“HelloWorld”应用程序
本节将详细介绍HelloWorld源程序,在1.2节读者已经看到如何编写、编译和执行Java源程序。但是读者或许想知道源程序到底是如何运行的。为了更好地说明,这里再次列出该代码程序。
01 /**
02 HelloWorld类的功能是在标准输出端
03 打印一行输出“HelloWorld!”
04 */
05 public class HelloWorld{
06 public static void main(String[] args){
07 System.out.println("HelloWorld!"); //调用标准输出打印字符串
08 }
09 }
该源程序包括三个部分:程序注释、类定义和main()方法。通过对这三部分的说明,读者应该理解程序HelloWorld的基本执行过程。至于更细节的内容,后面的章节会继续讲解。
1.3.1 注释源代码
在程序中有这样的注释部分,如以下代码所示:
01 /** 02 HelloWorld类的功能是在标准输出端 03 打印一行输出“HelloWorld!” 04 */
这是Java的注释部分,其格式是“/**注释*/”,程序会忽略注释的内容。
良好的注释可以增强程序的可读性和可维护性,读者应该养成注释的习惯。Java支持三种注释方式。
1)双斜线“//”在程序中表示注释,注释的字句不会编译,即编译器会略过该行。如:
System.out.println("Hello Java!!!"); //在DOS窗口打印一行字符:Hello Java!!!
“//”表示单行注释,一般用在代码行的后面。
2)另一种注释方式实现多行注释,使用“/*多行注释内容*/”这种方式。如:
01 /*定义一个类 02 该类是示例程序,程序提供了一个入口,执行结果是在DOS窗口打印一行字符串 03 “Hello Java!!!” 04 */
3)内嵌式文档注释。该类注释多用在集成开发环境下,如JBuilder、Eclipse等,其方式如下:
01 /** 02 注释内容 03 */
该注释可以出现在类和接口的声明前、各种方法(函数)的定义前。在集成开发环境中,只要输入“/**”,再按回车键,就会自动形成注释的样式。
1.3.2 实现类定义
下面代码的粗体字部分是类定义部分,其语法格式是class classname{code},其中关键字class声明这是一个类,后面紧跟类名HelloWorld,用两个大括号括起来的部分是类定义的主体部分。
01 /** 02 HelloWorld类的功能是在标准输出端 03 打印一行输出“HelloWorld!” 04 */ 05 public class HelloWorld{ //定义类 06 public static void main(String[] args){ //主方法 07 System.out.println("HelloWorld!"); //调用标准输出打印字符串 08 } 09 }
【代码说明】上述代码中第1~4行为注释代码,第5行定义了一个名为HelloWorld的类,在第6~8行定义类的主方法,该方法于第7行实现打印字符串“HelloWorld!”。
具体的类介绍可以参考第7章,这里读者只需要理解该应用程序从一个类定义开始即可。
1.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程序时没有输入参数,该应用程序忽视了该参数。但是读者一定要注意确实存在这样的参数,也允许调用这样的参数为应用程序所用。
1.4 常见疑难解答
对于初学者而言,在Java程序的开发、编译和执行过程中,都会或多或少遇到问题,如环境变量设置不正确,源程序的语法错误、语义错误,或在程序编译、运行期发生错误等。如果这些错误或问题不能得到适当的处理,那么会对初学者造成很大的障碍。本节将介绍几种常见的错误,以使读者在学习过程中少走弯路。
1.4.1 环境变量设置错误
在编译并运行Java应用程序之前,需要设置环境变量,其目的是使Windows系统可以知道DOS窗口中运行的Java工具可执行程序,如Javac源程序编译工具等。图1-12说明Windows操作系统无法发现Javac编译程序。
图1-12 无法找到Javac可执行程序
当然如果已经安装了JDK,则可以在DOS提示符下输入Javac的绝对路径,通过绝对路径来识别该命令的位置。如果采用JBuilder 9自带的JDK,那么目录为C:\JBuilder9\jdk1.5\bin。也可以在源文件的当前路径下输入“C:\JBuilder9\jdk1.5\bin\Javac HelloWorld.java”。显然这种方式很烦琐,因为每次编译源文件都要输入一串路径和命令信息。读者可以通过2.1节掌握如何设置JDK环境变量。
1.4.2 语法错误
Java语言规范设计了语法规则,但是如果疏漏了部分内容,违反了Java的语法规则,编译器会发出语法错误消息,该消息包含错误类型、发生错误的代码在程序中的位置(以该错误代码行号为标识)等,并且在错误处标识一个“^”。出现语法错误如图1-13所示。
图1-13 语法错误
在HelloWorld.java源程序中将语句System.out.println(“HelloWorld!”)后的分号去掉,使得程序语句缺少结束标志,这就违反了Java语法规则。在编译期发生任何类型的错误都会导致无法生成.class文件。所以此时需要读者仔细分析错误类型,细致检查程序中的错误,直到源程序顺利通过编译。
1.4.3 语义错误
编译器也会发现语义错误。编译器无法识别一个标识的语义,如发现一个未定义的变量、错误输入了系统类库的类名等。图1-14演示了一个语义错误,笔者故意将语句System的首字母改为小写,使编译器无法识别,从而输出语义错误。
图1-14 语义错误
注意
Java程序区分大小写。
1.4.4 运行时错误
运行时错误指在执行程序过程中发生的错误,如某个类没有实例化而造成空指针、无法找到指定的类文件等。下面介绍三种初学者常见的运行时错误。
1.无法发现类文件
在用户编译或执行Java程序时,由于种种原因可能输入了不正确的类名,使得编译器或虚拟机无法发现该文件所在位置。类文件名输入错误如图1-15所示。
图1-15 类文件名输入错误
在图1-15中,笔者想运行HelloWorld程序,但是输入了错误的类名HelloWorldd,所以执行系统抛出Java.lang.NoClassDefFoundError错误。
使用Java工具会启动Java虚拟机,此时系统会首先在当前目录下寻找类文件,如果没有则默认到操作系统的系统环境变量ClassPath中搜索,所以读者也可以在该变量中设置需要编译的类文件所在的目录。
注意
变量的设置方式可以参考2.1.2节设置ClassPath环境变量。
2.类名输入错误
对于初学者而言,很容易出现的一个错误是使用Java执行程序时,往往会输入类文件名如HelloWorld.class,这是不允许的,此时会抛出异常,类名输入错误如图1-16所示。
图1-16 类名输入错误
注意
在调用Java工具执行程序时,需要在其后输入类名而不是类文件名,如输入Java HelloWorld才是正确的方式。
3.无法发现main()方法
在1.3节已经知道,任何Java应用程序执行的类中必须有main()方法,该方法是程序的入口,以后才可以继续调用程序所需的各种其他资源。如果在类中没有定义main()方法或该方法书写错误,都会导致如图1-17所示的缺少main()方法错误。
图1-17 缺少main()方法错误
笔者在HelloWorld.java源程序中修改了main()方法的名字,继续编译并执行该程序,虚拟机将无法装载该类,因为无法发现类HelloWorld的程序入口。
1.4.5 初学者如何选择Java参考书
一个程序员如果没有半米多高的技术书堆,就没有人会认为他是真正的程序员。如何从眼花缭乱的开发丛书中找到适合自己的书,也是一门学问。
书评:比较成功的书籍在上市的前后,都会有名家撰写的书评,这些书评包括对该书积极一面的评价,也有对书中内容的指摘,通过正反两面的对照,相信可以帮助初学者做出购买的选择。
道听途说:口碑的重要性在现代社会中日益突出,如果真是一本好书,可能会在不同场合,听到不同的人对它给予相同的赞许,这就是该书的价值了。
不要忘记旧书摊:这不是在鼓励怀旧,而事实是老书的质量和作者的写书态度实在是严谨又端正得多,这就是老书的好处。对于多次印刷的书,也是值得考虑购买的对象,多版本说明作者对该书的精益求精和新技术的更新,同时也反映了该书在市场的受欢迎程度。
预先阅览:最好的当然是自己能够预先浏览,从朋友那里借也好,在网上看看电子版也好,觉得自己喜欢,或是觉得有收藏的价值,再进行购买。
1.5 小结
相信本章的学习不会耗费初学者多少脑力,但是作为学习一门语言的起步阶段,读者仅仅是看到Java语言的冰山一角,所以希望读者在轻松理解本章内容后能建立学习Java语言的信心,并保持这样的状态继续下面章节的学习。
本章要求读者初步理解Java语言作为编程语言和作为软件平台的特性。对于1.3节深入探讨“HelloWorld”应用程序要用心体会,掌握一个应用程序的基本结构。因为本章还没有讲解环境配置等关键设置,所以并不建议读者动手学习,只需要了解Java程序从创建到执行的流程,以及Java程序中一些小的关键代码等即可。
1.6 习题
一、填空题
1.Java虚拟机的英文全称是______________,简称是______________。
2.常见的Java注释格式有3种:______________________、______________________和______________。
3.使用Java语言编写的应用程序必须包含一个______________方法。
二、上机实践
1.创建一个名为WelcomeJava的类,在该类中输出“欢迎进入学习Java之门”的字符串,并对代码每一行进行注释。
【提示】关键代码如下:
public static void main(String[] args) { /* 从控制台输出信息 */ System.out.println("欢迎进入学习Java之门"); }
2.创建一个名为LoginOut的类,在该类中实现输出如图1-18所示的效果。
图1-18 运行效果
【提示】关键代码如下:
public static void main(String[] args) { /*从控制台输出信息*/ System.out.println("************************************\n"); System.out.println("1. 登录系统"); System.out.println("2. 退出\n"); System.out.println("************************************"); }