Java入门之一(下)

Java语言特点
Java语言特点具体来说,它具有如下特性:简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。下面我们将重点介绍Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。
各方面的书介绍的都很多,我就不一一详细说了。
首先我们先拿它和我们知道的VB语言做一下比较。
VB以易用为目标,语法上要求很松散,尽量方面非专业程序员使用。
Java语法上要求比较严格。但比VC学习要容易很多。
Java与VB不同认分号不认分行,每个分号为一句话的结束。
Java中区分大小写,ab, AB, Ab都不同。
程序总是从一个叫main的方法开始。

简单:java中摒弃了c++中容易产生误解和错误的特性,比如指针和内存管理,使得编程更为简单。同时,提供了十分丰富得了类库,进一步简化编程的难度。
面向对象:90年代以后产生的语言没有哪一个不是面向对象的。面向对象确实克服了面向过程编程的致命弱点,几乎成为开发大型项目的不二法门。java语言产生较晚,当然是具有面向对象的特征。与其它语言相较,java是纯面向对象语言。就是说,不允许同时使用非面向对象的特征。
分布式:java是专门为适应internet应用而产生的语言。跨机器,跨网络地共享资源成为语言内置的功能。尤其是对TCP/IP的内置支持,使得java在开发网络应用方面有得天独厚的条件。
健壮性:java采用了现代语言普遍采用的“例外处理”技术来增强程序在意外发生时的控制能力。如能合理运用,可有效防止系统的崩溃式反映,增强系统的稳定性。
安全性:java语言不支持指针,有效避免了内存的非法使用。它的类装载校验机制从根本上防止类似“特洛伊木马”现象的出项。
结构中立(平台无关)。这是java构建的初衷。java语言引以为骄傲的地方正是:“一次编写,到处运行”。
多线程:java对多线程具有语言一级的支持。在所有类的鼻祖-Object类中就引入了多个支持多线程的方法。

人们常问的问题之一是:我为什么要学java,其它语言不能做这件事情吗?到底学哪种语言更有前途啊?
这好比问,十八般兵刃,我应该学习哪一种呢?每种语言都有自己的所长,也有自己的短处。这是没办法两全其美的。java也是一样。
人们常把java与c++语言相比较。我们来看看略举一二吧。
c语言使用指针,java废除了指针。c语言的强大正是依赖于指针的使用。而指针也容易引发内存的访问错误。java放弃了这针,在避免错误,提高易用性的同时也损失了指针带来的强大功能。所以,java不能用于编写windows操作系统。
c语言是程序员自己管理内存。这样比较直接,容易控制,内存也节省。java是通过垃圾回收的办法管理内存,虽然简便,不易出错,但同时也造成了内存的浪费,或者性能的下降。
c语言是平台相关的。编译器的编译很彻底,直接变成了机器能够直接执行的机器码,甚至对不同的CPU指令体系进行了优化。这样的好处是执行的效率十分高,但缺点是不能移植。windows下的exe文件不可能直接运行于其它的操作系统中。
java是半编译半解释的语言。它编译的结果是称为“字节码”的.class文件。这种文件并不是直接的CPU指令,而是一种“虚拟机”指令。“虚拟机”是通过软件模拟出来的,每种平台上安装了不同的“模拟器”。重要的一点是,它们模拟出来的“虚拟机”完全相同,所以.class文件是平台无关的。当然,平台无关的缺点是执行速度慢,可能会有大到一个量级的差异。


java的运行原理

java源文件要经过两个过程,才能变成真正能在CPU上运行的指令。首先是“编译”过程,其结果是.class文件。这种文件被称为:“字节码”。字节码是一种“中间”指令,它并不能在真正的CPU上执行。它是为了一种看不见的,理想的,一致的“虚拟机”而设计的指令。
“虚拟机”并不是真正的机器,它是一种抽象。把具体的CPU差异屏蔽起来,使得它们看起来是同一种,很“纯”,或者说很理想的机器。
第二步,解释器发挥作用,它把.class中的“虚拟机”指令逐条地翻译为具体的CPU指令。可以想像,在不同的平台上,这种解释器是不同的。正是由于解释器的不同,才抹去了不同的平台的差异,使得形形色色的计算机系统,看上去变成了完全一致的“虚拟机”。

1.  JDK的获得与安装

并不是说,有了“编译器”和“解释器”就可以开发java应用程序了。这些工具要想正确运行,还需要一些java类库的支持。并且伴随着这些类库,还需要相关的文档和示例等等。此外,为方面调试,打包,文档化等等,sun公司还提供了其它辅助的工具。

所有这些东西,sun公司都为我们配套齐全,做成了一个叫做JDK的安装文件。我们可以免费地下载这个文件,在自己的机器上安装。

JDK的体积较为庞大,小的也有100多兆。我们也可以通过光盘获得。

前面曾经提及,sun公司为了支持不同的开发目的,至少有3JDK可供下载:

J2SDK:这是java的基础开发工具,我们所需要的。

J2EE:为支持企业级应用开发而发行的标准库

J2ME:为支持手机移动应用开发而发行的标准库。

我们需要下载的,当然是J2SDK。最新的版本是1.5.x,我们使用1.4.x就足够了。

JDK的安装十分容易。几乎就是傻瓜式的“下一步”,“下一步”,“确认”等等操作,最终提示安装完成。

1.  java开发环境设置

java开发的任务有三个:一个是顺利地编写出名为*.java的源文件。二是能把*.java顺利编译为.class,三是能正确“执行”.class文件,更严格地说是:解释执行。

如果使用最原始的方法开发(好比钻木取火),源文件的编写采用记事本就可以完成。编译过程需要运行,“javac.exe”这个java工具,为了能顺利运行,还需要一番配置才行。“执行”阶段,则需要“java.exe”这个工具。如果是小程序,或者servlet等等当然还需要更复杂的环境支持。

