1.Java程序设计语言

Java程序设计语言是一种高级语言,它用我们熟悉的字词、句等表述需要计算机为我们做的事情。大多数程序设计语言,都要经过编译或解释以便能在计算机上运行。

在Java程序设计语言中,所有源代码写在一个扩展名是.java的纯文本文件里。这些源文件通过Java编译器(javac.exe)编译成.class文件。.class文件不包含本地处理器的代码,而包含Java虚拟机机器语言代码,它是一种在Java平台上被解释器解释的平台无关代码,称之为“字节码”。

Java执行工具(java)用来运行.class文件,它是一个解释程序,又称“Java虚拟机”,它负责解释分解并执行每个Java字节码指令。下图反映这个过程:

Java虚拟计算机,可以认为Java字节码像机器指令码一样。任何Java解释器,不论是开发工具的,还是运行applet的web浏览器,都可认为是运行的Java虚拟计算机。Java虚拟机在许多不同的操作系统都是有效的,所以同样的.class文件有能力运行在Windows、Solaris、 Linux、MacOS等多种操作系统下,如图: 

2.Java平台 

平台是程序运行的硬件和软件环境。我们已经了解的一些流行平台像Windows、Linux、Solaris和MacOS等。多数平台被描述成操作系统与硬件的复合体。Java平台不同于其它平台,它是一个纯软件平台,在其它硬件基础平台上运行,如下图:

Java平台有两个部分:

Java虚拟机(Java VM)

Java应用程序接口(Java API)

  Java虚拟机是Java平台的基础,是在各种不同的硬件基础平台上的接入口。Java字节码程序就是由它解释并执行,同时提供程序的运行环境。

  Java API是一个巨大的,提供许多有用功能的,软件组成的集合体。Java API被组合在库中,由相关的类和接口构成,这些库称做“包”。下图表示运行在Java平台上的程序。图中显示,Java API和虚拟机把程序与硬件隔离开,Java程序通过API在VM上运行。 

3.Java术语

JVM - java虚拟机

  JVM将 java 字节码程序翻译成机器语言。然后由计算机执行。

JRE - java 运行环境

  JRE 是由JVM 和 java platform 核心类以及相关支撑文件组成。

API - Application programming interface.

  API 是rules(syntax) :在java技术中如何编程。

  API包括数百个类——公司预先编好的代码,你可以在编程中充分利用它们的功能。

4.Java虚拟机

JVM提供以下定义:

  • 指令集(Bytecodes 是JVM的机器指令)。

  • 寄存器组

  • 类文件格式

  • 垃圾回收“堆”(实现内存的动态分配和自动回收)

  • 内存区域 

Java程序执行时,首先虚拟机对要执行的class文件装载,然后对字节码进行验证,最后用解释器对字节码解释执行,下图是jvm的逻辑构造:

加载代码 — 类装配器

加载程序运行所需要的所有的类。类装配器将本地文件系统的类的名字空间与从网络资源来的类的名字空间分开。这样就限制了特洛伊木马程序,因为本地类总是首先加载。

一旦所有的类被加载,可执行程序的内存布局就被确定了。内存地址被分配给符号引用表,查找表被建立。由于内存的布局出现在运行时刻,防止了对于代码域的未授权的访问。

验证代码 — 字节码验证器

java代码在你的机器上执行前要经过几个测试。字节码验证器测试代码段的格式,检查代码段是否有非法代码(伪造指针,对象上的非法存取,试图改变对象类型等)。

所有网络来的类文件都要经过字节码验证。

执行代码 — 解释器

5.建立Java平台和开发环境

1.建立Java平台

Java平台的建立只需安装JDK或JRE就可以完成。JRE是Java运行环境(Java Runtime Environment)缩写,如果仅仅用来运行Java程序,仅安装JRE就可以了。如果需要开发和运行Java程序,就必须安装JDK。

第一步:下载JDK。

第二步:运行JDK安装程序。

以上两步比较简单,不赘述

第三步:设置JDK环境变量。

通常JDK安装完成后需要设置Java环境变量PATH和CLASSPATH。

(1).PATH变量

  是操作系统用于查找可执行文件的目录集,格式如下:

     PATH=<PATH原有的内容>;<JDK安装目录>\bin

