Java 版 (精华区)

发信人: DreamWeaver (dw.hit.edu.cn改版啦), 信区: Java
标  题: Java从零开始 之 初步了解
发信站: 哈工大紫丁香 (2003年05月23日09:35:44 星期五), 站内信件

/**
* Javor@Lilac
* 本篇旨在使用户能够初步对Java有所了解
* 创建日期:2003-05-21
* 最后修改日期:2003-05-21
* hdpan@hit.edu.cn
*/
    
    阅读本篇文章时,缺省的认为你是一个准备开始学习和使用Java的新手。

    Java于1995年 5月23日诞生于 Sun公司,从此掀起Java热潮,至今未退。
而继2001年微软推出DotNet之后,Java技术与DotNet技术的竞争激烈异常,孰
优孰劣,拭目以待。如果你想了解更多Java的历史,请参看精华区<Java趣话>
目录。

    Java的最大的特性是跨平台(Write Once,Run Anywhere!),也就是说
你用Java写好一个程序,他既可以在Windows平台运行,也可以在Linux平台运
行,可以在Solaris、Mac等所有有Java虚拟机的平台运行。Java虚拟机?Java
虚拟机是什么?

    第一个概念:虚拟机(JVM)

    皮之不存,毛将焉附,可以这样理解:具体的平台是骨肉,虚拟机是皮,
Java程序就是毛了。所有的Java程序都是需要运行于虚拟机之上的,看到这里
我想你已经明白了Java程序为什么能够跨平台了,就是因为不同的平台有着不
同的虚拟机实现,这些虚拟机可以把Java程序运用不同的实现方法来运行于不
同的平台之上。所以有的人说,Java并没有跨平台,毕竟需要为每个不同的平
台来编写不同的虚拟机。我感觉这里有人在偷换概念了,什么叫平台?不同的
操作系统就是不同的平台,能说Java没有跨平台吗?Java虚拟机技术开拓了另
一种软件设计思路,他在Java程序和不同的平台之间形成一个缓冲,让Java程
序员面对的是不同平台的相同的程序实现方法。凡事有利就有弊,因为要兼顾
各个平台,就不可能针对某个具体的平台进行特殊的优化,所以Java程序的效
率等问题一直是反Java阵营叫嚣的热点。随着Java虚拟机技术的不断发展,例
如 HotSpot技术的出现,虚拟机的效率将会得到成倍的提高。

    Java程序到底是怎样由Java源程序通过不同的虚拟机运行在不同的平台之
上的呢?学过编译原理的一定知道,程序设计语言编译方式分为编译型的和解
释型。而Java是介于两者之间的,即编译又解释的一种语言。最终在不同平台
运行的不是Java的源程序,而是由Java的源程序编译而来的Java目标代码(即
字节代码byte code)。什么是字节代码?

    第二个概念:字节代码
    
    字节代码是使Java源程序经由Java编译器javac编译生成的后缀名为.class
的文件,他并不能像二进制代码一样可以在操作系统上直接运行,需要借助Java
虚拟机,Java字节码就是Java虚拟机的指令集,类似于运行于真实机器上的微码。

    至此,我们应该知道了Java程序到底是怎么运行的了。
    
程序编写阶段                      Java编译器
              +------------+         编译       +---------------------+
              | Java源代码 | =================> | Java目标代码(字节码)|
              +------------+                    +---------------------+
-----------------------------------------------------------|------------
程序运行阶段                              目标代码被检查   |
                                          然后装入虚拟机   |
                                         ===================
                                         |
                                         V
                         +-------------------------------+
                         | Java虚拟机                    |程序由虚拟机
                         |                               |解释运行
                         | +---------------------------+ |
                         | |       Java解释器          | |
                         | +------------|--------------+ |
                         +--------------|----------------+
                                        |解释器处理所有与操作系统有关的
                                        V            通信
                    +-----------------------------------------+
                    |       操 作 系 统                       |
                    +-----------------------------------------+

    所以,对于一个Java程序员,不需要知道和管理任何系统底层的东西,例如不
需要管理内存,因为这一切,可爱的 JVM已经为你做好了,你要做的只是放松心情
专心好程序,说到这里,不得不说到Java的另外一个特性:面向对象!

    面向对象的有关知识请参考PPT[1],
    /*
        这里需要进一步修改
    */
    
[1]可以在http://dw.hit.edu.cn:8080/java/document/DoingInJava/下载]

[完]

--
  ┌――╮
  │┼☆│                       │︳││ │︳               
  ││↑│ㄟ↗╭→╮╭︿╮ ╭┬╮│︳││ │︳╭→╮╭︿╮ ↑  ↑╭→╮ㄟ↗ 
  ││↑│ ↑ │  ││  │ ↑↑↑│︳││ │︳│  ││  │ │  ││  │ ↑  
  │┼╯│ │ ├→┘│  │ ↑↑↑│︳ ☆  │︳├→┘│  │ │  │├→┘ │  
  └――╯ ▲ ╰→╯╰─≈ ↑↑↑ ↖↗  ↖↗  ╰→╯╰─≈  ↖↗ ╰→╯ ▲                                                                       

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.4]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.968毫秒