1、体系结构中立
即编译器生成一个体系结构中立的目标文件格式,只要在有java运行的系统就可以在许多处理器上运行。但实际上这并不是java专用特点,有些其他语言也有这种技术。而且为了实现这一目标,核心在于java编译器生成与特定的计算机体系结构无关的字节码指令来实现,显然这比全速运行机器指令慢很多,因此,目前难说好坏。
2、可移植性
C/C++中有些基本数据类型的大小只限定了低长度,二具体长度可能与具体的编译器供应商有关,而java则不依赖于这个具体实现,其数据类型的大小永远是固定的,从而了代码移植时的困扰。
3、解释型
java解释器可以在任何移植了解释器的机器上执行java字节码,现在,使用即时编译器将字节码翻译成机器码。
4、高性能
字节码可以(在运行时刻)地翻译成运行这个应用程序的特定CPU的机器码。
5、多线程
相较其他编程语言,java的多线程处理便捷性很强,其在不同的机器上调用多线程的编码完全相同,将多线程的实现交给了底层的操作系统或线程库来实现。
6、动态性
java可以在库中自由地添加新方法和实例变量,却对客户端没有任何影响,对变化的环境适应性更强。