它既不属于传统的编译型语言也不属于解释型语言.它是先编译成.CLASS字节码文件,然后再利用虚拟机解释执行的.可以说先编译后解释吧.
Java是一门面向对象编程语言,不仅吸收了C◆◆语言的各种优点,还摒弃了C◆◆里难以理解的多继承、指针等概念,所以呢Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程[1]?.
由于C◆◆所具有的优势,该项目组的研究人员首先考虑采用C◆◆来编写程序.但对于硬件资源极其匮乏的单片式系统来说,C◆◆程序过于复杂和庞大.另外由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行也是个难题.为了解决困难,他们首先着眼于语言的开发,假设了一种结构简单、符合嵌入式应用需要的硬件平台体系结构并为其制定了相应的规范,其中就定义了这种硬件平台的二进制机器码指令系统(即后来成为"字节码"的指令系统),以待语言开发成功后,能有半导体芯片生产商开发和生产这种硬件平台.对于新语言的设计,Sun公司研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对C◆◆进行了改造,去除了留在C◆◆的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言.
JAVA源代码需要先编译成字节码class文件.
JAVA虚拟机类加载器 classloader 加载字节码需要一步一步解释执行.
所以选c
你现在电脑里的文件是文档文件确切的说在计算机里也是0和1的序列 但是他和执行程序不是一
就是存储文档的 在回到问题
.java文件其实就和TXT文件一样是文档文件是用来存储你写的代码的
他是拿来给你人看的
你要想让他变成其可执行程序的文件你就得通过编译器编译它
编译器是按照你写的代码把他们翻译成可执行文件的编码方式
然后你就可以运行它了
在计算机看来所有的文件都是0和1的组合 应为文件的类型的不同它会用不同的方式解读它们
具体的java程序.编译.运行等等环节怎么完成怎么解释 你得慢慢了解 或者有时间我在给你解释解释
写的比较乱 你凑合着看吧
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插件:
第一段:源文件情况
源文件位置为:D:\temp,源文件名(含包名字):com.ldq.WeatherDemo.java
前提:已安装 jdk ,并配置好环境变量.
第二段:过程
①.、编译:
提示符进入 D:\temp 路径下,输入:javac com\ldq\WeatherDemo.java
生成类文件:WeatherDemo.class
提示符进入 D:\temp 路径下,输入:jar cvf WeatherDemo.jar com\ldq\WeatherDemo.class
生成档案文件:WeatherDemo.jar
由于引用了外部的类,所以要添加引用类的路径,即修改MANIFEST.MF文件.保存如下内容到 D:\temp下,文件名 MANIFEST.MF
Manifest-Version: 1.0
Sealed: true
Main-Class: com.ldq.WeatherDemo
注意在后面空两行.
提示符进入 D:\temp 路径下,输入:jar umf MANIFEST.MF WeatherDemo.jar
执行时会提示更新的内容.
在 D:\temp 路径下,新建 lib 文件夹,讲对应的 jaxrpc.jar ... 拷入其中,此时,即可双击(或在提示符下输入:java -jar WeatherDemo.jar)运行 WeatherDemo.jar 文件了.
第三段:总结
双击运行 jar 文件时,虚拟机会到 jar 文件中下找 .MF 文件,找到对应的 Main-Class 运行,引入的类在 Class-Path 所指路径.
事实上可以利用 winrar或winzip 工具打开 jar 文件,直接将修改好的 MANIFEST.MF 拷入覆盖,class文件也可以做同样的操作,节省了输入复杂难记的命令.另外,对于 javaME 生成的 jar 文件,限制严格些,MANIFEST.MF 文件中有个文件大小的字段,可以先保存,查看文件大小,再修改保存.
另一种方法是通过 Eclipse - Export - Runnable JAR file 直接生成 jar 文件,此时,所有的引用类都被打包在 jar 文件里了.
(没有报错的情况下) ,然后运行java 文件名 即可运行该代码(前提是你这篇文件需要有main方法).
以上就是土嘎嘎小编为大家整理的java源代码需要编译吗相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!