java是编译
它既不属于传统的编译型语言也不属于解释型语言。它是先编译成.CLASS字节码文件,然后再利用虚拟机解释执行的.可以说先编译后解释吧。
㈡ Java程序可以编译成可执行程序,直接运行。这句话是否是对的
错的,java文件只能编译成字节码文件,无法直接运行,除非打包成一个桌面的应用或者网页才可以直接打开。
㈢ Java是解释型还是编译型
有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。
也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型的语言。也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。(1)Java语言的编译-->解释-->运行过程
(2)JVM到这里,大家应该也都明白了。最后给出编译型语言和解释型语言的定义。
定义:编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!特点:编译型语言,执行速度快、效率高;依靠编译器、跨平台性差。
解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。
㈣ Java在dos环境怎样编译程序
在 Windows/DOS 环境下编译 Java 程序,可以按照以下步骤操作:
首先确保历燃清已经安装了 JDK。可以在命令行中输入 java -version 检查是否已经安装了 JDK,并查看 JDK 的版本信肢前息。
编写 Java 程序并保存为 .java 文件。
打开命令行窗口(如 cmd),使用 cd 命令切换到 Java 程序所在的目录。
使用 javac 命令编译 Java 程序,例如:
javac HelloWorld.java如果编译成功,将会生成一个名为 HelloWorld.class 的文件。
使用 java 命令运行 Java 程序,例如:
java HelloWorld运行结果将会在命令行窗口中显示出来。
需要注意的是,Java 程序中使用的路径分隔符应该是 /,而不是 Windows 下的 。例如,如果要引用当段简前目录下的 myfile.txt 文件,应该使用 ./myfile.txt,而不是 .myfile.txt。
㈤ 什么是Java代码的编译与反编译
Java代码的编译与反编译
2017-02-21Hollis数盟
一、什么是编译
1、利用编译程序从源语言编写的源程序产生目标程序的过程。
2、用编译程序产生目标程序的动作。编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
二、什么是反编译
计算机软件反向工程(Reverseengineering)也称为侍梁计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。
三、Java类的编译与反编译
我们在最初学习Java的时候,会接触到两个命令:javac和java,那个时候我们就知道,javac是用来编译Java类的,就是将我们写好的helloworld.java文件编译成helloworld.class文件。
class文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Javaclass文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。
那么反编译呢,就是通过helloworld.class文件得到java文件(或者说是程序员能看懂的Java文件)
四、什么时候会用到反编译
1、我们只有一个类的class文件,但是我们又看不懂Java的class文件,那么我们可以把它反编译成我们可以看得懂的文件。
2、学习Java过程中,JDK的每个版本都会加入越来越多的语法糖,有些时候我们想知道Java一些实现细节,我们可以借助反编译。
五、反编译工具
1、javap
2、Jad:官网(墙裂推荐)
客户端:
可以在官网下载可执行文件,找到对应的操作系统的对应版本,然后进行安装使用。
因为我使用的是linux操作系统,所以我下载的是Linux版本的工具,这个工具下载好之后会有一个执行文件,败吵只要在执行文件所在目录执行./jadhelloworld.class就会在当前目录下生成helloworld.jad文件,该文件里就是我们很熟悉的Java代码
Eclipse插件:
下载地址在官网下载插件的jar包,然后将jar包放到eclipse的plugins目录下‘在打开Eclipse,Eclipse->Window->Preferences->Java,此时你会发现会比原来多了一个JadClipse的选项,单击,在Pathtodecompiler中输入你刚才放置jad.exe的位置,也可以制定临时文件的目录。当然在JadClipse下还有一些子选项,如Debug,Directives等,按照默认配置察谈侍即可。基本配置完毕后,我们可以查看一下class文件的默认打开方式,Eclipse->Window->Preferences->General->Editors->FileAssociations我们可以看到class文件的打开方式有两个,JadClipse和Eclipse自带的ClassFileViewer,而JadClipse是默认的。全部配置完成,下面我们可以查看源码了,选择需要查看的类,按F3即可查看源码
㈥ c#和Java哪个是是编译型语言哪个是解释型语言
C#是一种编译型语言。编译型语言在运行前会将源代码转换为机器码或字节码,这样在运行时可以直接执行,无需解释过程,运行效率较高。
Java则是一种解释型语言。Java源代码首先被编译为字节码,运行时由Java虚拟机(JVM)解释执行字节码,这种方式使得Java程序具有跨平台性,可以在任何安装了JVM的平台上运行。
编译型语言如C#的优点在于执行效率高,启动速度较快,因为它们在运行前就已经将代码编译为机器码或字节码。而Java作为一种解释型语言,虽然启动速度可能会稍慢一些,但由于其跨平台性和动态特性,使其在开发过程中具有更高的灵活性和便捷性。
此外,C#和Java在语法和编程范式上也有一些差异。C#支持面向对象、泛型、委托、lambda表达式等特性,而Java主要强调面向对象编程,同时提供了接口、泛型等特性。这些差异使得开发者在选择编程语言时需要根据具体需求和项目特点来决定。
总的来说,C#和Java各有优势,C#在游戏开发、桌面应用等方面表现优异,而Java则在企业级应用、Web开发等领域有着广泛的应用。开发者可以根据项目需求和个人偏好选择合适的编程语言。