从零学Java:计算机语言的发展过程、Java语言的优势、运行机制

计算机语言发展过程:

对计算机语言的发展历程感兴趣可以查阅一些相关的资料,我就不过多赘述。
我们知道如果希望计算机能够帮助我们完成一些事情、那么我们需要告诉它一些算法和指令、我们可以将算法看作是计算机的灵魂、而编程语言就是塑造计算机灵魂的工具。

  • 计算机语言可笼统的分为三代:
    1 机器语言
    机器语言相当于人类的原始阶段、一些简单的操作需要经过大量的算法指令完成。机器语言由二进制数0和1组成的、虽然它能够直接被计算机所识别、效率极高但缺陷在于难以解读。
    2 汇编语言
    汇编语言相当于人类的手工业阶段、它的出现是时代的进步自然而然的产物。汇编语言通过英文单词替代了一些复杂的运算、相较于机器语言可读性有显著的提高。但其学习成本和使用成本也是非常高的、需要在非常了解机器语言的前提下还要对汇编语言的语法有所掌握。汇编语言需要经过一次编译的阶段后再由计算机去运行编译后的结果。它的缺陷是没有结构化的设计原则(goto的弊端)、没有一定的水平很会造成代码非常混乱的问题。
    3 高级语言
    高级语言相当于人类的工业阶段、学习成本相较于汇编语言更低、并且学习更简单、高级语言的发展越来越贴近人的思维。

Java语言的特性及优势:

学习JAVA语言,首先我们需要知道它相较于其他的语言有哪些优势和特性。

  • 跨平台、一致性:
    Java程序是运行在JVM虚拟机中的、由JVM虚拟机负责与操作系统进行交互、即便更换了操作系统,由于操作系统的不同、我么需要下载该操作系统所对应的JVM虚拟机版本即可实现“一次编译、到处运行”的效果。
  • 安全性:
    Java不支持指针操作、由于指针功能太过于强大、它会对系统其他应用程序造成很大的困扰。Java非常适用于网络/分布式的环境下运行的。
  • 简单性:
    Java实际上就是C++编程语言的简化版、虽说运行效率必然C++更胜一筹、但Java移除了繁琐的指针、内存回收操作等、我们使用Java进行开发的时候可专注于业务逻辑(Java提供了许多的工具类)而非内存释放等问题。
  • 高性能:
    起初Java程序的运行效率并不高、但随着时间的推移和版本的更迭、通过JVM虚拟机的优化及Java语法本身的优化等、如今Java程序的运行效率也是非常高的。
  • 多线程:
    在Java程序中实现一个接口或继承一个类就能够实现多线程、在WEB开发中、服务端在处理一个请求的时候会启动一个线程、而多线程可以打造性能非常高的服务器。
  • 健壮性:
    Java语言具备了C和C++的优点、并且Java程序出现异常不会直接对操作系统有所影响、程序发生异常后能够安全的退出

Java程序的运行机制:

首先我们需要知道两个计算机高级语言的两个概念、编译型语言和解释型语言。

  • 编译型语言:
    在执行前需要有一个编译的过程、通过编译器将代码编译成机器码、随后计算机运行。
    如C或C++就是编译型语言、它们在运行程序的时候不需要重新进行编译、而是运行编译后的结果、所以效率会非常高、但跨平台性差一些。
  • 解释型语言:
    在程序运行的时候进行编译、每运行一次都会进行一次编译、效率相较于编译型语言稍逊一筹、如JavaScript、Python就是解释型语言。

而Java语言是编译型语言、解释型语言的两种结合

  • Java程序的运行机制:
    1 编写Java源代码(java程序的源代码文件都是以.java结尾的)
    2 通过java编译器(javac.exe)将java源文件编译成.class的字节码(java源文件进行编译后会产生.class为后缀的字节码文件、.class文件放在JVM虚拟机中运行)文件
    3 将.class文件装载到JRE(java.exe)中、它经过类加载器、字节码校验器后被JVM虚拟机(解释器)所执行。

需要注意的是、.class文件不是直接和操作系统进行交互的、操作系统运行的是JRE(JVM虚拟机)、JRE负责和操作系统进行交互、JRE在其中的角色相当于平台。
了解了Java程序的运行机制、知道了Java程序能够实现跨平台的原理也是因为虚拟机的存在。

猜你喜欢

转载自blog.csdn.net/weixin_38858343/article/details/83181074