第1章 Java程序设计概念
1.1 Java程序设计平台
- Java是一种优秀的计算机程序设计语言
- Java程序设计语言是Sun公司开发,后被甲骨文公司收购
- Java是一个完整的平台,有一个庞大的库,包含了可重用的代码,提供了“安全性”,“跨操作系统”的可移植性,自动垃圾收集等服务的执行环境。
1.2 Java“白皮书”的关键术语
- Java设计者已经编写了“白皮书”用来解释设计的初衷以及完成的情况,发布了一个简短的摘要:
- 简单性
- 面向对象
- 分布式
- 健壮性
- 安全性
- 体系结构中立
- 可移植性
- 解释性
- 高性能
- 多线程
- 动态性
1.2.1 简单性
- Java语法是C++语法的一个“纯净”版本。没有头文件、指针运算、结构、联合、操作符重载、虚基类等。
- Java不断的扩展,类库已经非常的庞大。现在有一个独立的具有较小类库的Java微型版(Java Micro Edition),这个版本适用于嵌入式设备。
1.2.2 面向对象
- 面向对象设计师一种程序设计技术。将重点放在数据(对象)和对象的接口上。
- Java面向对象在于多重继承、简答的接口概念、提供了更丰富的运行时自省功能。
1.2.3 分布式
- Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
1.2.4 健壮性
- Java的设计目的之一在于使得Java编写的程序具有多方面的可靠性。Java非常强调进行早期的问题检测、后期动态的(运行时)检测,以及消除容易出错的情况…Java与C/C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。
1.2.5 安全性
- Java要适用于网络/分布式环境。
- 使用Java可以构建防病毒、防篡改的系统。
- Java设计成能够防范各种攻击,其中包括:
-
1.运行时堆栈溢出,这是蠕虫和病毒常用的攻击手段。 2.破坏自己的进程空间之外的内存。 3.未经授权读取文件
1.2.6 体系结构中立
- 编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以容易地在任何机器上解释执行,而且还可以动态地转换成本地机器代码。
- 解释型虚拟机指令肯定会比全速运行机器指令慢得很多。虚拟机有一个选项,可以将执行频繁的字节码序列转换成机器码,这一过程成为即时编译。
- Java虚拟机还有一个优点:它可以通过检查指令序列的行为,从而增强其安全性
1.2.7 可移植性
- 与C/C++不同Java规范中没有“依赖具体实现”的地方。基本数据类型的大小以及有关运算的行为都有明确的说明。
- 在Java中数值类型有固定的字节数,这消除了代码移植时一个令人头疼的主要问题。二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰。字符串则采用标准的Unicode格式存储
- 系统组成部分的类库,定义了可移植的接口。
- 除了用户界面有关的部分外,其他Java库确实能很好地支持平台独立性。可以处理文件、正则表达式、XML、日期和时间、数据库、网络连接、线程等,而不用操心底层操作系统。程序是可移植的,JavaAPI往往也比原生API质量更高。
1.2.8解释型
- Java解释器可以在任何移植了解释器的机器上直接执行Java字节码。由于连接一个增量式且轻量级的过程,开发过程也变得更加快捷,更加具有探索性。
1.2.9 高性能
- 字节码可以(在运行时)动态地转换成对应运行这个应用的特定CPU的机器码
1.2.10 多线程
- 多线程可以带来更快的交互相应和实时行动。
1.2.11 动态性
- Java与C或C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由地添加新方法和实例变量,而对客户端却没有任何影像。在Java中找出运行时类型信息十分简单。