java线性代码 java线性数据结构有哪些( 六 )


·如果找不到匹配的catch子句,那么当前方法得到一个"未截获异常"的结果并返回到当前方法的调用者,好像异常刚刚在其调用者中发生一样 。如果在调用者中仍然没有找到相应的异常处理块,那么这种错误传播将被继续下去 。如果错误被传播到最顶层,那么系统将调用一个缺省的异常处理块 。
(3)操作数栈区 机器指令只从操作数栈中取操作数,对它们进行操作,并把结果返回到栈中 。选择栈结构的原因是:在只有少量寄存器或非通用寄存器的机器(如Intel486)上,也能够高效地模拟虚拟机的行为 。操作数栈是32位的 。它用于给方法传递参数,并从方法接收结果,也用于支持操作的参数,并保存操作的结果 。例如,iadd指令将两个整数相加 。相加的两个整数应该是操作数栈顶的两个字 。这两个字是由先前的指令压进堆栈的 。这两个整数将从堆栈弹出、相加,并把结果压回到操作数栈中 。
每个原始数据类型都有专门的指令对它们进行必须的操作 。每个操作数在栈中需要一个存储位置,除了long和double型,它们需要两个位置 。操作数只能被适用于其类型的操作符所操作 。例如,压入两个int类型的数,如果把它们当作是一个long类型的数则是非法的 。在Sun的虚拟机实现中,这个限制由字节码验证器强制实行 。但是,有少数操作(操作符dupe和swap),用于对运行时数据区进行操作时是不考虑类型的 。
4.无用单元收集堆
Java的堆是一个运行时数据区,类的实例(对象)从中分配空间 。Java语言具有无用单元收集能力:它不给程序员显式释放对象的能力 。Java不规定具体使用的无用单元收集算法,可以根据系统的需求使用各种各样的算法 。
5.方法区
方法区与传统语言中的编译后代码或是Unix进程中的正文段类似 。它保存方法代码(编译后的java代码)和符号表 。在当前的Java实现中,方法代码不包括在无用单元收集堆中,但计划在将来的版本中实现 。每个类文件包含了一个Java类或一个Java界面的编译后的代码 。可以说类文件是Java语言的执行代码文件 。为了保证类文件的平台无关性,Java虚拟机规范中对类文件的格式也作了详细的说明 。其具体细节请参考Sun公司的Java虚拟机规范 。
java程序怎么线性执行使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序 。
1. exec(String command)
2. exec(String command, String envp[], File dir)
3. exec(String cmd, String envp[])
4. exec(String cmdarray[])
5. exec(String cmdarray[], String envp[])
6. exec(String cmdarray[], String envp[], File dir)
一般的应用程序可以直接使用第一版本,当有环境变量传递的时候使用后面的版本 。其中2和6版本可以传递一个目录,标识当前目录,因为有些程序是使用相对目录的,所以就要使用这个版本 。
实例:
Process process = Runtime.getRuntime().exec(".\\p.exe");
process.waitfor();
在上面的程序中,第一行的“.\\p.exe”是要执行的程序名,Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例 。通过Process可以控制该子进程的执行或获取该子进程的信息 。第二条语句的目的等待子进程完成再往下执行 。
java线性代码的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于java线性数据结构有哪些、java线性代码的信息别忘了在本站进行查找喔 。

推荐阅读