Java程序设计概述-摘要/笔记

1. Java程序设计平台

在《Java核心技术》一书中,凯·S.霍斯特曼(Cay S. Horstmann)与其合著者Gary Cornell是这样描述J3)分布式ava的:

“作为一种计算机语言,Java的广告词确实有点夸大其词。当然,Java的确是一种优秀的程序设计语言。作为一个名副其实的程序设计人员,使用Java无疑是一个比较好的选择。我们认为:Java本来有潜力成为一种卓越的程序设计语言,但可能有些为时过晚。一旦一种语言得到广泛应用,与现存代码尴尬的兼容性问题就摆在了人们的面前。”

Java是一个完整的平台,有一个庞大的库,其中包含了大量可重用的代码,还有一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。

2. Java白皮书的11个关键术语

Java的设计者编写了一个颇有影响力的白皮书(参见www.oracle.com/technetwork/java/langenv-140151.html),其用来解释设计初衷以及完成的情况。

同时他们还发布了一个简短的摘要,由11个关键术语(参见http://horstmann.com/corejava/java-an-overview/7Gosling.pdf)进行组织:

1)简单性

主要表现在语法上,Java是很接近C++的一门语言,Java语法是C++语法的一个“纯净”版本,剔除了C++中许多很少使用、难以理解、容易混淆的特性.。Java没有头文件、指针运算、结构、联合、操作符重载、虚基类等。

Java程序设计概述-摘要/笔记_第1张图片 如下是计算两数相加的和——

 这是C++示例代码:

#include
int main() {
    int num1 = 5;
    int num2 = 10;
    int sum = num1 + num2;
    std::cout << "THe sum is: " << sum << std::endl;
    return 0;
}

这是Java的示例代码:

public class SimpleJavaExample {
    public static void main(String[] args) {
        int num1 = 5;
        int num2 = 10;
        int sum = num1 + num2;
        System.out.printIn("The sum is: " + sum);
}

由此看出在语法上,Java比C++更加简洁明了。Java使用关键字和约定的命名规范,减少了代码中的符号和冗余信息。

Java的“简单”的另一面是“小”。Java支持开发能够在小型机器上独立运行的软件。

2)面向对象

面向对象设计是一种程序设计技术,而在Java的世界里,一切事物皆对象。它将重点放在数据(对象)和对象的接口上。用图书馆打一个比方:假设有两个读者,分别是“面向对象的读者”和“非面向对象的读者”,他们的任务都是使用图书馆借阅图书。其中“面向对象的读者”主要关注的是图书馆的目录,根据自己的兴趣和需求选择合适的图书,其次才是图书馆的环境和借阅手段;而“非面向对象的读者”关注的是图书馆的环境和借阅手段。

Java主要在于多重继承和更简单的接口概念。

3) 分布式

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

4) 健壮性

Java的设计目标之一是要让用Java编写的程序员具有多方面的可靠性。Java非常强调进行早期的问题检测、后期的动态(运行时)检测,以及消除容易出错的情况。

5) 安全性

Java要适用于网络/分布式环境。为了实现这个目标,安全性颇受重视。使用Java可以构建防病毒、防篡改的系统。

6) 体系结构中立

Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现体系结构中立这一特性。精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且可以很容易地动态转换为原生机器代码。

7) 可移植性

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

除了与用户界面有关的部分外,所有其他Java库确实能很好地支持平台独立性。不仅程序是可移植的,Java API往往也比原生API质量更高。

8) 解释性

Java解释器可以在任何移植了解释器的机器上直接执行Java字节码。(不理解,Python代码在Python环境下不也可以直接执行吗?不是所有语言都可以被解释吗?)

9) 高性能

尽管解释性字节码的性能通常已经足够让人满意,但在有些场合下还需要更高的性能。字节码可以(在运行时)动态转换为面向运行这个应用的特定CPU的机器码。

10) 多线程

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

11) 动态性

Java设计为能够适应不断演进的环境,库可以自由地添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单。

Java程序设计概述-摘要/笔记_第2张图片

 

你可能感兴趣的:(Java核心技术,java,开发语言)