Java语言的特点
-
简单性
java语法是c++语法的一个“纯净”版本,没有头文件、指针运算(甚至是指针语法)、结构、联合、操作符重载、虚基类等
-
面向对象
封装、继承(Java中类是单继承,接口可以多继承,类可以实现多接口)、多态
-
分布式
Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像在访问本地文件一样
-
健壮性
Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题,Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。
-
安全性
Java适用于网络/分布式环境,为了达到这个目标,一开始Java就设计成能够防范各种攻击,其中包括:
- 运行时堆栈溢出。如蠕虫和病毒常用的攻击手段
- 破坏自己的进程空间之外的内存
- 未经授权读写文件
-
体系结构中立
编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。
-
可移植性
-
源代码可移植性
在Java中,数据类型具有固定的大小,这消除了代码移植时的主要问题。二进制数据以固定的格式进行存储和传输,相处了字节顺序的困扰。字符串使用标准的Unicode格式存储的。
-
CPU可移植性
通过JVM提供一个虚拟CPU来实现
-
操作系统的可移植性
Java库函数提供了一个虚拟的GUI环境来实现
-
-
解释型
Java解释器可以在任何移植了解释器的机器上执行Java字节码
-
多线程(重点)
-
动态性
Java相较于C和C++更具动态性,能够适应不断发展的环境。库中可以自由地添加新方法和实例变量,而对客户端却没有任何影响。