计算机原理教案下载(windowsi764位运行java运行机制的装载过程及运行过程)
计算机原理教案下载-cn/topic/anintroductiontocomputerprogrammingcoursera上《程序设计原理》的课程录音在上一篇《windowsi764位运行java》中,我们了解了java运行机制,以及它的装载过程。在笔者看来,java的装载过程可以概括为“加载”、“执行”三个词:加载:被java程序“加载”之后,进入gc过程,gc过程中垃圾回收器会给java对象分配内存,对象的元数据(metadata)会被字节缓冲区的memcpy/memdisk缓冲区保存下来,被移动到磁盘或者别的分区。
这时候“加载”的过程还处于完成状态,一旦接受到程序运行起来后的输入,gc过程也就继续从gc分区拿出存放元数据的磁盘区域来,同时继续回收垃圾。执行:gc过程结束后,java会进入解释运行的过程,当然无论什么样的java编译器,在进入解释阶段之前,都会执行一些初始化工作,比如检查java程序是否存在中文编码、正确对齐java字节数组等等。
这是编译过程中的重要部分,因为这些编译器要检查输入源文件的编码,以及字节数组是否正确对齐,因为一旦字节数组错乱,在java解释器眼中,java源文件将毫无意义,从而影响解释器运行。解释运行的重要成果是在java解释器解释源文件之前,java虚拟机会让java代码先执行一遍,这个过程将使java执行到java虚拟机启动的时候。
所以本节视频中计算机原理教案下载,上半部分讲了虚拟机的启动和初始化,下半部分讲了环境变量的设置,这是这一节视频的目的。解释过程中,除了解释器外,还有一个重要角色是javaclass文件的压缩和解压。压缩过程的时间消耗很大,它包括了把java源文件在解压之前计算机原理教案下载,像传统压缩那样压缩,还有压缩java源文件的大小以增大文件体积,或者给程序启动提供更大的内存空间。
解压方法有两种,一种是在原始压缩的基础上,再按照需要,进行文件名解压;另一种是从剪切板上拷贝一个链接脚本,对自己的程序做压缩解压。本节视频最后笔者提到了重新编译程序和调试程序。可以看到,本节视频最重要的内容是程序的封装和调试,这也是由编译器,解释器和运行时系统来完成的,解释器能够根据运行者的输入,把程序编译成可执行程序。
那么是否只要对方能够调用javamain,就可以直接运行,而不需要加载后再执行呢?笔者这里不得不重点说下底层代码运行机制,java并不仅仅只是编译型语言,它的每个字节构成的结构体,都可以独立运行在几个不同的线程中,这就形成了各种各样的“线程栈”。任何一个“线程栈”都会在“内存区域”栈上建立,除了栈顶只有一个之外,其余的栈。
也从来不买这玩意