1.简单性
2.面向对象
3.平台无关性
Java主要靠Java虚拟机(Java Virtual Machine ,JVM)在目标代码级实现平台无关性。JVM是一种抽象机器,它附着于具体操作系统之上,本身具有一套虚拟机的机器指令,并有自己的栈、寄存器组等。但JVM通常在软件上而不是在硬件上实现。
4.可移植性
Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,而与体系结构无关。
5.解释性
JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。
Java源程序(.java文件)————> Java编译器 ———> Java Bytecode(.class文件) ————> Bytecode装载 ————>
字节码检验器 ————>Bytecode解释 ————> 系统执行平台
6.高性能
Java提供了JIT(Just In Time)编译器
7.动态性
允许程序动态地装入过程中所需要的类
8.可靠性和安全性
1.所有表达式和参数都要进行类型相容性的检查
2.不支持指针
3.自动单元收集
4.Java解释器运行时实施检查,可以发现数组和字符串访问的越界;Java提供了异常处理机制,以便从错误处理任务恢复
5.安全机制:当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类加载到单独的内存区域,避免应用程序之间相互干扰破坏,最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。
9.多线程
Java提供的多线程机制是应用程序能够并发执行,提供的同步机制保证了对共享数据的正确操作。通过多线程,可使用不同的线程完成特定的行为,而不需要采用全局的事件循环机制。
10.分布式处理
分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。