java的编译和运行
java是面向对象的语言,面向对象的特性之一就是重载,也就是方法的参数列表不同,其它声明都一样,这样编译的时候无论先编译哪个都不表示先运行哪个,因为,重载决定在运行期,只有运行的时候,看真正调用哪一个,才去运行哪一个,所以编译顺序和运行顺序是不一样的。
--------------------------------
编译都干了什么,具体我也说不清楚,只直到类成员是优先的。
⑵ 简述JAVA程序的编辑编译和运行过程
第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。
如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。
第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。
特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法<clinit>都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。
(2)java的编译和运行扩展阅读:
Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。
Java代码编译:是由Java源码编译器来完成;
Java字节码的执行:是由JVM执行引擎来完成
Java程序从源文件创建到程序运行要经过两大步骤:
1、源文件由编译器编译成字节码(ByteCode)
2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。
⑶ 怎么编译和运行java程序
开始-》运行-》输入cmd回车
编译:文件所在的文件夹目录下执行javac XXX.java(XXX.java为源文件名)
运行:java XXX
⑷ 请问java程序在编译和运行时有什么区别,系统分别都会做什么
Java程序的编译
使用命令: javac *.java
编译时,会将写的.java文件(高级语言),生成相应的字节码文件.class文件(二进制代码)
Java程序的执行
使用命令:java *
流程: 加载到 -- 连接 ---- 初始化 ...
运行时,首先会由将相应的.class文件,加载到内存中,并验证.class文件的有效性,将相应类的Class加载到内存中,并对类中的静态变量进行初始化操作,然后就由 主 类开始执行
具体的可以看一下 JVM 类加载过程,以及jVM的内存分配机制
⑸ 求教JAVA编译与运行的区别。
编译只是编译成了字节码,就是可执行的.class文件
运行时识别,主要是java的RTTI(运行时类型识别)机制和反射机制,而两者之间的区别在于:
”对RTTI来说,编译器在编译期打开和检查.class文件。(换句话说,我们可以用“普通”的方式调用一个对象的所有方法。),而对于反射机制来说,.class文件在编译期是不可获取的,所以是在运行期打开和检查.class文件。“
但是同样的,反射也需要加载这个类的Class对象,所以那个类的class对象对于jvm必须是可取的的,比如在本地机器上,或者通过网络取得,比如取得一串字节串。
具体的内容可以参考《Thinking in java》的”类型识别“那一章,讲的比较详细的
⑹ 请问java中的编译期和运行期有什么区别
编译时是调用检查你的源程序是否有语法错误,如果没有就将其翻译成字节码文件。即.class文件。
运行时是java虚拟机解释执行字节码文件。
⑺ java的编译和运行命令是怎么样的啊
我是把代码放在jdk1.5.0\bin目录下的 按照这样进行
cd C:\program files\java\jdk1.5.0\bin
编译:javac 类名.java
运行:java 类名
建议用eclipse这类软件,很方便的
⑻ java的编译和运行
try catch获取的只能你自己看到吧,如果我想把这个异常信息发送给别人,或者写入一个文件,那你怎么办?你是不是要获取到这个流
你想别人看到这个是需要你自己来实现.比如在这里记录日志 可以通过log4j来进行记录
catch (Exception e)
{
log.error(e.toString() + ":" + e.getMessage());
}
这样 就会写入到 log文件中记性记录
或者你一个方法
public string ooo()
{
......
catch (Exception e) {
rentru *****(返回的信息由你自己定义 你可以定义直接返回操作描述 比如成功或者出错) }
}
思路就是这样.. 具体实现有很多.。你在异常这里捕获了 ..然后根据不同的异常 再对用户进行提示
⑼ JAVA的源程序是怎样被编译和运行的
java
程序
编译是根据“类库”
也就是
jvm了
解释编译。
在用到的时候必须要有识别“解释后的java程序的类库
两个过程
java原程序-----java.class
文件====
解释执行
这两个过程中都要用到
类库
⑽ java的 编译和运行
你知道Javac会把 .java 文件编译成 .class 文件然后运行 对吧
你想想如果在如果编译的时候不去读取 .java 文件的内容 怎么可能编译成 .class文件呢
在编译时证是运行了.java文件的内容发现了你这个程序有语法错误就会编译失败 就没有必要继续编译成 .class文件
当然有些错误是可以逃避编译器的。
你也知道Java分 运行时error和编译时的error!
个人理解。不保证100%正确性!