Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性:

●  语法简单易学

Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面:

语法规则和C++类似。从某种意义上讲,Java语言是由C和C++语言转变而来的,所以C程序设计人员可以很容易地掌握Java语言的语法。(C和C++属于高级语言,是最接近人类的语言,而不是像机器码和汇编语言那样生涩难以理解的语言)

Java语言对于C++进行了简化和提高。例如,Java使用接口取代多继承,并且取消了指针,因为指针和多继承通常使程序变得复杂。java语言还通过实现垃圾自动回收,大大简化了程序设计人员的资源释放管理工作(令人头疼的操作)。

此外Java还提供了丰富的类库(API)和文档以及大量的第三方开发包,另外还有大量的高质量的基于Java的开源项目,另外,JDK(Java开发者工具包)也开放了源代码,大家可以通过分析Java的源代码来提高自己的编程水平。

●  纯面向对象

面向对象是Java语言的基础,也是目前编程中最流行的编程方法,是Java语言的重要特性。java语言本身就是一种纯面向对象的程序设计语言。Java中提倡万物皆对象,语法中不能在类定义外定义单独的数据和方法,也就是说,Java语言最外部的数据类型就是对象(类是对象的模板,通过类来实例化对象),所有的元素都需要通过类和对象来访问。

●  解释性

运行Java程序需要使用解释器来运行,任何安装了Java解释器的计算机或设备都可以使用Java的字节码文件进行解释执行。字节码文件独立与平台,它本身携带了很多编译时的信息,使得连接过程更加简单,开发过程更加迅速。

●  分布性

Java是针对Internet的分布式环境而设计的,因为它能处理TCP/IP协议。实际上,使用URL(统一资源定位符)访问资源与访问文件没有多大区别。Java还支持远程方法调用(Remote Method Invocation,RMI)。这个特性允许程序通过网络调用方法。

●  安全性

Java语言中删除了类似C语言中的指针和内存释放等操作语法,有效地避免了非法的操作内存。Java程序代码经过代码校验、指针校验等很多测试步骤才能够运行,所以未经允许的Java程序不可能运行也不可能出现损害系统平台的行为,而且使用Java可以编写防病毒和防篡改的系统应用程序。

●  健壮性

Java语言的设计目的之一,就是编写多方面的、可靠的应用程序,Java将检查程序在编译和运行时出现的错误,并消除和预防错误的发生。类型检查能够帮助用户检查出许多在开发阶段出现的错误。而现代化的集成开发环境(IDE)的出现也使编译和运行Java程序更加简单容易。

●  多线程

Java原生支持的多线程机制能够使应用程序在同一时间内并行(同时执行)多项任务,而且相应的同步机制可以保证不同线程之间能够正确地共享同一份数据。使用多线程,可以为程序带来更好的交互能力和实时行为。

●  高性能

Java编译后生成的字节码文件是在解释器中运行的,所以它的速度较多数交互式应用程序提高了很多,另外,字节码可以在程序运行时被翻译成特定平台的机器指令,从而进一步提高运行速度。现在,通过对解释器的不断优化,使Java语言和C、C++等语言相比在运行速度上没有差别,在某些方面甚至要快过其他语言编写的程序。

●  动态性

Java程序本身带有大量的运行时类型信息,这些信息可以用于在运行时验证和解决对象访问问题。这使得以一种安全、方便的方式动态地链接代码成为可能。对于那些可以在运行的系统中动态更新小段字节码的Java环境的健壮性来说,这一特性也是很关键的。

最新文章

  1. Swift—调用系统相册和相机
  2. OpenCASCADE Root-Finding Algorithm
  3. 《python核心编》程课后习题——第三章
  4. 给JBoss种蛊分析
  5. Windows系统端口占用情况检查脚本
  6. C++一些特殊的类的设计
  7. 04JS高级动态添加属性和删除属性
  8. 利用PowerDesigner15在win7系统下对MySQL 进行反向project(二)
  9. React Router 使用教程
  10. docker学习笔记(一)—— ubuntu16.04下安装docker
  11. Java数据解析之JSON
  12. 自己对Web标准的理解
  13. mssql 数据库表行转列,列转行 比较经典
  14. 基于redis的延迟消息队列设计(转)
  15. MySQL存储过程定义中的特性(characteristic)的含义
  16. SSM项目问题中遇到 GET请求中有中文的情况
  17. 转-Asynchronous bulk transfer using libusb
  18. PD 之 连接数据库并导出数据及生成PDM文件
  19. (转)Windows下MySQL :GUI安装和使用(MySQL GUI tools)
  20. [javaSE] 集合框架(TreeSet)

热门文章

  1. 数据解析,懒加载,代理ip
  2. 【栈】日志分析(BSOJ2981)
  3. hadoop —— MapReduce例子 (数据去重)
  4. spring 路径配置通配符是如何实现的
  5. RQNOJ 311 [NOIP2000]乘积最大:划分型dp
  6. CC通信软件list
  7. BZOJ_2064_分裂_状压DP
  8. September Challenge 2017
  9. Node.js集成支付宝接口注意事项
  10. 杂项:OASIS(结构化信息标准促进组织)