请问java程序在编译和运行时有什么区别,系统分别都会做什么?

如题所述

小弟不才,笼统点说,编译是把我们写的java语言编译成一种过渡语言给机器识别(电脑是不会直接看懂你写的java语言的,中间需要一个转换过程,可以理解成是编译的作用),例如会生成*.class等这些文件,而运行就是执行编译后的那些文件。。应该大概就是这样
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-25
Java程序的编译
使用命令: javac *.java
编译时,会将写的.java文件(高级语言),生成相应的字节码文件.class文件(二进制代码)
Java程序的执行
使用命令:java *
流程: 加载到 -- 连接 ---- 初始化 ...
运行时,首先会由将相应的.class文件,加载到内存中,并验证.class文件的有效性,将相应类的Class加载到内存中,并对类中的静态变量进行初始化操作,然后就由 主 类开始执行
具体的可以看一下 JVM 类加载过程,以及jVM的内存分配机制
第2个回答  2014-04-11
Java.lang.RuntimeException继承自Java.lang.Exception.
编译时异常(修正下: RuntimeException应该是 运行时异常 2014-01-11修改): 程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常: 这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。
原文: http://www.linuxidc.com/Linux/2009-11/23008.htm
第3个回答  2013-03-25
编译时将java文件编译成.class文件,运行时,就是jre,运行这个编译好的class文件。
第4个回答  2018-11-05
个人理解:编译就是计算机将你打的一些代码编译成为计算机能看懂的机械语言。而运行就是计算机执行编译出来的这些机械语言。
相似回答