- 简单
java语言与c语言很接近,使得大多数开发者能够快速学习和使用java语言。
java舍弃了c++中很少使用的、晦涩且容易出错的特性。
java从语法层面取消了指针,同时提供了自动内存回收机制,是开发者不必频繁编写代码显示地释放内存。
- 完全面向对象
在java世界中,万事万物皆对象。
java提供了封装、继承和多态等基本的面向对象特性,并且只支持单继承。
为了能表达多重继承的语义,同时避免引入如c++的多重继承所带来的复杂性,同时也能实现若干个接口。
- 分布式
java提供了丰富的用于编写网络应用程序的api。
java提供的rmi机制甚至允许执行网络中另一台机器上的代码,这使得一个java程序可以被分不到网络若干个不同的物理机器上,并形成一个逻辑上的整体。
- 安全
在编译阶段进行语法、语义和类型安全检查,类被装载到java虚拟机时进行字节码校验。
对于通过网络下载的类,java也提供了多层安全机制以防止程序被恶意代码侵害。
java允许用户自定义安全管理器,以便灵活地控制访问权限。
- 健壮
java具有强类型检查、异常捕获及处理、资源自动释放以及垃圾自动回收等机制,为程序的健壮性提供了重要的保证。
- 平台中立与可移植
为使java程序能够运行在网络中的任何平台,java源文件被编译为平台中立的字节码文件,后者可以在所有实现了相应规范的java平台上运行。
- 解释型
java源文件被编译为平台中立的字节码,而后者是cpu无法直接理解的,因此需要平台上的java虚拟机将这些字节码解释成cpu能够理解的指令并交由cpu执行。
平台中立与可移植性决定了java是一种解释型的编程语言。
- 高性能
随着今年来JIT编译以及HotSpot等字节码优化技术的出现,java程序的性能已非常接近于C++。
java以极小的性能损失为代价所换取的平台中立与可移植性却是非常有价值的。
- 动态特性
java是可扩展的、具有动态特性的面向对象编程语言,用java编写的程序能够较好适应不断变化的业务需求。
java语言的动态特性更多的体现在反射机制上,反射机制允许在运行而非编译阶段动态访问类和对象的元数据,这使得java语言比哪些直接编译成本地代码的语言更具动态性。
动态编程语言:能在运行时修改变量类型。
java属于静态编程语言的范畴。
10.开源
任何个人和组织都可以免费下载JDK核心类库的源代码,任何java开发者都能扩展官方代码,从而创建出适合自己需求的类库。
开源使得java语言的功能和特性日趋丰富,同时也使得开发java程序越来越方便。