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

简单来说Java程序的运行机制分为编写、编译和运行三个步骤。

1.编写

编写是指在Java开发环境中进行程序代码的编辑,最终生成后缀名为“.java”的Java源文件。

2.编译

编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,该文件可以被Java虚拟机(JVM)的解释器正常读取。

3.运行

运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java源文件由Java编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的Java解释器来解释执行,因此Java是一种在编译基础上进行解释运行的语言。

在运行Java程序时,首先会启动JVM,然后由它来负责解释执行Java的字节码,并且Java字节码只能运行于JVM之上。这样利用JVM就可以把Java字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对于特定具体平台的JVM,Java程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。JVM把这种不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM是Java平台无关的基础,Java的跨平台特性正是通过在JVM中运行Java程序实现的。接下来了解一下Java的运行流程,如图所示。

Java运行流程

图中,从编写出来的Java源文件,到编译为字节码文件,再到通过JVM执行程序,然后将程序的运行结果展示给用户,这是一个完整的Java运行流程。
  
本文来自千锋教育,转载请注明出处。

Java技术分享:Java的运行机制相关推荐

  1. hibernate savealiasentity 保存后id为空_好程序员Java教程分享Java面试题之Hibernate

    好程序员Java教程分享Java面试题之Hibernate 1.简书一下Hibernated的开发流程 第一步:加载Hibernate的配置文件,读取配置文件的参数, 第二步:创建SessionFac ...

  2. java 保留html_好程序员Java培训分享Java包是什么?

    好程序员Java培训分享Java包是什么?在Java中的包是一种封装一组类.子包和接口的机制,可用于组织一组相关的类和接口.从概念上讲,我们可以将包视为类似与计算机上的不同文件夹:可以将HTML页面保 ...

  3. 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法

    好程序员Java培训分享Java集合的两种排序方法,Java集合的工具类Collections中提供了两种排序的方法,分别是: 1.Collections.sort(List list) 2.Coll ...

  4. 好程序员Java培训分享Java初学者必读

    好程序员Java培训分享Java初学者必读,近年来各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java.因此,也是吸引了 ...

  5. Java培训分享Java中级面试题

    Java培训分享Java中级面试题合集:1.弹出式选择菜单(Choice)和列表(List)有什么区别 Choice是以一种紧凑的形式展示的,需要下拉才能看到所有的选项.Choice中一次只能选中一个 ...

  6. MyCat:第二章:Mycat前世今生(1),java技术分享主题

    高可用性: 分片节点dn2_M1配置了两个dataSource,并且配置了心跳检测(heartbeat)语句,在这种配置下,每个dataNode会定期对当前 正在使用的dataSource执行心跳检测 ...

  7. java入门(1) 程序运行机制及运行过程

    首先我们来看一下java程序在底层是怎么工作的: JAVA有两种核心机制: Java虚拟机(Java Virtual Machine): 1.java虚拟机可以理解成一个以字节码为机器指令的CPU. ...

  8. Java技术分享:什么是数据库连接池?

    在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源.这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源.Java程序则 ...

  9. 多线程某个线程异常了怎么处理_技术分享|Java多线程之高并发处理

    黄  静 合肥科技研发中心 进程与线程的简介 (1) 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,即进程空间或(虚空间). (2) 线程是指进程中的一个执行流程,一个进程中可 ...

最新文章

  1. android读取外部图片,Android读取本地图库与调用摄像头拍摄
  2. 关于COUNT STOPKEY的工作机制
  3. 编程语言的“别样”编年史
  4. Oracle入门(十四.6)之使用标量数据类型
  5. 4月21日会议总结(整理—祁子梁)
  6. C#实现浮动和多标签窗体解决方案---使用Dockpanel
  7. antv图例出现分页_图例-自定义文本样式
  8. 新商业时代最大的机会在于创业市场
  9. JQuery Highcharts 图表控件
  10. mpvue 微信小程序设置背景音乐
  11. 全国计算机三级嵌入式资料
  12. Linux 之shell脚本编程
  13. oracle北京时区,Oracle中的时区偏移
  14. linux执行jar的两种方式
  15. uni-app 初始化项目
  16. win7下搭建Nginx简单图片服务器
  17. 看google如何招人
  18. 20张高清数据分析全知识地图,拿去吧你
  19. 如何在IDEA中导入eclipse项目
  20. python实现截竹竿

热门文章

  1. 机器学习理论《统计学习方法》学习笔记:第十章 隐马尔可夫模型(HMM)
  2. 最长上升子序列(LIS)算法
  3. 使用onnx包将pth文件转换为onnx文件
  4. 【Java报错】记录一次调用递归方法导致的 StackOverFlowError 及如何重构递归代码避免栈溢出
  5. 那些年,我的数据结构课设,现在满满的回忆!(现如今身处内卷之中,已经很难出现当初那份乐趣了)
  6. redis的基础命令操作
  7. Mybatis-Dao层实现(通过代理方式)
  8. @RequestParam和@RequestBody
  9. Spring Boot——LocalDateTime格式化配置
  10. Connections between cities