Java工作原理
由四方面组成:
(1)Java编程语言
存在父类时对象的实例化先编译父类;
如果子类没有实现父类的接口,属于语法错误,无法通过编译;
子类没有实现父类的接口是子类的错,父类没有错,即使不存在子类,父类也是可以编译得过的.
你的答案应该选B:
但是,实际编译是这样:
如果你直接javac Square.java,语法检查未通过,编译器将不工作;而正确编译时将得到父类与子类的class文件.
如果你先javac Shape.java,将得到Shape.class,再执行javac Square.java(未实现接口的)时,你仍将只会看到Shape.class.
javac:Java编译器,将Java源代码(java后缀)换成字节码文件(class后缀).
我们编写的java程序并不是基于某一个软硬件平台,而是基于使用版本的JDK提供的"虚拟"系统(JVM)提供的API方法,所以呢要把它(java后缀文件)翻译成JVM能能识别的class字节码文件
java:Java解释器,执行字节码文件(class后缀文件,运行它就算真正在系统上运行java程序了).
JVM根据不同的软硬件系统提供或支持的功能统一虚拟化了一系列的API方法,再根据指定的class文件执行这些API方法
appletviewer(小程序浏览器):没什么了解,你自己看看吧
Java代码的编译与反编译
第一段:什么是编译
①.、利用编译程序从源语言编写的源程序产生目标程序的过程.
第二段:什么是反编译
计算机软件反向工程(Reverseengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行"逆向分析、研究"工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码.反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中.
第三段:Java类的编译与反编译
我们在最初学习Java的时候,会接触到两个命令:javac和java,那个时候我们就知道,javac是用来编译Java类的,就是将我们写好的helloworld.java文件编译成helloworld.class文件.
class文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件.通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作.而Javaclass文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件.
那么反编译呢,就是通过helloworld.class文件得到java文件(或者说是程序员能看懂的Java文件)
第四段:什么时候会用到反编译
①.、我们只有一个类的class文件,但是我们又看不懂Java的class文件,那么我们可以把它反编译成我们可以看得懂的文件.
第五段:反编译工具
①.、javap
Eclipse插件:
因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种"中间码"——字节码.然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再"翻译"成所对应的硬件平台能够执行的代码.所以呢对于Java编程者来说,不需要考虑硬件平台是什么.所以Java可以跨平台.
而C/C++不可以跨平台的原因就是编译后的代码在特定的硬件上可以直接执行,换个硬件平台这些代码就不能被执行了.不过正是因为可以直接执行,所以C/C++程序的执行效率要比Java程序高
以上就是土嘎嘎小编为大家整理的java代码编译顺序相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!