likeLfcf

简单性

Java的简单性表现在两个方面

第一个方面:Java的语法较为简单,相当于是C++的纯净版,没有头文件,指针运算等等。

第二个方面:Java比较小,在以前,装配基本的类库也只需要175KB,在当时是个了不起的成就。在如今类库已经相当庞大但是也有一个较小类库的,适用于嵌入式设备的Java微型版。

面向对象

在开发Java的时候,面向对象技术已经相当成熟,Java的面向对象特性和C++旗鼓相当。Java和C++的不同点主要在于多重继承,Java使用接口取代了多继承原本的功能。

分布式

Java拥有一个例程库来处理TCP/IP协议。Java的应用程序能够通过URT打开和访问网络上的对象,其便捷程度相当于打开本地文件一样。

如今,这种特性被视为理所当然的。不过在1995年,这种特性任然很新颖。

健壮性

Java强调进行早期问题检测,后期动态的检测,以及消除容易出错的情况。

Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。

Java编译器能够识别很多语言仅仅在运行时才会发现的问题。

安全性

Java可以构建防病毒,防篡改的系统。

防范的内容包括:

  • 运行时堆栈溢出,这是蠕虫和病毒常用的手段。

  • 破坏自己的进程空间之外的内存。

  • 未经授权读写文件。

现如今,Java浏览器插件不再信任远程代码,厨卫代码有数字签名而且用户统一执行这个代码。

体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,可以在很多机器上直接执行,也可以动态的转换为本地机器代码。

解释性虚拟机的执行速度可定回避全速运行机器指令要慢,但是Java的虚拟机可以将执行最平凡的字节序列转换成机器码,这一过程称为即时编译

Java虚拟机还有其他优点,可以检查指令徐璐i额的行为,从而增强其安全性等等。

可移植性

与C/C++不同,Java的规范中没有“依赖具体实现”的地方。基本数据类型的大小以及有关运算的行为都有明确的规范——这成为了Java可移植性的基石之一。

  • Java有固定的字节数,消除了代码移植时一个令人头疼的主要问题。

  • 二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰。

  • 字符串采用标准的 Unicode 格式存储

  • 作为系统组成部分的类库,定义了可移植性的接口

除了与用户界面有关的部分外,所有其他Java库确实能很好的支持平台独立性。

不仅程序是可以指的,Java API往往也比原生API质量更高

解释型

Java解释器可以在任何移植了解释器的机器上直接执行Java字节码

高性能

Java字节码可以(在运行时)动态地转换成对应运行这个特定CPU地机器码。

现在地即时编译器已经非常出色,可以与传统编译器相媲美,而且在某些情况下甚至超越了传统编译器,原因是他们有更多的可用信息。

多线程

多线程可以带来更快的交互响应和实时行为

摩尔定律即将走向尽头,我们不再执着于更快的处理器,而是采用多个处理器,而且让它们一直保持着工作。

Java是当时第一个支持并发程序设计地主流语言。

动态性

Java库中可以自由地添加新方法和实例变量,而对客户端没有任何影响。

当需要为正在运行的程序增加代码地时候,动态性是一个非常重要地特性。

分类:

技术点:

相关文章: