Java是一种面向对象的语言,最显著的有两个特征:

  • 一次编译,到处运行。即Java的跨平台能力
  • 垃圾回收。管理内存的分配和回收

Java的跨平台能力:

Java是跨平台的语言,主要体现在Java源代码经过Javac编译成.class文件,然后经过jvm编译或解释为机器码文件。

Java语言的发展历史分为以下几个阶段:

  • 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器
  • 1994年将Oak语言更名为Java
  • 1998年JDK1.2时,更名为Java 2 Platform
  • 分为标准版J2SE,企业版J2EE,微型版J2ME
  • Java 既安全、可移植,又可跨平台,而且人们发现它能够解决Internet 上的大型应用问题
  • Java 既安全、可移植,又可跨平台,而且人们发现它能够解决Internet 上的大型应用问题
  • Internet使Java成为网上最流行的编程语言
  • Java对Internet的影响也意义深远

Java帝国想要发展壮大,就必须面对当时如日中天、独占鳌头的C语言。

而Java的跨平台似乎也在隐射着C语言的某个缺点:我们都知道C语言需要经常调用操作系统层面的API,不同的操作系统,API一般不同,为了能在不同的平台上运行,C语言的源文件需要根据不同的平台修改多次。

但是不同的平台,可执行的机器码必然是不一样的,源代码自然需要根据不同的平台分别被编译。

这时候Java语言的高明之处就体现出来了,Java将被执行的程序处理为两个阶段,即:编译与运行两个阶段。JAVA先将源文件编译成字节码文件(.class),字节码仍然不会被计算机识别执行,再进一步将字节码处理成二进制 ——JVM。这里可以看看关于:JVM简笔-类的加载

JVM是一个桥梁,在不同的平台有不同的版本。Java虚拟机负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行Java程序。这个过程中,Java程序没有做任何改变。

所以,严格来说,Java语言并不是跨平台的,而是在不同的平台上都有能够让Java运行的运行时环境,即Java虚拟机。

GC回收:

Java的垃圾回收机制,是Java与C++/C的主要区别之一,作为一名Java开发者,大部分情况下不需要专门编写内存回收和垃圾清理代码,因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。

小结:

  • Java的跨平台能力
  • GC回收
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