`
colorfire
  • 浏览: 33852 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA为什么要生成Class文件

    博客分类:
  • JAVA
阅读更多

题目是前两天朋友突然提出的问题,一时间答不上来。

 

后来仔细查了一下class文件的作用。我想javaer都清楚class文件是作为jvm的可执行文件,与C/C++的机器码文件不一样,它是字节码文件。

 

字节码文件的好处:

1、对源代码文件进行语法检查、语义分析,这一步骤消耗了大量的时间和资源,所以对jvm来说就要轻松多了。

2、更加抽象,一次编译到处执行,这是java的宣传口号。当然字节码文件是与平台无关的。(这点是在别资料上看到的,感觉源代码文件跨平台也是没问题的,例如python)

3、字节码文件可以看作是对源代码文件的压缩封装,占用更少的存储空间以及更快的传输速度。

 

自己再扩展下问题:考虑大胡子James在设计java时为什么要求在执行之前,先编译成class文件?如果是我,更倾向于将源文件直接交给jvm执行,省去javac的步骤进而由jvm自己编译。好处是程序员不用关注编译路径是否配置、源代码文件是否都编译通过、是否有个别文件的class文件没有生成、源代码与class版本是否一致等问题。

 

当然生成class文件的好处也很多:

1、java在设计初期应是面向浏览器/嵌入式开发语言,字节码文件的好处就体现出来了,由于class是在编译过程生成的,所以jvm就不需要做的很大,同时java的运行环境也不要求很高,毕竟最耗时/耗系统资源的工作已经在前一步完成。

2、不需要重复编译,java是面向对象语言,涉及到大量的复用,jar/class的复用比直接复用源代码省去了编译时间。

 

 

推荐看下深入java虚拟机这书,很惭愧我做了这么长时间的java都没看过

分享到:
评论

相关推荐

    java反编译工具(.class文件反编译成.java文件)

    标签再次强调了这是一个用于将.class文件反编译为.java文件的工具,这表明其主要功能和适用场景。 在压缩包子文件的文件名称列表中,我们看到了"jd-gui-0-2"。这很可能是反编译工具的名字,例如JAD GUI的一个版本号...

    Java反编译工具把.class文件转换为.java文件

    ### Java反编译工具:将.class文件转换为.java文件 #### 概述 在软件开发领域,有时我们可能需要分析第三方库或者开源项目的内部结构,这时就需要借助于反编译工具来帮助我们阅读和理解其源码。Java作为一种广泛...

    JAVA 将class打包为jar

    ### JAVA将Class文件打包为JAR文件的详细步骤与注意事项 #### 标题与描述概述 在Java开发中,将多个Class文件打包成一个JAR(Java Archive)文件是一种常见的做法,这有助于简化项目的部署过程并提高代码的可管理性...

    ASM操作字节码,动态生成Java类class文件

    通过这样的方式,ASM可以帮助我们深入理解Java字节码,同时也为我们提供了强大的工具来实现动态代码生成,这对于实现诸如AOP这样的高级编程模式至关重要。在实际项目中,ASM通常与其他工具结合使用,如CGLIB或Byte...

    java class文件反编译

    1、打开一个或者多个*.class文件,XJad反编译后,重命名为*.java文件, 保存至当前文件夹,并在编辑器中打开查看; 2、打开一个文件夹,XJad将该文件夹下所有*.class文件进行反编译,并保存至该文件夹下, 依据包...

    java class文件反编译器

    java class文件反编译器,可以看轻松查看源代码!下吧

    java动态编译指定java文件且将java文件生成jar

    本教程将深入讲解如何实现这个过程,主要关注`java动态编译`和`将class生成jar`这两个关键步骤,同时会涉及到`JavaCompiler` API的使用。 首先,让我们了解`JavaCompiler` API。这是Java标准库中的一部分,位于`...

    java反编译项目工程-可以将class 文件进行修改重新导包生成修改后的jar

    java反编译项目工程,可以将class 文件 进行 修改 重新导包 生成修改后的jar 步骤 1、将需要修改的 jar 包 放入 lib 目录下,并加入项目中 ,选中 jar 右击 选择 add a libray这个时候会看到 jar 的 目录 结构 2、...

    将jsp生成java然后反编译为class然后打入jar

    下面我们将详细探讨这一过程以及如何将生成的Java类反编译为.class文件并打包到.jar文件中。 首先,让我们了解JSP到Servlet的转换过程。JSP文件本质上是HTML文件,其中可以插入Java代码。服务器上的JSP引擎在首次...

    java用list直接生成Excel文件

    利用jxl包结合java反射机制和注释,直接把list生成对应的Excel文件,即只需传入list、对应生成的对象、标题就可以生成excel文件write(String title, List list,Class c),实现一个简单生成excel工具类

    java反编译(将class文件反向编译成java源文件)

    Java反编译是一种技术,它允许开发者从已编译的.class文件中恢复原始的.java源代码。这在一些情况下非常有用,例如分析第三方库的内部实现、研究代码逻辑或者在丢失源代码时恢复源码。Java编译器将源代码转换成字节...

    JavaDecompiler打开class文件

    这些工具提供了不同的功能和用户体验,但核心目标都是将.class文件还原为近似的Java源代码。 1. **FernFlower**:这是一个开源的Java反编译器,以其能够生成可读性较高的代码而受到好评。用户可以通过命令行或者...

    java class文件编译

    Java源代码(.java文件)在经过Java编译器(javac)处理后,会生成对应的Class文件。Class文件采用一种特殊的二进制格式,这种格式具有固定结构,主要包括以下几个部分: 1. 魔数:标识文件为Java类文件,固定为0...

    java编译class文件

    标题“java编译class文件”涉及的核心知识点是Java的编译过程。Java源代码文件的扩展名为`.java`,这些文件包含类定义、方法定义以及其他Java语法元素。要将`.java`文件编译成`.class`文件,我们需要使用Java的JDK...

    java遍历文件目录生成树结构txt文件

    在Java编程中,遍历文件目录并生成树结构的文本文件是一个常见的任务,尤其是在处理大量文件数据时。这个任务可以通过使用Java的`java.io.File`类及其相关API来实现。`Dir.class`和`Dir.java`是这次操作的核心文件,...

    java .class反编译成.java工具

    首先,我们要明白什么是.class文件和.java文件。在Java编程中,程序员编写的是.java源代码文件,这些文件经过Java编译器(javac)编译后,会生成对应的.class文件,这是Java虚拟机(JVM)能够执行的二进制格式。然而...

    么把.class文件反编译成.java 经修改后再编译成.class

    Java 反编译是指将编译后的.class 文件转换回原始的.java 源代码的过程。在实际开发中,我们可能需要反编译.class 文件以便于修改或 debugging。下面将详细介绍.class 文件反编译到.java 文件的过程,包括反编译...

    DJJava 反编译class文件

    他们可以选择要反编译的.class文件或整个目录,然后工具会生成对应的.java文件。这些生成的源代码可以被编辑、调试,甚至重新编译为新的类文件。 值得注意的是,反编译他人未授权的代码可能涉及法律问题,因此在...

    java解析class文件

    Java解析Class文件是Java开发中的一个重要环节,它涉及到对字节码的理解和处理。Class文件是Java编译器将源代码编译后的结果,包含了类的结构信息、方法定义、常量池等关键数据。理解并能解析Class文件,对于进行JVM...

Global site tag (gtag.js) - Google Analytics