Java语言的特点

首先放一下Sun公司对Java的定义

A simple, object-oriented, distributed, interpreted, robust,
secure, architecture-neutral, portable, high-performance, 
multi-threaded, and dynamic language。

翻译如下:Java是一种具有“简单、面向对象、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行”等特性的语言。

就从上面挑几个特点写一下我的愚见吧。

1 面向对象

Java是纯面向对象的语言,这一点与Python、C++很不同,Python与C++都既支持面向对象又支持面向过程,这也就不难理解为什么很多人用C++写着C程序了。

2 与体系结构无关

这个特点也叫做跨平台,核心思想是Write once, run anywhere!

先说一下与体系结构有关的语言会有什么问题。
如果是在windows上面用C或C++写的程序,在windows上面编译后可以运行,但编译后的可执行文件无法在linux系统上运行,反之亦然,也就是说,不同的平台需要重新从源码编译,有时可能会因为环境问题会编译不通过,这就需要重修修改源码,可想而知是多么麻烦!

但在Java语言中,只需要编译一次,便可以在不同的系统上面运行,这主要是通过Java虚拟机(JVM)实现的,请先看下图:

javalibrary中文网 javatutorial中文_Java

上图中,最下面是三种操作系统(Windows,Linux与Mac),中间是Java虚拟机,最上面是程序员写的Java程序,颜色相同表示该程序可以在该操作系统上运行。可以看到,Java虚拟机在其中作为一个桥梁,Java程序只需要与Java虚拟机进行适配,而不需要与不同的操作系统进行适配,从而也就实现了Write once, run anywhere!的功能。

Java虚拟机为了与不同的操作系统进行适配,制造出了字节码的概念,这个字节码是与不同的操作系统无关的。Java源码首先编译为字节码,然后Java虚拟机将字节码解释成不同操作系统上的机器码,从而执行程序。

3 解释性语言

Java程序的执行过程:Java程序首先经过编译后会得到字节码文件(后缀为class文件),然后再由虚拟机对字节码文件进行解释从而执行程序。
官方对Java的定义中是解释型语言,不过Java也带有编译型语言的特点,算作“半编译,半解释”吧,这里就不做过多讨论了。

End

就先写到这里,等以后学习Java更深入后并对Java的其他特点有了深入的体会之后再来更新。