javac最简单的使用方法是:

javac xx.java

当然这样,未必能有效,我们试验一下。

首先,点击“开始|运行”菜单,输入“cmd”,点击“确定”。这时会弹出一个俗称“黑窗口”的东东来,学名叫“控制台”窗口。

输入:

cd d:/aa

进入到自己喜欢的“工作目录”。

§         cddos指令。cd .. 是进入上一级目录。dir是列出当前目录的内容。md xxx 是在当前的位置建立一个新目录。copy xx yy 是把xx拷贝到yy。关于dos命令的用法,请参考网络上的相关教程。

输入:javac,回车,试验一下:

这时,系统找不到“javac.exe”这个文件,因而提示命令错误。这就好比,我说:“张小鲁”过来一下。到底这个“张小鲁”在哪里呢?如果不在本房间,就不会有效果。我应该说:“中国/北京/海淀区/中关村/科学院南路/天博大厦/2/张小鲁”如何如何就清楚了。

此处我们用同样的方法,模仿我的输入(当然注意找到你自己的javac在什么位置的信息,不要生搬硬抄我的语句):

像上图一样,如果你看到了一些说明信息,而不是说文件找不到,就说明运行成功。

如果每次运行javac都这么麻烦是很要命的。我们可以指定一个默认“搜索路径”,下次再说某某文件,系统会沿着“搜索路径”找一遍,没有找到才报错。

设置搜索路径的方法是:

path=C:/Borland/JBuilder2005/jdk1.4/bin;

当然,你需要把其中的内容换成与自己的java安装目录相一致的样子。

但这样做,也有个麻烦,就是每次启动“黑窗口”,都需要这样做一下。能不能让系统“记住”这个配置呢?当然是可以的。这个配置学名叫做“环境变量”。

进入“控制面版”,运行“系统”,选择“高级”页。

再选择“环境变量”,就可以设置当前的环境变量了。在这里设置环境变量是能够被机器“记忆”的。

画面中,有上下两个窗口。上边的窗口是关于某个特定的用户的,现在是“administrator”,下边的窗口是所有用户公用的。它们可以设置的内容和设置的方法相同。具体地说,如果在上边的窗口进行了设置,又换了另外的用户登录了windows,则那个用户看不到环境变量的设置。而若设置在下边的窗口,对任何用户都是有效的。

在编辑环境变量的时候,注意,尽量保留原来的设置,而把自己的新设置加入到头或者尾巴,之间用分号分隔。这是为了使得我的设置尽量不要影响其它软件的工作。

仅仅设置了“path”这个环境变量还不够。因为javac在运行的时候,需要一些库的支持,javac到哪里去寻找这些库呢?我们当然可以在运行的时候直接告诉javac在哪里可以找到类库,但若设置一个名为:classpath的环境变量就会更加方便。

直接使用的方法:

javac –classpath "c:/myjava/my.lib;c:/myjava/my.jar"  xx.java

设置classpath变量的方法:

.;c:/java/jdk1.4/jre/lib/rt.jar;c:/java/jdk1.4/lib/tool.jar;

这些都是我假想的例子,大家要根据自己的实际情况。其中classpath中使用"."需要说一下,它表示“当前目录”。有些版本的java确实比较“傻”,就是连当前目录都不去搜索,还需要我明确告诉它:请到“当前目录”找一找我说的那个东西。

再强调一下区别:path指定的是javac这个执行文件本身所在的目录。而classpath指定的是javac在工作过程中可能会用到一些类的支持,这些类需要到classpath所指定的地方去逐一排查。

编译好了.class就可以执行了。

最简单的执行方法:

java  MyA

MyA是生成的.class文件的名字。注意两点:一个是要区分大小写。运行javac的时候不区分。这是因为javac是一个windows应用程序。而java开始就启动了虚拟机,进入了java世界了。java世界中与c一样,是大小写区分的。VB程序员尤其要小心了。

第二个要说的是不要写成java MyA.class,这个class是默认的,不需要写出。应该说是,一定不要写出。

 

1.  基本工具

java的安装目录,有个bin目录,里边的很多exe文件就是所谓java工具的东西。这其中也包含了我们前边介绍的两个重要工具:

javac.exe就是java的“解释器”。

java.exe就是java的“翻译器”。

这两个当然是JDK中最关键的工具了。其它的一些工具有时也很有用。我们大概介绍几个常用的。

javap.exejava的反编译器。有的时候需要从.class文件生成源代码,就需要这个工具了。当然,通过机器生成的源代码是比较死板的,难于阅读的,但至少比没有好啊。

appletviewer.exe:通过它可以模拟小程序在网页中的运行效果,而不用真的发布为最终的网页。这个工具对于小程序的调试几乎是必须的。

javadoc.exe:用它可以自动地为java程序编写文档,并生成规范化的,格式统一的HTML文档,这样就更加便于查阅。避免了文档书写的随意性。当然,这些都依赖于程序员在java源代码中正确地、及时地书写了帮助或注释。

jar.exe:这个工具可以把一组相关的java的文件或目录打包为一个*.jar文件,便于管理和移植。当然,它还兼有压缩、维护等能力。

 

2.  第一个java程序

打开记事本,输入如下的代码:

public class MyA

{

    public static void main(String[] args)

    {

       System.out.println("MyA Test!!");

    }

}

把此代码存为:MyA.java,注意名字必须与类名相同。

至于什么是类,我们暂时不去管它。main函数也不用管它。只要知道在System.out的位置书写语句,程序就会执行。

javac MyA.java 

编译java程序。当然前提是,前边介绍的环境配置都已经过关了。

java MyA 

执行 java 程序,屏幕上会打印出一句话来。至此试验成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值