提示:本文中部分内容图片节选自互联网,无意冒犯。如有侵权请私信联系作者即可删除、更改。

文章目录

  • 前言
  • Java的基本组成
  • 术语引用

前言

编程语言的两种常见的程序运行方式:编译执行、解释执行。

  1. 编译执行:
    源文件(程序员编写的文件。如:Java中的.java文件)经过编译器编译后生成目标机器的机器码文件,所以运行效率很高,缺点是不能跨平台,此方式的程序适合复杂的算法程序。
  2. 解释执行
    源文件经过解释器逐行翻译成机器码并执行。这种方式可跨平台。因为只需要在不同平台上安装不同的解释器就可将源文件解释为不同平台的机器码,但由于解释执行需要解析平台然后逐行解释,花费的时间较长,执行效率低。脚本语言一般都是解释执行。如Javascript。
    Java结合两者提出先编译后解释的运行方式:源文件(.Java)经过编译器编译后转换成字节码文件(.class文件,这种文件是Java虚拟机通用识别语言,并为机器码文件)再由解释器逐行翻译成机器码并执行。
    这样相比于直接解释的编程语言而言提高了运行效率,并且保留了跨平台的特性。如下图为java 的运行方式:


由图可知,java的跨平台是因为JVM对不同操作系统或者平台分别做了支持,并且屏蔽了系统间的差异。

Java的基本组成

如下图为最流行的Java语言结构图:

下边为图中的组成进行简单介绍:

  1. JDK
    全称Java Development Kit, 是Java 语言的软件开发工具包 (SDK)。Java开发环境。包含JRE 、开发工具Tools、编译器Javac、调试工具jdb、Java执行器Java、文档生成器Javadoc.exe、Java打包器等。是Java语言开发使用的基础开发包。

  2. JRE
    全称Java Runtime Environment,是Java运行时环境包。用于Java运行,包含Java虚拟机和标准类函数库(API Lib),是Java程序程序运行的环境。

  3. Java Virtual Machine
    简称:JVM ,是Java虚拟机。JVM规定一个整形空间位为4个字节,用于屏蔽各个操作系统底层间的差异。JAVM规范定义了指令集、寄存器集、类文件结构、堆栈、垃圾收集堆、内存区域。使所有软件在不同操作系统中拥有相同的运行环境。所以Java源文件只要符合JVM规定即可,它是Java跨平台的基础。

  4. Java.lang
    Java的基础包,在Java编程中该包中的类无序引用,Java编译时自动引用该包。

图中其他部分相比于以上四种都不是太重要,就不需要过多解释了。以下说明Java的三个版本:

  1. Java EE(Java Enterprise Edition服务器企业级)
    多用于企业级开发,此版本包括web开发的各种Jar包。如Servlet和JSP以及其他一些Web相关的工具包。是在JavaSE的基础上构建的他提供Web 服务、组建模型、管理和通信API。可以用来实现企业级的面向服务体系结构(SOA)和 Web应用程序。

  2. Java SE(Java Standard Edition标准版本)
    用于一般Java程序的开发 (如桌面程序)GUI。用于开发在桌面、服务器、嵌入式环境中使用的Java应用程序。Java SE 包括支持Java Web服务开发的类,并为 Java EE提供基础。Java SE 中主要包含两种类型程序:

    Application独立程序:是现在创建的项目级的应用,需要运行时环境(JRE)才能运行。
    Applet程序:是早期用于镶嵌在HTML中非独立程序,有专门的appletViewer或者浏览器调用JVM运行,现在基本已经废弃。

  3. Java ME(Java Platform,Micro Edition)
    用于为移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供运行环境。Java ME 包括许多内置的网络协议以及对可以动态下载的连网和离线应用程序的支持。并且包含跨平台的特性。


术语引用

  • SDK:全称Software Development Kit是软件开发工具包,一般都是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
  • API:全称Application Program Interface。是应用程序可用以与计算机操作系统交换信息和命令的标准集。一个标准的应用程序界面为用户或软件开发商提供一个通用编程环境,以编写可交互运行于不同厂商计算机的应用程序。API不是产品,而是战略,所有操作系统与网络操作系统都有API。在网络环境中不同机器的API兼容是必要的,否则程序对其所驻留的机器将是不兼容的。
  • SOA:全称service-oriented architecture,是面向服务的架构是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

