1. 简单性
(1)构建一个无须深奥的专业训练就可以进行编程的系统 , 并且要符合当今的标准惯例。
(2)支持开发能够在小型机器上独立运行的软件 。虽说现在Java类库相当庞大,现在有一个独立的具有较小类库的 Java 微型版 ( Java Micro Edition ) , 这个版本适用于嵌人式设备 。
2.面向对象
面向对象设计是一种程序设计技术 。 它将重点放在教椐 ( 即对象 )和对象的接口上。
面向对象:木匠专注的是最后制作成的椅子而不是工具。
非面向对象:木匠专注的是制作椅子的工具。
3.分布式
Java 有一个丰富的例程库, 用于处理像HTTP 和 FIT 之类的 TCP / IP 协议。 Java 应用程序能够通过 URL 打开和访问网络上的对象, 其便捷程度就好像访问本地文件一样 。所谓Java分布式,即是在使用Java语言进行企业级应用开发的过程中,采用分布式技术解决业务逻辑的高并发、高可用性的一些架构设计方案。
4.健壮性
1、Java语言是一种强类型语言,即在编译和运行时进行大量的类型检查,防止不匹配的数据类型的发生
2、Java语言设计有自动收集垃圾功能,防止了内存分配的错误
3、Java语言设计了异常处理机制
5.安全性
Java 适用于网络 / 分布式环境 。 为了达到这个目标 , 在安全方面投入了很大精力 。 使用 Java 可以构建防病毒、防篡改的系统。
Java 就设计成能够防范各种攻击 , 其中包括 :
运行时堆栈溢出 。 如蠕虫和病毒常用的攻击手段 。
破坏自己的进程空间之外的内存 。
未经授权读写文件 。
6.体系结构中立
Java程序(后缀名为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀名为class文件),然后可以在实现这个Java平台的任何系统中运行。
7.可移植性
Java语言之中最大的特点在于其可移植性的支持,所谓的可移植性指的是同一个程序可以在不同的操作系统之间任意的进行部署,这样就减少了开发的难度,在Java里面如果要想实现可移植性的控制,那么主要依靠的是JVM(Java 虚拟机)。Java虚拟机是一个由软件和硬件模拟出来的计算机,所有的程序只要有Java虚拟机的支持,那么就可以实现程序的执行,并且不同的操作系统上会有不同版本的JVM存在,这样就可以实现移植性。所有Java程序的解释都要求放在Java虚拟机上处理。
8.解释型
Java 解释器可以在任何移植了解释器的机器上执行 Java 字节码。java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。
9.高性能
尽管对解释后的字节码性能已经比较满意 , 但在有些场合下还需要更加高效的性能。 字节码可以 ( 在运行时刻 ) 动态地翻译成对应运行这个应用的特定 CPU的机器码。
10.多线程
我们现在所使用操作系统都是多任务操作系统(早期使用的DOS操作系统为单任务操作系统),多任务操作指在同一时刻可以同时做多件事(可以同时执行多个程序)。
多进程:每个程序都是一个进程,在操作系统中可以同时执行多个程序,多进程的目的是为了有效的使用CPU资源,每开一个进程系统要为该进程分配相关的系统资源(内存资源)
多线程:线程是进程内部比进程更小的执行单元(执行流|程序片段),每个线程完成一个任务,每个进程内部包含了多个线程每个线程做自己的事情,在进程中的所有线程共享该进程的资源;
主线程:在进程中至少存在一个主线程,其他子线程都由主线程开启,主线程不一定在其他线程结束后结束,有可能在其他线程结束前结束。Java中的主线程是main线程,是Java的main函数。
11.动态性
Java 动态特性是其面向对象设计方法的扩展,允许程序动态地装入运行过程中所需的类。