1.1 Java 程序设计平台

                  赏心悦目的语法,易于理解的语义

                   庞大的库功能齐全的执行环境。

                    考虑到兼容现有环境,也有一些累赘保留下来

     它是一种功能齐全的出色语言, 是一个高质量的执行环境, 还提供了一个庞大的库

 

Java白皮书

 

简单性:Java剔除了c加加中的累赘语法(但同时具有大型的功能齐全的库)

               Java的目标之一是可运行于小型独立机器的程序。其解释器以及基本类仅为40kb,

                                                                                                   基本标准类库加上线程支持为175kb

                                                                                                   嵌入式的Java micro edition更小

 

面向对象:面向对象是一种成熟的技术,Java与c加加旗鼓相当。

                   但Java使用更为简单的接口概念实现多重继承

                   运行时,Java也有更为丰富的自省功能

 

分布式:Java有一个丰富的例程库,用于处理网络协议,使Java程序非常便捷地访问网络文件

 

健壮性:Java投入大量精力进行早期和后期(运行时)问题检测,Java编译器能检测出许多其他语                                     

             言运行时才能发现的问题

               Java的指针模型消除了重写内存损坏数据的可能性

 

安全性:Java为适用分布式,网络环境,在安全性上投入大量精力,防范:运行  破坏自己进程空间之外的内存 无授权读写文件

               任何Java代码都无法离开沙箱

               虽然没有想象得难么成功,但确实非常超前(在当时)

               Java程序开发现在更加谨慎,不再信任远程代码(除非数字签名和用户同意)

 

体系结构中立:编译器生成与特定计算机体系无关的字节码文件,在不同体系的Java系统解释执行,

                          也可动态地将部分代码翻译成本地系统语言,提高执行效率

                          虚拟机技术非Java首创

                          Java虚拟机还可以监测指令序列的行为,增强安全性

 

可移植性:Java规范不依赖具体实现

                   数据类型大小不变,解决了代码移植的主要问题

                   二进制数据传输格式固定,解决了字节顺序问题

                   字符串使用标准unicode格式存储

                   除了用户界面方面力有未逮,Java库在其他功能上不必担心不同系统的底层

                   且Java的api往往比原生api质量更高applicationprogramminginterface

 

解释型:虚拟机技术的特色,代码的使用是一种轻量级,增量式过程,使开发快捷可探索。

 

高效率:解释后的字节码性能已经令人满意

               但为了更高效率,字节码可在运行时动态地翻译成特定cpu机器码

               现在即时编译器已经具有很高性能,却比传统编译器提供更多信息,实现更多功能

               比如监控常用代码,进行速度优化。

               更为复杂的优化,消除函数调用,即时内联

 

多线程:Java是第一个支持多线程的主流语言,在当时很超前

                  但开始是因为网络响应慢,多线程以保证用户界面不会冻住

                现在则因为摩尔定律行将完结,我们不追求更快而是更多的处理器

                多线程带来更好的相应交互和实时行为,

                虽然多线程程序设计不易,但Java在这方面很重视且出色

 

动态性:Java更加具有动态性,能适应不断发展的环境

               Java可以向库中添加新方法,实例变量而不影响客户端

               Java很容易找出运行中的类型信息

               当需要将代码添加到正在运行的程序中时,动态性很重要

               为便于运行程序的演进,Java设计者将此特性引入主流程序设计语言