2020年Java编程语言-入门篇

本篇文章为Java语言的开篇,通过本篇文章的描述,你可以快速地对Java有一个基本的认识。文章将介绍Java的特性,原理以及应用范围等。

1. Java编程语言

​ 简单来说,Java是一种面向对象的高级编程语言,它具备以下一些特性:

  • 易于学习和使用
  • 解释型语言
  • 面向对象编程
  • 具备多线程能力
  • 平台无关性
  • 可移植性强
  • 高性能
  • 稳健强大
  • 安全性高

有一点需要明确的是,Java是一门解释型的语言,虽然Java源代码需要通过Java编译器进行编译,但最终这些编译后的字节码是通过Java虚拟机(JVM)解释执行的。下图是Java软件开发的一个基本流程:

在Java语言中,所有的源代码都使用纯文本进行编写,并使用.java作为文件的后缀名,下面是一个Java源代码的简单示例:

/**
 * 第一个Java示例应用程序:向世界问好!
 */
public class MyApplication{
    public static void main(String[] args){
        System.out.println("Hello  World!")
    }
}

然后,Java源代码文件将由javac编译器编译为.class文件,一个.class文件包含了所有Java虚拟机(JVM)所需要的字节码,下面是编译.java源文件的示例:

javac MyApplication.java

最后,使用Java运行工具,将.class字节码文件放入Java虚拟机中并运行应用程序,下面是运行Java程序的示例:

java MyApplication

2. Java语言平台无关性

​ Java另一个吸引开发者的特性是一次编译,到处运行,即跨平台运行。使用Java语言编写的应用程序可以在任何操作系统和硬件上运行。Java语言是如何做到这一点的?其中的奥妙在于Java编译器编译完成的.class字节码文件与具体的操作系统无关,而在运行时,将由Java虚拟机解释执行这些字节码。具体流程如下图:

从上图可以看出,经过编译后的Java源文件,通过JVM(Java虚拟机)可以在不同的操作系统上运行,例如Microsoft Windows Operation System,Solaris操作系统(Solaris Operation System),Linux操作系统(Unix/Linux Operation System)以及Mac操作系统(Mac Operation System)。借助Java虚拟机,使Java语言真正具备了一次编写,到处运行的能力(Write Once,Run Anywhere-WORA)。

3. JVM平台相关性

​ 需要特别区分的是:Java语言是平台无关的(跨平台运行),但并不意味着JVM(Java虚拟机)也是平台无关的。JVM用于将字节码转换为操作系统可执行的机器语言,但不同的操作系统器其所能执行的二进制机器码是不一致的,因此,JVM需要依赖于具体的操作系统。不同的操作系统将对应不同的JVM。Windows OS使用的JVM不能在Linux/Unix OS上使用,同理,其他操作系统使用的JVM也不能相互使用,所以,JVM是平台(OS)相关的。我们可以在Oracle官网看到,官方为开发者提供了不同操作系统所使用的JVM。

4. Java 平台

​ 所谓的平台,可以简单的概括为操作系统和底层硬件的组合,例如Android平台,Microsoft Windows平台,Linux/Unix平台,Mac平台等等。与上述这些平台不同的是,Java平台是一个虚拟化的平台,它只有软件的部分,也正是因为如此,Java平台可以很容易的在其他的硬件平台上运行。

​ Java平台主要包含两个部分:

  • Java 虚拟机(JVM-Java Virtual Machine)
  • Java应用程序编程接口(Java API-Java Application Programming Interface)

JVM(Java virtual Machine)不是一个具体的机器(相对于硬件),它是一种基于软件的抽象机器。JVM定义了一组规范,并提供了在JVM中执行.class字节码的运行时环境;Java API可以简单的理解为诸多编程可用的组件集合,这些组件封装了大量的功能,复用这些现有组件,可以提高编码时的工作效率。

5. 为什么选择Java?

为什么选择Java?我们先来看两张编程语言排行表和走势图:

理由一:面向对象的编程语言

Java时面向对象的编程语言,这意味着它遵循一种编程风格:基于类,对象,继承等概念,这有助于保持系统的灵活性和可扩展性。

理由二:开放源代码

Java是开源的,它拥有大量可供选择的代码库,与此同时,在Java源代码的基础上,开发人员还可以更具项目要求对其进行扩展,最大限度的复用现有的代码,这使得使用Java开发应用的成本得到降低。

理由三:强大的社区支持

Java有着强大的社区作为支持,在此基础上,还有很多优秀的第三方厂商都支持Java语言,如我们熟知的Spring,Hibernate,Android等。你可以在各大Java社区中获得完善的,高质量的文档,教程,示例等资源。

理由四:跨平台

Java语言是平台独立的,这意味着它可以在各种平台上运行。Java的经典名言:“Write Once,Run Anywhere”很贴切的表达了Java这一特性,开发人员只需要编写一份Java代码,便可借助JVM在不同的操作系统中运行Java程序。

理由五:分布式

Java语言可以使用远程方法调用(RMI)来共享系统资源。在网络区域中,借助RMI可以轻松实现多台服务器之间的通信和资源共享。

理由六:安全

Java语言的安全性比较高,它提供了对象封装和数据抽象,我们可以通过这些特性对数据的访问权限进行控制。

6 .结束语

​ 文章最后,谈谈一个让诸多程序员一直津津乐道的问题:“谁是世界上最好的语言?”,在这里,我想借由一个比喻谈谈我的看法:

自行车是一个很好的代步工具,绿色环保,小巧方便,通过性好,这就好比某些轻量级的编程语言,容易上手;而四个轮子的汽车相比于自行车而言,驾驭难度大,不那么环保,体积大,容易堵车,但不能因此说自行车是最好的交通工具,大部分情况下,自行车是娱乐休闲健身使用,而汽车大部分情况是为了效率和速度。如果将Java比作一台汽车的话,我青睐于它的原因是:它能上高速,安全系数高,驾驶舒适,有成就感,而自行车不能上高速,载重也干不过汽车。