一. 前言
编译和运行的区别在于:编译是在检查语法错误,并不进行程序的运行。
二. 底层运算原理
本节讲述了java程序从定义到执行的整个过程,重点在于计算机内部的操作流程。当java工具执行类文件时,计算机是在内存开辟了一个空间,内部
编译的到的xx.class叫做java运行程序,类文件。javac是启动编译器,检查有无语法错误,如果没有的话,形成一个xxx.java类文件。类文件有特定的格式,程序员看不了,是给虚拟机看的。java命令启动虚拟机,虚拟机是来帮助运行java运行程序。启动后,虚拟机会自动去程序里面检查是否有主函数。如果没找到主函数,会在启动时期报错。
我们现在看的就是在程序运行的过程中,底层内存中是一个什么样的情况,将上下层之间联系起来。任何一个程序启动后,都会在内存中开辟一个空间,主函数开始时,内存中又会划分一小块区域给主函数,然后主函数内的操作就在主函数的划分区间内执行,如果过程中涉及其他函数,那么其他函数就载入内存,划分区间。被调用函数执行完了之后,返回值后,代表着调用函数就被内存空间释放了。如果后期再调用函数,那就再加载,再释放。
划分给程序进行运算的内存空间,我们称之为栈,这是一种结构,和程序的运行密切相关。有一个原则,先进后出。