Java生态系统:一、java的语言特性

来源:互联网 发布:淘宝个人c店代运营 编辑:程序博客网 时间:2024/05/20 18:55
     Java已经变得越来越受欢迎,使用java语言进行软件项目开发的工程师也是日趋庞大,虽然android系统使用java作为开发语言有很多其他的缘由,但是java语言的拥护者众多,应该也是android系统开发者考虑的缘由之一。

让我们来看看最新的编程语言排行榜:


     由上图可以看到,java语言屹立于面向对象编程语言第一位,java语言被开发者广泛地接受,这必然和这门语言的设计架构和语言特性有着莫大的关联,就如SUN公司在java语言白皮书中所披露的:java是简单的,面向对象的,分布式的,解释性的,健壮的,安全的,结构独立的,轻便的,高性能的,多线程的,动态的。

下面我们一一来看看java的这些语言特性。

  • 简单

     也许有人觉得没有编程语言是简单的,但是java的确比广受欢迎的C++语言要简单,在java语言出现之前,C++是主要的软件开发语言,正是由于C++并不是那么容易,所以那个时候软件工程师们的门栏还是比较高的。

为了极大程度上削弱编程语言学习上的难度,java去除了在C++中比较复杂的概念,比如指针和多重继承,在java中使用接口技术来间接实现多重继承。

     java中使用自动内存分配和自动垃圾收集机制,而在C++中,需要程序员自己去手动地分配空间和收集垃圾,虽然这样更加灵活,然而这对于一个编程新手,往往是很难把握得好的。

  • 面向对象

     Java是完全彻底的面向对象的语言,而在C语言基础上发展起来的的C++,并不是完全满足面向对象特性。对于越来越庞大和复杂的软件开发需求,使用棉线对象技术的好处是显而易见的。

     使用过程化编程语言开发的软件系统是基于流程图实现的,然而面向对象编程语言是基于实际物理世界对象模型来进行编程的。自然世界中的任何事物都能够被作为一个对象来进行建模。

面向对象编程实际上就是创建对象,操作对象的一系列过程。

     面对越来越复杂的软件系统,每次都从零开始进行开发显然是不明智的选择,那么代码的重用就能够大大地加速软件开发的进度,将具有共性的代码进行类的封装,然后在其他地方进行合理的重用,是当前软件开发迅速发展和进步的根基。

  • 分布式

     分布式计算就是几台电脑通过网络共同工作。Java可以使得分布式计算变得更简单。由于java语言内在强大的网络能力,编写网络程序就如同从一个文件中接受数据和向一个文件中发送数据一般地简单。

  • 解释性

     需要一个解释器来运行java程序。程序在运行之前,会被java虚拟机编译成称为字节码的代码文件。字节码是依赖于虚拟机的,所有只要存在java虚拟机的地方,就能够运行java程序,这也就是java语言跨平台的核心原理。

     大多数编译器都是将高级程序的语言转换成机器代码。而这种代码只能在本地机器上运行。如果你要使得代码在其他机器上面运行,则需要在相应的平台上编译代码。

     java虚拟机相当于就是java字节码和对应平台代码之间的一个中间层或者叫做转换器,JVM可以将一次编译的字节码,编译成其他任何平台上面能够运行的机器代码。这种模式的弊端就是性能上面的削弱,但是由于硬件性能的迅速发展,这一点就并不是那么重要。

  • 健壮性

     没有程序语言能够完全保证是可靠的。java语言提供了一系列的错失,来确保能够尽早地发现可能存在的错误,因为相对于其他语言在运行时发现错误的机制,java编译器能够在程序编译的时候就监测许多问题。

java去掉指针机制以及手工分配内存机制,就是为了更大程度上保证程序的健壮性。

     java同样提供运行时异常处理特性来支持程序的健壮性。java要求程序员在编写程序时,要编写异常处理代码来处理可能出现的异常。通过异常处理代码,程序在运行时遇到错误异常的时候,也能够继续执行后面的操作或者安全地退出程序。

  • 安全性

     作为拥有强大网络编程能力的语言,在网络和分布式的环境下,保证安全性无疑是至关重要的。由于java程序都在JVM中运行,所以不安全的程序至多只会摧毁虚拟机,而不会损害你的操作系统,JVM为用户和操作系统提供了一个天然的屏障。

  • 结构独立

     由于java是解释性的语言,这个特性使得java是结构独立的,或者称为平台独立的。使用JVM,你能够使得所写的java程序在任何平台上面运行。

  • 便携的

     由于java是结构独立的,所以java程序是便携的。java程序能够在任何平台上面运行,而不用被重新编译。并且在java语言中,并不存在依赖于特定平台的语言特性。

  • 性能

     java语言的性能通常是遭人病诟的。没有语言能够在所有方面都做到最优,在某一方面非常优秀,通常是因为牺牲了其他方面的特性,这有点像芯片设计中的trade-off,跨平台的字节码设计必然会牺牲程序的执行速度。

     然而硬件速度的提升,显然可以弥补java这边面的劣势,而且java语言开发的软件程序,通常是需要和用户进行交互的,所以只要程序运行速度能够快过用户的操作速度,就不会有太大的问题,如果是要进行大规模的数值计算,数据处理或者语音图形处理,当然还是首推C++C语言,甚至更加接近底层的汇编语言。

  • 多线程

     多线程是程序同时执行多个任务的能力。java语言很自然地支持多线程编程,而不需要特别地调用操作系统中的程序来启动多线程。

     在网络编程和图形用户界面编程中,多线程是非常重要的,因为通常用户会同时执行多个操作,或则在执行一个操作的同时,希望另外一个操作也在同时运行。

     多线程编程需要解决进程间同步,以及避免临界区资源冲突而导致的死锁。

  • 动态特性

     Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且 Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。

原创粉丝点击