xcxd.net
当前位置:首页 >> jAvA编译和运行的区别 >>

jAvA编译和运行的区别

编译只是编译成了字节码,就是可执行的.class文件运行时识别,主要是java的RTTI(运行时类型识别)机制和反射机制,而两者之间的区别在于:”对RTTI来说,编译器在编译期打开和检查.class文件.(换句话说,我们可以用“普通”的方式调用一个对象的所有方法.),而对于反射机制来说,.class文件在编译期是不可获取的,所以是在运行期打开和检查.class文件.“但是同样的,反射也需要加载这个类的Class对象,所以那个类的class对象对于jvm必须是可取的的,比如在本地机器上,或者通过网络取得,比如取得一串字节串.具体的内容可以参考《Thinking in java》的”类型识别“那一章,讲的比较详细的

个人理解:编译就是计算机将你打的一些代码编译成为计算机能看懂的机械语言.而运行就是计算机执行编译出来的这些机械语言.

编译期和运行期进行的操作是不相同的,编译器只是进行语法的分析,分析出来的错误也只是语法上的错误,而运行期在真正在分配内存比如说你写一个while循环,一直往栈里写,编译器是不会出错的,可是运行期就会出现栈满的错误

java是面向对象的,而c是面向过程的,java运行需借助于java虚拟机,可跨平坦运行, Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行.

编译执行和解释执行是不同语言之间的特性,所有的java都是编译执行的. 如果不是编译执行,其实已经完全不用java的编译器.那么只是一个使用java语法的另一种语言而已.编译执行是指把代码先编译成机器码.然后按顺序运行,如果编译中有任何异常,都无法继续运行.java的编译就是把java转换成class.而解释执行则是运行到哪一行代码就执行哪一行代码.如果其他代码有错误但没有运行到,一般不会影响. 比较起来,编译执行速度要快的多.而解释执行则在于比较灵活.可以动态修改.甚至可以在代码运行到指定语句之前,修改该代码.

在语法层面上,C++与Java十分相似,Java语言的设计与C++有着很密切的联系. 但却有着许多的不同,最大的不同,可以说是编译和运行了. 高级语言写出来的代码,最终都会变为机器码,计算机才能识别. 汇编与机器码最接近,C++与

区别如下:1)编译时注解,注解内容只存在源文件,在编译期间将被丢弃,不能通过JVM获取注解信息;2)运行时注解,编译时被存储在.class字节码文件,可以通过JVM运行时获取注解信息(且只限于被RUNTIME注解的注解).

当你一段代码写完之后一般会经历两个阶段:1、编译阶段使用指令:javac这个阶段,Java编译器(也就是JVM:java虚拟机,后称JVM),首先把你的代码加载完成,然后开始检查语法.如果出现语法错误则提示错误.这个阶段提示的错误我们一般称为编译器错误!2、运行阶段使用指令:java这个阶段,JVM将执行java代码,这个时期出现的错误我们一般称为运行期错误!编译器错误一般都是语法错误!运行期错误一般都是程序内部(或者程序逻辑)错误! 你说的这个错误就是语法错误!java规定了在静态方法中不能调用非静态的方法.这个错误已经被整合到了语法错误里面!

java是面向对象的语言,面向对象的特性之一就是重载,也就是方法的参数列表不同,其它声明都一样,这样编译的时候无论先编译哪个都不表示先运行哪个,因为,重载决定在运行期,只有运行的时候,看真正调用哪一个,才去运行哪一个,所以编译顺序和运行顺序是不一样的.--------------------------------编译都干了什么,具体我也说不清楚,只直到类成员是优先的.

前者是不完全编译,需要运行环境JRE,,,,,后者是完全编译,如果没有引用第3方库,可以直接执行

网站首页 | 网站地图
All rights reserved Powered by www.xcxd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com