Java的运行机制与基本组成相关推荐

  1. Java技术分享:Java的运行机制

    初识Java,总感觉是一头雾水,不知道该如何开始自己的学习.在开始之前,必要的理论基础是不可少的,可以先了解一下,Java的运行机制,然后再写个简单的"hello world"!以 ...

  2. 【Java开发语言 01】第一章 Java语言概述(基础常识+Java语言概述+Java程序运行机制及运行过程+Java语言环境的搭建+开发体验hello world+错误:编码GBK的不可映射字符)

    java入门-第一章Java语言概述 1基础常识 软件开发 人机交互方式 常用的DOS命令(win系统,有一些直接通过命令执行的) 2 Java语言概述 什么是计算机语言 关于面向对象和面向过程 Ja ...

  3. Java程序运行机制简介

    Java程序运行机制 Java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征,因为Java程序要经过先编译,后解释两个步骤. 高级语言的运行机制 计算机高级语言按程序的执行 ...

  4. 一、java程序运行机制

    编译型和解析型其实都是翻译的意识,主要是翻译的时间点不一样.时间点不一样看起来有点不好理解,比如一个外国人想看中文书籍,可以一次翻译整本书(编译型),也可以看的时候看一句翻译一句(解析型). 主要区别 ...

  5. 【java程序运行机制】

    java程序运行机制 Java既是编译型语言也是解释型语言,java源文件通过java编译器变成class文件(预编译),然后将class文件放入类装载器里面,经过字节码校验器和解释器,最后交给操作系 ...

  6. java的运行机制与jdk和jre的区别

    java的运行机制 建立.java的源文件 Javac编译器将源文件编译成.class文件 Java解释执行器通过效验部署Jvm jdk与jre的区别 jdk是开发者工具,包含Jre运行环境,工具包, ...

  7. Java程序运行机制及IDEA安装

    Java程序运行机制 每日名言 时间的步伐有三种:未来姗姗来迟,现在像箭一样飞逝,过往永远静立不动.--席勒 高级编程语言类型为两种: ①编译型 compile ②解释型 javaz同属于这两种,这两 ...

  8. 说一下java的运行机制_Java运行机制是什么?

    不管是学习Java还是其他什么变成语言,我们不仅要了解它的特性,充分的使用Java语言完成各种程序开发工作,还要了解Java的运行机制.只有了解其底层的运行机制,才能更好的利用Java完成各项工作.J ...

  9. Java语言运行机制及运行过程

    1.4 Java语言运行机制及运行过程 lJava两种核心机制 ØJava虚拟机 (Java Virtal Machine) Ø垃圾收集机制 (Garbage Collection)1.4 Java语 ...

  10. 【转载】Java JVM 运行机制及基本原理

    原博地址:https://zhuanlan.zhihu.com/p/25713880 JVM的基础概念 JVM的中文名称叫Java虚拟机,它是由软件技术模拟出计算机运行的一个虚拟的计算机. JVM也充 ...

最新文章

  1. MVVM设计模式之精髓简化
  2. Poj 1151-Atlantis 矩形切割
  3. 借助Glances Monitor,密切关注你的系统
  4. 将jpg图像转换成yuv420p格式
  5. 使用squid配置透明代理并对上网行为进行控制
  6. 使用shouldComponentUpdate进行性能优化
  7. s3c2440地址分配
  8. Java程序员之完美代码
  9. C语言文本文件与二进制文件转换
  10. 三.因子图优化学习---董靖博士在泡泡实验室的公开课学习
  11. SCOM2012R2 APM系列(三) 配置Java应用程序监控
  12. js日期时间控件------layDate
  13. 查看linux系统语言并修改
  14. 第二章:x264视频制作meGUI工具安装
  15. 当我们在谈论瑞幸咖啡的时候,我们谈论什么?
  16. win10 搜索本地应用没反应,Cortana显示已挂起 的解决办法
  17. mysql弱口令字典_自制弱口令字典top100
  18. Python制作卡点视频
  19. 指纹图像方向图matlab,基于Matlab实现的指纹图像细节特征提取
  20. 自动驾驶领域的Android?百度能否超越特斯拉和谷歌

热门文章

  1. 云计算运维需要经常上夜班吗?需要倒班吗?
  2. Jmeter接口测试⑤——PUT请求
  3. 解决excel的date函数算大小月份不准确问题
  4. tspline工具_Rhino软件有哪些建模工具?rhino建筑建模方便吗?
  5. 清华大学计算机系陈果,复旦大学女博士,颜值高却单身至今,年轻时曾剃过光头...
  6. html怎么上下左右分div分,超级简单div上下左右居中
  7. 从零实现WebRTC(二):WebRTC的通信过程
  8. pylon保存图片_Basler Pylon 4 SDK和OPENCV 2.4.9,CPylonImage到Mat
  9. 如何正确的学习网络技术?不妨试试这套网工学习路线
  10. 计算机应用研究是国家级吗,计算机类期刊汇总(核心期刊,国家级期刊)