分类: Java
2011-02-20 01:19:46
Java诞生于1995年5月23号,JDK(Java Development Kits)1.0a2版本正式对外发布。
Java的架构主要可以分为三部分:Java语法、Java执行环境、Java丰富的API。
(1)Java语法:
和C++类似,Java也是基于C发展起来的。Java改进了C++中的一些缺点,并增加了一些优点,让Java更简单、更易学、设计的程序更强大更健壮。
Java去掉了C的指针,保证系统的安全和程序的健壮;Java也没有C常用的预处理器(preprocessor),类似#define、#ifdef、常量声明、#include都不能使用了,也没有了头文件(.h);Java也没有C++中的多重继承,不让对象和对象之间的关系变得复杂。
Java新增了资源回收(Garbage Collection)、异常处理(Exception)、新修饰符(abstract/synchronized/native/final等),几乎都是为系统和程序的安全性考虑的。
Java不论在何种平台上,基本数据类型的大小是不变的。
(2)Java执行环境
Java不像C语言,最后被编译成所在平台的机器语言后再执行,而是先编译成一个中立的字节码,然后到装有Java虚拟机(JavaVirtualMachine JVM)的硬件上执行,这也是Java程序能跨平台的主要原因。
JVM目前已经有多种平台版本,例如Solaris、Linux、Windows、Macintosh等,还有针对小型系统设计的JVM,例如PDA、手机、JavaCard等等。
整个Java执行环境统称为JRE(JavaRunningEnvironment),除了包括JVM之外,还有给浏览器使用的Java Plug-in。
(3)Java API
Java应用程序能够简单快速完成开发,又能在各种硬件平台上执行,最大的功臣就是那些量身定做的API,可以称之为类库,可以在java.sun.com/products/上查到。可以分为四类:基础平台套件、消费产品及嵌入式套件、辅助套件、其他套件。
基础平台套件:该套件是必不可少的,即Java2Platform. StandardEdition(J2SE)。它除了包括开发Java程序所需的基本类库之外,还有编译程序、辅助工具等。 除了J2SE,SUN还推出了针对企业级应用的Java2PlatformEnterpriseEdition(J2EE)和针对消费电子产品/嵌入式系统的Java2PlatformMicroEdition(J2ME)。J2EE除了J2SE中的基本类库,还包含了编写服务器端、分布式应用、事务处理等企业级应用的类库,例如Servlet、EnterpriseJavaBean等。J2ME是Java平台套件中最小的一个。 只有J2SE包含了编译Java程序所需的工具程序,而J2EE和J2ME只有类库和执行这类Java程序所需的JVM而已,所以就算只开发J2EE和J2ME程序,也需要J2SE的工具程序。
消费产品及嵌入式系统套件:这部分和现在的J2ME有些重叠,如PersonalJava、EmbeddedJava等,因为J2ME是最近才集成起来的套件,所以有重复现象。后续Sun会将这部分集成到J2ME中,网站上看到的这部分套件都是旧版本,也不会再有新版本。
辅助套件:使用J2SE的基本套件,开发简单的程序是足够的,但是要开发橡3D动画、多媒体程序等,就显得力不从心了,所以Sun设计了许多相关的类库,例如Java3D、多媒体的JMF、串并口通信的JavaCommunication、安全的JCE等,种类非常多。
其他套件:JINI、JavaMessageQueue等,可以到网站上查询。
Java的优点,大概总结如下:
(1) Write Once,Run anywhere。
(2) 简单:纯面向对象的特性,众多类库支持。
(3) 安全:绝大部分新增特性都是出于安全考虑的。
(4) Unicode:Java使用Unicode作为标准字符,使得程序在不同语言的平台下都能编写和执行,例如可以把程序中的变量、类名称用中文表示,在其他语言平台上照样可以运行(有些特殊符号不能使用,另外显示时,还得执行平台有能力显示其他语系的文字)。Java是目前唯一天生使用Unicode的电脑语言。
(5) 网络:Java借助网络而重生,所以网络方面的套件很丰富,变成非常容易。
(6) 资源回收GarbageCollection:JVM协助程序对内存做动态管理,编程是不必担心内存问题,而且内存的统一管理,对跨平台也有相当的帮助。
(7) 异常处理Exception:让程序更安全、更稳定,不致于因为突发错误,造成执行中断或宕机,用户控制整个程序执行,使得程序更严谨。
JDK下载、安装和设定
(1)JDK下载:
在java.sun.com或者上面,下载J2SE 5.0 SDK即可。
(2)JDK安装:
下载的J2SE安装文件,名称应该是jdk-l_5_0_05-windows-i586-p.exe,直接执行这个程序即可。
(3)环境变量设定:
首先新增一个系统变量JAVA_HOME,就是JDK的安装目录,例如c:\Program Files\Java\jdk1.5.0_05
然后在系统变量PATH中,加上“;%JAVA_HOME%\bin”,以便在cmd下执行各种工具,例如javac。
最后还要增加一个系统变量CLASSPATH,变量值为“.”即可。Java类分为三种:Bootstrap class(Java内建的类库,在jre/lib目录下)、Extension class(Java相关的类库,在jre/lib/ext目录下)、User class(用户自己设计的类库),前面两种类不需要CLASSPATH,使用“.”即可,而User class就需要通过CLASSPATH指定目录了。
上面的工作完成之后,在cmd下面执行javac,看看是否成功了。
Java说明文档
当前JDK已经有超过2000个类,每个类少则十几种使用方式,多则几十种,不可能背下来,所以要有个文档随时查阅每个类的使用方法,最完整的文档就是Java2 Documention,其中最重要的是Java2 API Specification。
在Sun网站上下载J2SE 5.0 Documentation,得到jdk1_5_0-doc.zip,解压即可。
程序编辑工具
(1) UltraEdit。
(2) jEdit:
本身就是用Java打造的,功能不输给UltraEdit,而且有很多程序员为它量身定做的大量Plug-in,从而使它从一个文本编辑器变成强大的IDE。jEdit免费,而且开源。
首页是,可以下载该工具。
jEdit的所有设定都在“Utilities”->“Global Options”中。“TextArea”中设定字体,如果要显示中文,要选择中文字体;“Gutter”中的“Line numbering”可以在编辑窗口显示行号。
“Plugins”中的“Plugin Manager”可以对Plug-in进行安装、设定、启用、移除。
第一个Java程序
(1)源码编写:
计算1+2+…+N的总和,一个最简单的Java Applet程序如下:
public class MyFirst extends java.applet.Applet // 定义public class
{
AddClass add;
public static void main(String args[])
{
MyFirst mf = new MyFirst();
mf.init();
}
public void init()
{
add = new AddClass(10);
System.out.println( "1+2+...+10="+add.total() ); // 结果输出到命令行。
}
public void paint(java.awt.Graphics g) // 这个方法是给Applet显示界面使用的。
{
g.drawString( "1+2+...+10="+add.total(), 10, 20 );
}
}
class AddClass
{
int iN;
public AddClass(int iN)
{
this.iN = iN;
}
public int total()
{
int i, sum;
sum = 0;
for(i = 1; i <= iN; i++)
{
sum += i;
}
return sum;
}
}
注意两点:(1)源文件名字要和public class相同;(2)扩展名是.java,所以上面的文件应该保存为MyFirst.java;(3)Java区分大小写。
(2)编译
javac MyFirst.java
(3)执行
如果只是简单的在命令行上执行,那么java MyFirst即可,其中java就是J2SE附带的JVM程序。
如果要用JavaApplet的方式执行,那么要编写一个HTML文件,并保存为MyFirst.htm:
code = "MyFirst.class"
codebase= .
width= 100
height= 50
>
然后appletviewer MyFirst.htm即可,也可以直接用浏览器来执行。