java“白皮书“的关键术语

简单性

Java 语法是 C++ 语法的一个“ 纯净” 版本。这里没有头文件、 指针运算(甚至指针语法、) 结构、 联合、 操作符重载、 虚基类等。然而,设计者并没有试图清除 C++ 中所有不适当的特性。例如, switch 语句的语法在 Java 中就没有改变。如果你了解 C++ 就会发现可以轻而易举地转换到 Java语法。
简单的另一个方面是小。Java 的目标之一是支持开发能够在小型机器上独立运行的软件。 基本的解释器以及类支持大约仅为 40KB ; 再加上基础的标准类库和对线程的支持(基本上是一个自包含的微内核) 大约需要增加 175KB,

面向对象

简单地讲, 面向对象设计是一种程序设计技术。 它将重点放在数据( 即对象)和对象的接口上。用木匠打一个比方, 一个“ 面向对象的” 木匠始终关注的是所制作的椅子, 第二位才是所使用的工具;一个“ 非面向对象的” 木匠首先考虑的是所用的工具。在本质上,Java 的面向对象能力与 C++是一样的。
开发 Java 时面向对象技术已经相当成熟。 Java 的面向对象特性与 C++ 旗鼓相当。Java与 C++ 的主要不同点在于多重继承,在 Java 中,取而代之的是更简单的接口概念。与 C++相比,Java 提供了更丰富的运行时自省功能。

分布式

Java 有一个丰富的例程库,用于处理像 HTTP 和 FIT 之类的 TCP/IP 协议。Java 应用程序能够通过 URL 打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。

健壮性

Java 的设计目标之一在于使得== Java 编写的程序具有多方面的可靠性==, Java 投入了大量的精力进行早期的问题检测、 后期动态的 (运行时)检测,并消除了容易出错的情况。Java 和 C++ 最大的不同在于 Java 采用的指针模型可以消除重写内存和损坏数据的可能性

安全性

Java 适用于网络 / 分布式环境。 为了达到这个目标,在安全方面投入了很大精力。使用 Java 可以构建防病毒、 防篡改的系统
原先,Java 对下载代码的态度是“ 尽管来吧!”。而在遭遇多次高调攻击之后,Java 浏览器插件不再信任远程代码,除非代码有数字签名而且用户同意执行这个代码。

体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码, 只要有Java 运行系统, 这些编译后的代码可以在许多处理器上运行。Java 编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。 精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。当然, 解释虚拟机指令肯定会比全速运行机器指令慢很多。 然而, 虚拟机有一个选项,可以将执行最频繁的字节码序列翻译成机器码,这一过程被称为即时编译。Java 虚拟机还有一些其他的优点。它可以检测指令序列的行为, 从而增强其安全性。

可移植性

与 C 和 C++ 不同,Java 规范中没有“ 依赖具体实现” 的地方。基本数据类型的大小以及有关运算都做了明确的说明 。作为系统组成部分的类库, 定义了可移植的接口。例如,有一个抽象的 Window类, 并给出了在 UNIX、 Windows 和 Macintosh 环境下的不同实现。
选择 Window 类作为例子可能并不太合适。 凡是尝试过的人都知道, 要编写一个在Windows、 Macintosh 和 10 种不同风格的 UNIX 上看起来都不错的程序有多么困难 ,跨平台的可移植性仍然是个问题。
不过,除了与用户界面有关的部分外,所有其他 Java 库都能很好地支持平台独立性。 你可以处理文件、 正则表达式、 XML、 日期和时间、 数据库、 网络连接、 线程等,而不用操心底层操作系统。不仅程序是可移植的,Java API 往往也比原生 API 质量更高。

解释性

Java 解释器可以在任何移植了解释器的机器上执行 Java 字节码。由于链接是一个增量式且轻量级的过程, 所以, 开发过程也变得更加快捷,更加具有探索性。

高性能

尽管对解释后的字节码性能已经比较满意,但在有些场合下还需要更加高效的性能。字节码可以(在运行时刻)动态地翻译成对应运行这个应用的特定 CPU 的机器码

多线程

多线程可以带来更好的交互响应和实时行为。如今,我们非常关注并发性,因为摩尔定律行将完结。我们不再追求更快的处理器,而是着眼于获得更多的处理器,而且要让它们一直保持工作。并发程序设计绝非易事,不过 Java 在这方面表现很出色, 可以很好地管理这个工作。

动态性

从各种角度看, Java 与 C 或 C++ 相比更加具有动态性。它能够适应不断发展的环境库中可以自由地添加新方法和实例变量, 而对客户端却没有任何影响。在Java 中找出运行时类型信息十分简单。
当需要将某些代码添加到正在运行的程序中时, 动态性将是一个非常重要的特性。一个很好的例子是: 从 Internet 下载代码,然后在浏览器上运行。如果使用 C 或 C++, 这确实难度很大,不过 Java 设计者很清楚动态语言可以很容易地实现运行程序的演进。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值