JDK安装完成以后需要将开发工具的存放目录加入到PATH变量中,使得在编译或执行Java程序时操作系统能够找到编译程序javac或解释程序java。

(2).CLASSPATH变量

是Java编译器编译用于查找相关类或接口的目录集,也是Java解释器用于查找相关类或接口的目录集,格式如下:

 CLASSPATH=<class文件目录>或<jar文件路径名>[;…]

这里< jar文件路径名>由每个jar文件及存放它的目录名组成,例如

    D:\Program Files (x86)\Java\jdk1.7.0_07\lib\dt.jar

多个路径名之间用“;”分隔。

在Windows系统下设置环境变量可以从控制面板的系统设置添加,或者“计算机”->“属性”->”高级系统设置”->”环境变量”

这里以JDK1.7为例介绍环境变量的设置过程,假设JDK安装的安装路径是

D:\Program Files (x86)\Java\jdk1.7.0_07

在命令行中输入下面命令:

java -version

显示下面的版本信息,说明配置成功!

2、建立Java开发环境

Java平台建立(即安装JDK)完成后就可以运行或开发Java程序了。JDK提供了基本的Java开发工具,这些工具放在JDK安装目录下的bin目录。但是,对于复杂大型的Java程序是不能满足要求,需要专门的集成开发工具。下面分别介绍JDK提供主要工具软件,并对常用的集成开发工具做简单介绍。

(1)JDK开发工具 

JDK开发工具包括工具和实用程序,可帮助开发、执行、调试和保存以 Java 编程语言编写的程序。在这些程序中主要工具程序有:编译工具Javac,解释工具Java,文档生成工具,Java平台调试工具等。

Java编译器,将Java源程序编译成字节码,生成class文件。在bin目录下,文件名称是javac.exe。命令格式:

   javac [选项] 源文件 [类] [ @argfiles ]

其中,

选 项 –- 编译参数。

源文件 -– 一个或多个需要编译的java源程序文件。

类 –- 一个或多类。

@argfiles -– 参数文件。 

使用示例:编译Java源程序helloworld.java。 

Java解释器,直接从类文件执行Java应用程序,即application。命令格式:

java [选项] 类 [参数… ]

java [选项] -jar jar文件 [参数… ]

javaw [选项] 类 [参数… ]

javaw [选项] -jar jar文件 [参数… ]

其中:

选项        -– 运行参数。

类           -– 被调用的类的名称。

-jar jar文件 -– 被调用的jar文件名称。

参数         -– 传送给main方法的参数串。

使用示例:执行Java类hello.class

(2)Java集成开发工具 

集成开发环境(简称IDE及Integrated Development Environment的缩写)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫做集成开发环境,可以独立运行,也可以和其它程序并用。JAVA的集成开发环境很多,比如 JCreator,NeBeans,Java Studio,JBuilder,Java Workshop,JDeveloper,Visual Age for java,Eclipse等等,这里简单介绍netbeans和eclipse。 

NetBeans IDE

NetBeans是一个全功能的开放源码Java IDE,可以帮助开发人员编写、编译、调试和部署Java应用,并将版本控制和XML编辑融入其众多功能之中。NetBeans 可支持Java 2平台标准版(J2SE)应用的创建、采用JSP和Servlet的2层Web应用的创建,以及用于2层Web应用的API及软件的核心组的创建。此外,NetBeans 最新牒还预装了两个Web服务器,即Tomcat和GlassFish,从而免除了繁琐的配置和安装过程。所有这些都为Java开发人员创造了一个可扩展的开放源多平台的Java IDE,以支持他们在各自所选择的环境中从事开发工作,如Solaris、Linux、Windows或Macintosh。 

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。Eclipse的本身只是一个框架平台,众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

Eclipse的运行需要有Java的虚拟机存在,在编译java的时候不需要额外的编译器。自身就能对java源代码进行编译。由于Eclipse是使用java编写的,所以在跨平台上做的很好,常用的平台Eclipse都能运行。

Eclipse最大的特点使用插件满足使用者根据自己的需要对其进行扩展,且Eclipse源代码进行开放,使插件的数量不断增长,其中不乏一些非常优秀的插件。也使得Eclipse的功能大大增强,使用Eclipse作为基础来开发的软件也很多。