Java基础认识
Java并不只是一种语言。Java是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。
Java“白皮书”关键术语
简单性、面向对象、分布式、健壮性、安全性、体系结构中立、可移植性、解释性、高能性、多线程、动态性
1.简单性
Java语法是C++语法的一个“纯净”版本。没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等特性
2.面向对象
简单来讲,面向对象是一种程序设计技术。它将重点放在数据(即对象)和对象接口上。在本质上Java的面向对象能力与C++是一样的。Java与C++的主要不同点在于多重继承,在Java中,取而代之的是更简单的接口概念。与C++相比,Java提供了更丰富的运行时自省功能(温知(JAVA)五)
3.分布式
Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开访问网络上的对象,其便捷程度就像访问本地程序一样。
4.健壮性
Java的设计目标之一在于使得Java编写的程序具有多方面的可靠性,Java投入了大量的精力进行早期的问题检测、后期动态的(运行时)检测,并消除了容易出错的情况。Java编译器能够检测许多在其他语言中仅在运行时才能检测出来的问题
5.安全性
Java适用于网络/分布式环境。为了达到这个目标,在安全方面投入了很大的精力。适用Java可以构建防病毒、防篡改的系统。
其中包括:
-
运行时堆栈溢出。如蠕虫和病毒常用的攻击手段
-
破坏自己的进程空间之外的内存、
-
未经授权读写文件
不可信的代码在一个沙箱环境中执行,在这里它不会影响主系统。用户可以确信不会发生不好的事情,因为Java代码不论来自哪里,都不能脱离沙箱
6.体系结构中立(虚拟机)
编译器生成一个体系结构中立的目标文件格式,这是一种编译过得代码(为“虚拟机”生成代码),只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。当然,解释虚拟机指令肯定会比全速运行机器指令慢很多,然而,虚拟机可以将执行最频繁的字节码序列翻译成机器码,之一过程被称为即时编译。虚拟机还可以检测指令序列的行为,从而增强其安全性。
7.可移植性
在Java中,数据类型具固定的大小,这消除了代码移植时令人头痛的主要问题。二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰。字符串是用标准的Unicode格式存储的。 除了与用户界面有关的部分外,所有其他Java类库都能很好的支持平台独立性,你可以处理文件、正则表达式、XML、日期和时间、数据库、网络连接、线程等,而不用操心底层操作系统。不仅程序是可移植的,Java API往往也比原生API质量更高。
8.解释型
Java解释器可以在任何移植了解释器的机器上执行Java字节码,由于链接是一个增量式且轻量级的过程,所以,开发过程也变得更加便捷,更加具有探索性。
9.高性能
尽管对解释后的字节码性能已经比较满意,但在有些场合下还需要更加高效的性能。字节码可以(在运行时刻)动态的翻译成对应运行这个应用的特定CPU的机器码。
10.多线程
多线程可以带来更好的交互响应和实时行为。
11.动态性
Java能够适应不断发展的环境,库中可以自由的添加新方法和实例变量,而对客户端却没有任何影响。在Java中找出运行时类型信息十分简单