小白Java笔记——运行机制

前言:本身脑子就不好使,将自己看到的大体记下来,以后逐渐熟悉了,重温方便修改。

      java语言既有解释性,又有编译性。其程序需要先经过**编译**再**解释**。
      一、高级语言的运行机制
         程序执行方式可分为:编译型和解释型。
         (一)编译型语言
        优点:可以一次性编译成机器码,因此可以脱离开发环境独立运行,效率高;
        缺点:与之对应的平台的移植性不好。
        代表:c、c++、fortran、pascal等高级语言。
         (二)解释性语言
        优点:移植性好,只要提供特定平台的解释器,就可以跨平台使用;
        缺点:当然了,用脚趾头想想就知道,肯定效率会低,因为每次运行都需要经过编译嘛。
        代表:Ruby、Python等语言。
         (三)伪编译型
         如Visual Basic暂不详记。
      二、Java运行机制
        前面提过一嘴,Java语言需要经过编译,但并不是编译成机器码,而是与平台无关的字节码*.class;然后必须经过Java解释器进行解释。 
        so,Java语言既是编译型语言,也是解释型语言。就像混血儿有木有。。。
        过程简单画了一下:
        ![java运行机制](https://img-blog.csdn.net/20171122213049600?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTHVuYXRpY19mZWk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 
        同时解释一下JVM,他的作用是让相同的字节码可以在不同平台运行,其实就是充当了转换器。他是一个抽象的计算机,据哟指令集并使用不同的存储区域。负责执行指令,还要管理数据、内存和寄存器。
        JVM被具体定义了一下细节,具体以后再详细记录:
        1.指令集2.寄存器3.类文件的格式4.栈5.垃圾回收堆6.存储区
        (其实就像单反,为了省钱买了一个没牌子的镜头,想要可以装在佳能和尼康的机子上就需要再买转接环,字节码就是镜头,JVM就是转接环喽。)

关于跨平台的具体解释:跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不依赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。(来自百度百科)
关于可移植性的具体解释:可移植性是软件质量之一,良好的可移植性可以提高软件的生命周期。代码的可移植性主题是软件;可移植性是软件产品的一种能力属性,其行为表现为一种程度,而表现出来的程度与环境1密切相关。(注1:环境包括软件环境,硬件环境和系统的组织环境)。软件可移植性指与软件从某一环境转移到另一环境下的难易程度。(来自百度百科)

以上内容包括之后的“小白Java笔记”系列都学习自《疯狂Java讲义》,不再一一赘述了。

你可能感兴趣的:(Java基础)