java内存管理-程序运行过程(一)

目录

1:什么是程序?

2:解释性语言和编译型语言

3:程序的运行过程


1:什么是程序?

计算机领域,程序就是为了能够让计算机执行某种特定操作或者说解决某种问题,而进行的一些列的指令集合
指令是由一种二进制数码组成。由两部分组成操作码、地址码
a:操作码:就是我们要完成的操作是什么样的类型或性质,比如说取数、做加减法、输出数据等等
b:地址码:操作对象的内容或所在存储单元的地址。

程序是通过程序设计语言实现的。在低级程序语言如机器语言、汇编语言中,程序是一组有序的指令序列及相关数据;在高级程序语言中,程序通常是一组说明和语句组成(数据结构+算法)


2:解释性语言和编译型语言

计算机不能直接理解高级语言,只能直接理解机器语言(即0101),所有必须把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。

翻译的方式两种:编译、解释。这两种程序方式只是翻译时间不同。为了让操作系统能够执行程序
编译执行:在执行程序之前先编译成和操作系统相关的代码,然后由操作系统执行
解释执行:执行的时候加载一个编译程序,动态的将源程序的每一行翻译成操作系统能够理解的代码

编译执行快,但不够灵活;解释执行慢,运行时就是翻译程序(对于Java就是Java虚拟机),优点比较灵活

JVM(Java虚拟机)就是充当翻译的角色,所以说Java是解释型语言,跨平台语言。不同的操作系统上可以安装不同的JVM,也就实现一次编程可以到处运行

 

3:程序的运行过程

Java程序运行的过程中,不得不说三个组件:Java程序、Java虚拟机和操作系统。Java程序的运行需要Jvm,JVM又要与操作系统交互获取内存和释放内存
Java程序的执行过程:

java内存管理-程序运行过程(一)_第1张图片

a:程序运行前

当程序准备执行时,由JVM向操作系统请求一定的内存空间,称为初始化内存空间。程序执行过程中所需要的内存都是由JAVA虚拟机从这片内存空间中划分。这样做的一个重要优点保证了程序的平台无关性
java内存管理-程序运行过程(一)_第2张图片

b:程序运行中

JAVA程序一直向Java虚拟机申请内存,当程序所需内存空间超出初始化内存空间时,Java虚拟机会再次向操作系统申请更多的内存供程序使用
 

c:程序运行内存溢出

当Java虚拟机已申请的内存到达规定的最大内存空间,但程序还需要更多内存。这时就会出现内存泄露


Java程序所使用的内存是由Java虚拟机进行管理、分配的。Java虚拟机规定了Java程序的初始化内存空间和最大内存空间

你可能感兴趣的:(JVM相关)