一、java程序运行机制
编译型和解析型其实都是翻译的意识,主要是翻译的时间点不一样。时间点不一样看起来有点不好理解,比如一个外国人想看中文书籍,可以一次翻译整本书(编译型),也可以看的时候看一句翻译一句(解析型)。
主要区别在于,前者源程序编译后即可在该平台运行,后者是在运行期间才编译。所以前者运行速度快,后者跨平台性好。
一、编译型
一次性的编译(翻译)成平台相关的机器语言文件,运行时脱离开发环境,运行效率高,比如C、C++都是编译型语言。
二、解析型
使用专门的解释器对源程序或中间文件(例如java的字节码)逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态解析和执行,而不是在执行之前就完成全部编译(翻译)。只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植
三、编译型与解释型,两者各有利弊
前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、Python等等。
四、JAVA程序运行机制
java是先经过一次预编译(javac命令编译)成字节码文件,然后再通过JVM解析执行。所以说java既有编译型特性也有解析型特性。JAVA简单的运行机制如下图:
java针对不同的平台有不同的JVM,实现了跨平台。所以Java语言有一次编译到处运行的说法。其实是一次编译成字节码中间文件(*.class文件),最终还是需要 jvm的解释,才能在各个平台执行,这也是java跨平台的原因,如下图:
一、java程序运行机制相关推荐
- 【Java开发语言 01】第一章 Java语言概述(基础常识+Java语言概述+Java程序运行机制及运行过程+Java语言环境的搭建+开发体验hello world+错误:编码GBK的不可映射字符)
java入门-第一章Java语言概述 1基础常识 软件开发 人机交互方式 常用的DOS命令(win系统,有一些直接通过命令执行的) 2 Java语言概述 什么是计算机语言 关于面向对象和面向过程 Ja ...
- Java程序运行机制简介
Java程序运行机制 Java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征,因为Java程序要经过先编译,后解释两个步骤. 高级语言的运行机制 计算机高级语言按程序的执行 ...
- 【java程序运行机制】
java程序运行机制 Java既是编译型语言也是解释型语言,java源文件通过java编译器变成class文件(预编译),然后将class文件放入类装载器里面,经过字节码校验器和解释器,最后交给操作系 ...
- Java程序运行机制及IDEA安装
Java程序运行机制 每日名言 时间的步伐有三种:未来姗姗来迟,现在像箭一样飞逝,过往永远静立不动.--席勒 高级编程语言类型为两种: ①编译型 compile ②解释型 javaz同属于这两种,这两 ...
- java程序运行机制
计算机高级编程语言分为两种: 编译型:针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式. 一次性的编译成平台相关的机器语言文件,运行 ...
- Java程序运行机制及其运行过程
java两种核心机制:java虚拟机跟垃圾回收机制.本文主要讲的是jvm运行java程序. (一)终端中如何运行一个java程序(这个是我在mac下运行的,windows下原理是一样的,大同小异) 做 ...
- java入门(1) 程序运行机制及运行过程
首先我们来看一下java程序在底层是怎么工作的: JAVA有两种核心机制: Java虚拟机(Java Virtual Machine): 1.java虚拟机可以理解成一个以字节码为机器指令的CPU. ...
- Java技术分享:Java的运行机制
初识Java,总感觉是一头雾水,不知道该如何开始自己的学习.在开始之前,必要的理论基础是不可少的,可以先了解一下,Java的运行机制,然后再写个简单的"hello world"!以 ...
- java语言运行机制与运行过程
核心机制:JVM与垃圾收集机制 JVM:java程序运行在JVM上,JVM在具体的操作系统上 垃圾回收:Java语言提供系统级线程跟踪存储空间的分配情况,在JVM空闲时检查并释放那些可被释放的存储空间 ...
最新文章
- 属于android动画的是什么,下列选项中,属于Android系统的补间动画的是( )
- python UnicodeEncodeError 编码错误总结
- 非存储过程分页- 前台分页样式和控件
- require.js基本认识
- mysql通用查询日志_MySQL通用查询日志(GeneralQueryLog)_MySQL
- 编程之美-寻找最近点方法整理
- 启明云端分享|SSW101B WIFI调试会遇到的问题答疑
- how to catch out of memory exception in c++
- keepalived+redis的高可用部署步骤
- Springboot+ssm高校会议预约系统javaweb
- 2021-2027中国家具门立柱市场现状及未来发展趋势
- 大学英语综合教程一 Unit 8 课文内容英译中 中英翻译
- sb 讲解 (!(~+[])+{})[--[~+][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]
- JavaScript-常见数组内置方法
- 基于属性的测试,hypothesis以及查找bug
- 高斯混合模型(GMM--Gaussian mixture model)
- 基于Redis(setnx)实现分布式锁
- 地下城英雄 java_用java开发dota英雄最华丽的技能(实例讲解)
- LInux7系统支持华硕H81,华硕h81主板bios设置方法步骤
- Android 判断手机厂商