JAVA学习脚印 1:开篇——初识java语言及开发环境

JAVA学习脚印 1:开篇——初识java语言及开发环境

从本篇开始java学习之路。

本节要点:

1)了解java语言程序基本结构

2)了解java编译工具、文档工具的特点及使用



首先从HelloWorld开始,可以借助IDE 如eclipse 新建一个java工程(手动编写代码也没有问题,但是借助IDE将更方便),

然后新建一个类,类名为HelloWorld,输入代码如下:

package com.learningjava; 
  /** 
   * the first example to show hello world 
   * @version 1.1  2013-08-05 
  *  @author wangdq 
   */ 
  public class HelloWorld { 
          public static void main(String args[]) { 
                 System.out.println("Hello, World!");//Observe the tradition 
         } 
 } 

下面通过这个小例子,熟悉开发java的基础内容。文中的是在Linux下操作的,windows下有对应的命令,请查阅相关资料。



1) java中类是构建所有java应用程序和applet的构建块,java应用程序中的全部内容必须都放在类中。

我们建立的源文件 HelloWorld.java,通过编译后生成类文件 HelloWorld.class,真正执行的就是类文件。linux下利用tree 命令可以查看工程目录结构如下 :  

wangdq@wangdq:~/workspace/HelloWorld$ tree

.

├── bin

│   └── com

│       └── learningjava

│           └── HelloWorld.class

└── src

   └── com

        └── learningjava

            └── HelloWorld.java

6 directories, 2 files


事实上此时还没有生成真正的HelloWorld.class 文件,只有编译后才会生成真正的class文件。这里我们手动编译并运行(利用IDE编译、生成文档、JAR十分简单,下面不做介绍)如下:

wangdq@wangdq:~/workspace/HelloWorld$ cd src/

wangdq@wangdq:~/workspace/HelloWorld/src$ javac com/learningjava/HelloWorld.java

wangdq@wangdq:~/workspace/HelloWorld/src$ cd ../bin/

wangdq@wangdq:~/workspace/HelloWorld/bin$ java com.learningjava.HelloWorld

Hello, World!


其中: javac  用于编译源文件;java 用于执行类文件。



2)当程序执行时,java虚拟机(JVM)会去加载 HelloWorld这个类,它会去在这个类中寻找main方法。

为了代码能够执行,在类的源文件中必须包含一个main方法。

根据java语言规范,main方法必须声明为public。关键字public称为访问修饰符,它用于控制程序的其他部分对这段代码的访问级别。

在main方法前,若不声明public或者声明为其他关键字,将得到以下错误信息:

Error: Main method not found in class com.learningjava.HelloWorld, please define the main method as:

   public static void main(String[] args)

补充:在一个源文件中,只能有一个公有类,但可以有任意数目的非公有类;同时,每一个类可以有一个main方法,单个类中的main方法可以用于对类进行单元测试,这一特点带来 很  多 便 利。

 

3) java语言对大小写敏感。代码中紧跟class之后的是类名HelloWorld,类以.java作为拓展名。

 

4) java中允许使用包将类组织起来,包机制与c++中的命名空间很类似。

上述代码中第一行将我们编写的类放在包 com.learningjava中,以便与别人提供的代码库区分开来。使用包机制的主要原因是确保类名的唯一性。

另外,可以通过import关键字,导入一个特定的类或者整个包。

import语句应该位于源文件的顶部(但位于package语句的后面)。

例如showTime程序导入了java.util包中的Date类来显示了当前的时间:

package com.learningjava; 
import java.util.Date; 
 /** 
  * a simple program to show time 
  * @author wangdq 
 */ 
public class ShowTime { 
          public static void main(String[] args) { 
                 Date date = new Date(); 
           System.out.println("Time now is: "+date);//show the current time 
         } 
 } 


5) 文档生成

java中注释有三种注释方法。最常用的就是单行注释,使用//表示;另外可以使用/*和*/注释长段代码;还有一种注释以/**开始,以*/结束,这种注释可以帮助自动生成文档。这里我们利用JDK中的javadoc工具提取我们源文件中的注释来生成文档如下:

wangdq@wangdq:~/workspace/HelloWorld$ cd src

wangdq@wangdq:~/workspace/HelloWorld/src$ javadoc -d ../doc com.learningjava

Creating destination directory: "../doc/"

….

Generating ../doc/allclasses-frame.html...

Generating ../doc/allclasses-noframe.html...

Generating ../doc/index.html...

Generating ../doc/help-doc.html...

其中javadoc工具命令格式为: javadoc -d docDirectory nameOfPackage

我们的包名是 com.learningjava ,将生成的文档放在doc目录,则执行的命令是:

javadoc -d  ../doc com.learningjava 。进入doc目录,找到index.html,查看文档效果如下:

JAVA学习脚印 1:开篇——初识java语言及开发环境_第1张图片



6)应用程序打包

当我们编写完应用程序时,肯定希望将应用打包成一个单独文件(就好比windows下exe文件一样)而不是一个含有大量类文件的目录,java中归档文件JAR就是用于将应用程序打包。

打包一个应用程序通常有四个步骤,即编译、编写清单文件、创建JAR、测试JAR. 清单文件即MANIFEST.MF,可以编写manifest.txt,然后由jAR工具自动生成。

尤其要注意manifest.txt文件必须在结束时换行,而且冒号必须紧接Class关键字。我们通过给我们的HelloWorld创建JAR包以及查看其中的文件来讲述这些内容。在linux下运行如下命令:

Hello, World!

wangdq@wangdq:~/workspace/HelloWorld/bin$ cat > manifest.txt (创建清单文件)

Main-Class: com.gdut.HelloWorld


wangdq@wangdq:~/workspace/HelloWorld/bin$ jar -cvmf manifest.txt Hello.jar com (创建JAR)

added manifest

adding: com/(in = 0) (out= 0)(stored 0%)

adding: com/gdut/(in = 0) (out= 0)(stored 0%)

adding: com/gdut/HelloWorld.class(in = 435) (out= 297)(deflated 31%)

wangdq@wangdq:~/workspace/HelloWorld/bin$ jar -tf Hello.jar (查看JAR文件列表)

META-INF/

META-INF/MANIFEST.MF

com/

com/gdut/

com/gdut/HelloWorld.class

wangdq@wangdq:~/workspace/HelloWorld/bin$ java -jar Hello.jar (执行JAR)

Hello, World!

wangdq@wangdq:~/workspace/HelloWorld/bin$ jar -xf Hello.jar   (解压JAR包)

wangdq@wangdq:~/workspace/HelloWorld/bin$ ls

com  Hello.jar  manifest.txt  META-INF

wangdq@wangdq:~/workspace/HelloWorld/bin$ cat ./META-INF/MANIFEST.MF (清单文件)

Manifest-Version: 1.0

Created-By: 1.7.0_25 (Oracle Corporation)

Main-Class: com.gdut.HelloWorld

 

 

至此,通过HelloWorld程序我们已经初步了解了java程序的特点,以及手动编译和执行java程序、生成java文档、生成JAR的内容。



你可能感兴趣的:(java基础)