第一章 Java程序设计概述

1.Java程序设计平台

Java语言具有令人赏心悦目的语法和易于理解的语义。同时Java是一个完整的平台,有一个庞大的库,库中包含了很多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。

2.Java的12个关键术语

简单性

Java在设计之初尽可能的接近C++,但提出了C++中许多很少使用、难以理解、易混淆的特性(如:头文件、指针、结构、联合、操作符重载、虚基类)。即Java语法是C++语法的一个“纯净”版本,不过设计者没有清除C++中所有不适当的特性(如:switch)
同时,简单性还指Java在设计之初的解释器以及类支持较小。现在随着不断的扩展,类库已经相当庞大,具有最初设计目的(嵌入式消费电子设备)和较小类库的则是JavaME版本(Java Micro Edition)。

面向对象

面向对象设计指将重点放在数据(将其对象化)再考虑这个数据在事件中的行为。 举个例子:如果在程序中需要实现 a add b这样一个运算步骤。面向对象设计需要先创建一个类和类中方法,然后由该类的实例化对象调用方法,即:a.add(b);这个步骤是对象a的行为。
面向过程设计则关注程序中的每一个步骤,将步骤设计为函数直接使用:add(a,b)。
相比于面向过程,面向对象需要实例化对象,因此性能会差一些。但是具有使用的灵活度高、扩展性强的特点。同时由于接口的特点,可以设计出高内聚低耦合的系统。

分布式

方便在程序中处理HTTP、FTP之类的TCP/IP协议。同时Java中的类库提供通过URL打开或访问网络上的对象

健壮性

Java的健壮性体现在对问题检测和问题的处理上,包括编译器的早期问题检测和运行时的动态检测。

安全性

分为两方面:Java平台安全性以及语言级别的编译器和虚拟机安全特性 首先是高级特性-平台安全性,Java作为一个平台,拥有基于一个动态、可扩展、标准、可操作的安全架构。内置加密、身份验证、授权、秘钥等基础架构确保安全特性。
其次是低级特性-Java的编译器与虚拟机的内置语言安全特性
*安全的类加载-类加载机制与字节码校验,对语法和语法导致的问题进行校验(如变量使用前赋值、方法参数调用匹配、堆栈溢出)
*安全管理器与访问权限-对语言功能与资源访问权限进行管理
*内存自动管理-垃圾回收、去除指针使用引用避免内存泄漏

体系结构中立

Java语言在编译时会先生成一个平台无关的字节码文件。在执行时将字节码文件交由对应平台的JVM进行翻译成机器码解释执行 因此,在解释执行时的速度会低于编译型语言直接执行编译之后的机器码的速度。不过虚拟机存在一个即时编译选项可以将执行最频繁的字节码序列翻译成机器码以加速执行。

可移植性

Java的基本数据类型大小固定,相关运算有明确说明而不依赖于平台去实现。所以在程序编写时可以不考虑底层操作系统进而具有强大的可移植性。例如在存储整型和浮点型时C/C++程序可能会根据处理器的不同把数据第一个字节存储在最高位或最低位,也就是高位在前顺序(MSB)与低位在前顺序(LSB),这在程序迁移平台时会带来挑战,而在Java中所有值都按照高位在前的顺序写出,这使得Java数据文件可以独立与平台。

解释型

Java并非是编译型语言,而是最终需要字节码在不同JVM上进行解释执行。

高性能

即时编译器可以监控经常执行的代码并优化以提高执行速度。同时还具有内联的优化功能。

多线程

Java是第一个支持并发程序设计的主流语言,多线程的设计可以让线程轮流执行而不用担心某种阻塞(如I/O)使整个系统卡住。

动态性

允许将某些代码添加到正在运行的程序中去。

3.总结

Java是一门解释型的面向对象编程语言,具有简单、高效、安全、健壮的特性。其支持的庞大类库、服务与框架让其成为了一个完整的平台。同时由于支持良好的平台无关性、可移植性、多线程编程、以及分布式特征,让Java成为编写web服务器端程序具有统治力的语言平台。