Java分为三个体系:J2SE、J2EE、J2ME

主要特性:

简单:丢弃了C++中的那些特性,如操作符重载、多继承、自动的强制类型转换;不使用指针,而是引用;提供了自动的废料收集,不必担忧内存管理

面向对象:提供类、接口和继承等面向对象的特性;为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements);Java语言全面支持动态绑定

分布式:Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

健壮:强类型机制;异常处理;垃圾的自动收集

安全:对通过网络下载的类具有一个安全防范机制(类ClassLoader);提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。

体系结构中立:Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。

可移植:来源于体系结构中立性;严格规定了各个基本数据类型的长度

解释型:Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

高性能:与那些解释型的高级脚本语言相比,Java的确是高性能的

多线程:在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。

动态:Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级;Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。