精华内容
下载资源
问答
  • 在大家编译完java程序的时候,都是会生成一个文件的,作为java新手不清楚java编译后生成什么文件?那么今天我们就给大家讲解一下这方面的内容,大家可以参考下文哦!java文件编译过后会生成一个class文件,里面是以二...

    在大家编译完java程序的时候,都是会生成一个文件的,作为java新手不清楚java编译后生成什么文件?那么今天我们就给大家讲解一下这方面的内容,大家可以参考下文哦!

    java文件编译过后会生成一个class文件,里面是以二进制方式存放的代码,机器可以识别class文件中的内容,然后作出相应的操作。

    生成的文件包括什么?

    java编译后生成class文件,包括三个部分:

    一、类信息

    一部分是描述类的信息,包括类的名字、修饰符(public或private)、父类、接口以及注解(annotation)。

    二、变量信息

    一部分是描述类变量的信息,包括每个变量的名字、修饰符、类型和注解(annotation)。

    三、方法信息

    一部分是描述类方法的信息,包括每个方法的名字、修饰符、参数的类型和返回值的类型、方法的注解(annotation),还包括编译后的、字节码形式的方法代码。

    1、每一个编译后的class文件只包括一个类的信息,如果在java源文件中定义了多个类,在编译后会分成多个独立的class文件。

    2、每一个编译后的class文件不包括代码注释;

    3、每个编译后的class文件不包括包名(package)和引用(import),所有的非原始类型引用都以全包名形式出现,这称作内部名称或本质名称。

    4、每个编译后的class包括一个常量池,这个常量池是一个数组,包括数字、字符和类型的常量。这些信息通过java提供的Class类能够获取,并通过反射类使用。也是动态编译和java逆向工程的基础。

    在编译完java程序之后,都会生成Class文件,这是作为java人员要知道的基本知识,所以如果你对Class文件还方面的知识还不是很清楚的话,一定要及时补回来哦!最后大家如果想要了解更多java常见问题知识,敬请关注奇Q工具网。

    推荐阅读:

    展开全文
  • Java编译后生成带$符号的class

    千次阅读 2016-04-14 14:10:24
    Java编译后生成带$符号的class

    java编译器会将每一个类编译成一个class文件,那问题来了,内部类和匿名类怎么办,答案就是"$"标识。

    package red.sea.daelly.pojo;
    
    import red.sea.daelly.inf.TestInterface;
    
    /**
     * @author liqingyang
     * @date 2016-4-14 下午1:24:50
     */
    public class Outer {
    	public Outer(){
    		AnotherOuter anotherOuter = new AnotherOuter();
    		System.out.println(anotherOuter);
    		Inner inner  = new Inner();
    		System.out.println(inner);
    		doSth(new TestInterface() {
    			
    			@Override
    			public void hello() {
    				System.out.println("I am in Outer's Construtor");
    			}
    		});
    	}
    	
    	public void doSth(TestInterface inf){
    		inf.hello();
    		System.out.println(inf);
    	}
    
    	public static class Inner {
    		
    	}
    	
    	public static void main(String[] args){
    		Outer outer = new Outer();
    		System.out.println(outer);
    	}
    }
    
    class AnotherOuter{
    	
    }
    得到输出

    red.sea.daelly.pojo.AnotherOuter@1690726
    red.sea.daelly.pojo.Outer$Inner@9931f5
    I am in Outer's Construtor
    red.sea.daelly.pojo.Outer$1@1f1fba0
    red.sea.daelly.pojo.Outer@1befab0

    可见,内部类会在$后面加上内部类的类名,匿名类会以数字表示,从1开始

    展开全文
  • 比如,有的java源程序生成一个字节码文件,带有内部类的生成两个。可是有一种情况怎么回事呢?importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassCardLayoutF...比如,有的java源程序生成一...

    比如,有的java源程序生成一个字节码文件,带有内部类的生成两个。可是有一种情况怎么回事呢?importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassCardLayoutF...

    比如,有的java源程序生成一个字节码文件,带有内部类的生成两个。可是有一种情况怎么回事呢?

    import java.awt.*;

    import javax.swing.*;

    import java.awt.event.*;

    public class CardLayoutFrame extends JFrame{

    JButton btPrevious = new JButton("前一张");

    JButton btNext = new JButton("下一张");

    JPanel flowPanel = new JPanel(new FlowLayout());

    JPanel cardPanel = new JPanel(new CardLayout());

    int currentIndex = 0;

    public CardLayoutFrame(){

    this.getContentPane().add(flowPanel,BorderLayout.SOUTH);

    this.getContentPane().add(cardPanel,BorderLayout.CENTER); cardPanel.add(getCard(1),"Card1");

    cardPanel.add(getCard(2),"Card2");

    flowPanel.add(btPrevious);

    flowPanel.add(btNext);

    ActionListener listener = new ActionListener(){

    public void actionPerformed(ActionEvent e){

    switchCard();

    }

    }; //为什么加一个";"号呢?

    btPrevious.addActionListener(listener);

    btNext.addActionListener(listener);

    this.setSize(300,200);

    this.setTitle("GardLayoutDemo");

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    this.show();

    }

    JPanel getCard(int index){

    JPanel panel = new JPanel(new BorderLayout());

    JLabel label = new JLabel("

    "+"这是第"+index+"张卡片"+ "

    ");

    label.setHorizontalAlignment(JLabel.CENTER);

    panel.add(label);

    return panel;

    }

    void switchCard(){

    CardLayout cl = (CardLayout)cardPanel.getLayout();

    if(currentIndex==0){

    currentIndex++;

    cl.show(cardPanel,"Card2");

    }

    else{

    currentIndex--;

    cl.show(cardPanel,"Card1");}}

    public static void main(String[] args){

    CardLayoutFrame frame = new CardLayoutFrame();

    }

    }

    生成CardLayoutFrame$1.class还有CardLayoutFrame.class两个文件。

    展开

    展开全文
  • javap -verbose HelloJava代码:public class Hello {public static void main(String[] args) {System.out.println...}}生成的字节码如下:```Classfile /Users/jessen/learning/JAVA-000/Week_01/demo1/Hello.cla...

    javap -verbose Hello

    Java代码:

    public class Hello {

    public static void main(String[] args) {

    System.out.println("hello world");

    }

    }

    生成的字节码如下:

    ```Classfile /Users/jessen/learning/JAVA-000/Week_01/demo1/Hello.class

    Last modified 2020-10-12; size 415 bytes

    MD5 checksum f78738196756e74f31907b064c1ee653

    Compiled from "Hello.java"

    public class Hello

    minor version: 0

    major version: 52

    flags: ACC_PUBLIC, ACC_SUPER

    Constant pool:

    #1 = Methodref          #6.#15        // java/lang/Object."":()V

    #2 = Fieldref          #16.#17        // java/lang/System.out:Ljava/io/PrintStream;

    #3 = String            #18            // hello world

    #4 = Methodref          #19.#20        // java/io/PrintStream.println:(Ljava/lang/String;)V

    #5 = Class              #21            // Hello

    #6 = Class              #22            // java/lang/Object

    #7 = Utf8

    #8 = Utf8              ()V

    #9 = Utf8              Code

    #10 = Utf8              LineNumberTable

    #11 = Utf8              main

    #12 = Utf8              ([Ljava/lang/String;)V

    #13 = Utf8              SourceFile

    #14 = Utf8              Hello.java

    #15 = NameAndType        #7:#8          // "":()V

    #16 = Class              #23            // java/lang/System

    #17 = NameAndType        #24:#25        // out:Ljava/io/PrintStream;

    #18 = Utf8              hello world

    #19 = Class              #26            // java/io/PrintStream

    #20 = NameAndType        #27:#28        // println:(Ljava/lang/String;)V

    #21 = Utf8              Hello

    #22 = Utf8              java/lang/Object

    #23 = Utf8              java/lang/System

    #24 = Utf8              out

    #25 = Utf8              Ljava/io/PrintStream;

    #26 = Utf8              java/io/PrintStream

    #27 = Utf8              println

    #28 = Utf8              (Ljava/lang/String;)V

    {

    public Hello();

    descriptor: ()V

    flags: ACC_PUBLIC

    Code:

    stack=1, locals=1, args_size=1

    0: aload_0

    1: invokespecial #1                  // Method java/lang/Object."":()V

    4: return

    LineNumberTable:

    line 2: 0

    public static void main(java.lang.String[]);

    descriptor: ([Ljava/lang/String;)V

    flags: ACC_PUBLIC, ACC_STATIC

    Code:

    stack=2, locals=1, args_size=1

    0: getstatic    #2                  // Field java/lang/System.out:Ljava/io/PrintStream;

    3: ldc          #3                  // String hello world

    5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V

    8: return

    LineNumberTable:

    line 4: 0

    line 5: 8

    }

    SourceFile: "Hello.java"```

    展开全文
  • Java编译后生成带为什么会生成带$符号的XXXX$1.class文件呢? 答:XXXX.class是匿名内部类 误删怎么处理呢? 答:project-->(选中误删项目)clean
  • shell 中操作:1、先创建java项目目录,名称project。mkdir project2、在项目中创建src和bin目录,src下用于存放 “.java” 文件,bin下存放 “ .class ” 文件。cd projectmkdir src bin3、在src下创建包...
  • 如图所示,改不回去就没办法在DOS窗口运行啊,新手,求大佬支招![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/21.gif)![图片说明]...
  • java中,如果在一个类中定义了内部类,则会生成: superthis.class的文件,如果给某个控件添加了Listener事件,则会生成 superi.class的文件(其中i为Listener的个数)。   例如:下面的程序: import ...
  • Java 程序经过编译后生成的文件的后缀是答:.class中国大学MOOC: 导致哑蕾现象的原因不包括( )。答:花期后延中国大学MOOC: 铸铁的含碳量比铸钢高,所以铸铁的强度比铸钢高。答:错学生撤消处分的程序______答:本人...
  • 可能大多数Jsp开发员在写完程序测试通过,不太会关注Jsp生成Java文件,其实,通过Java代码,更能体现程序代码的真正含义,对进一步研究程序代码的后台运行情况是非常有帮助的。例如,用Jsp编写代码时,有时候用...
  • Java程序编译后生成的是字节码文件,其后缀是.exe。A:对B:错正确答案:错解析:Java程序编译后生成的是字节码文件,其后缀是.exe。A:对B:错相关问题:ZHDY3-2*若室内生起炉子后温度从9℃升高到27℃,而室内气压不变,...
  • 【单选题】编译Java程序后生成的面向JVM的字节码文件的扩展名是【填空题】一个try代码段后面必须跟着若干个( )代码段或者一个( )代码段。【填空题】Java规定,如果子类中定义的成员方法与父类中定义的成员方法同名,...
  • 习题一一、简答题1.试述JAVA语言的特点与优势。...被编译后生成什么文件?该文件机器可以直接识别吗?如何执行?4.安装JDK后如何对JAVA_HOME、PATH和CLASSPATH环境变量进行设置?它们的作用是什...
  • 医患种(关系是一,编译从伦理上说。不正下列何种确(说法,后生症单精神关于纯型分裂。成字对主的有相同排名要市额与额增年浙江省进口场的出口长率。文件文变革的方括(组织法包。额为纳税则应,源程译器为4应税元若...
  • 答:编译后生成的文件可以在Java虚拟机中运行\n\n编译后生成的文件为二进制文件\n\n编译后生成文件的后缀名为.class线性表的链式存储结构是一种答:顺序结构用Raptor编写程序比用C语言编写程序效率高。答:×交往...
  • 今天刚好有同学问了下Java编译后产生的.class文件名的问题,虽然一直都在使用Java做开发,但是之前对编译后产生的.class文件名的规范也基本没做了解过,也真的是忏愧啊!今天无论如何都要总结下。下面是本人今天做的...
  • 程序设计JAVA练习题第1章 Java语言概述习 题 一一、简答题1.Java语言的诞生日是哪一天?它有哪些特点与优势?...被编译后生成什么文件?该文件机器可以直接识别吗?如何执行?4.安装JDK后如何对...
  • 展开全部可能大多数Jsp开发员在写完程序62616964757a686964616fe59b9ee7ad9431333363373731测试通过,不太会关注Jsp生成Java文件,其实,通过Java代码,更能体现程序代码的真正含义,对进一步研究程序代码的后台...
  • 对于Tomcat而言,JSP页面生成Java文件放在work路径对应的Web应用下。例如:D:/Tomcat5.5/webapps/test/test.jsp生成对应的java文件D:/Tomcat5.5/work/Standalone/localhost/test/对于Resin而言,JSP页面生成Java...
  • 如果一个类有内部类,编译生成几个字节码文件,规则是怎样呢? 写在前,自己动手丰衣足食,结论只有个人实验支持,没有官方数据支持,欢迎自行查阅文档然后来指正,轻喷,谢谢。 1.普通类包含内部类的样例 public ...
  • 本帖最后由 liyihongcug 于 2015-3-13 11:49 编辑能大多数Jsp开发员在写完程序测试通过,不太会关注Jsp生成Java文件,其实,通过Java代码,更能体现程序代码的真正含义,对进一步研究程序代码的后台运行情况是...
  • 怎样查看Jsp编译后生成Java文件

    千次阅读 2017-10-25 18:08:51
    可能大多数Jsp开发员在写完程序测试通过,不太会关注Jsp生成Java文件,其实,通过Java代码,更能体现程序代码的真正含义,对进一步研究程序代码的后台运行情况是非常有帮助的。例如,用Jsp编写代码时,有时候用...
  • 【单选题】7. ____ more attention, the trees could have grown better .【单选题】There is a big dog _______to a fence outside the house.【单选题】10. This sentence needs _________. ....
  • 首先java文件编译生成class文件其基本规则是这样的:内部类的class文件命名是:主类+$+内部类名匿名类的class文件命名是:主类+$+(1,2,3....)但是如果没有使用匿名类,会生成带$1.class文件么~~答案是会的。...
  • 参考:怎样将java的class文件生成jar包 将一些*.class文件压缩成一个 .jar文件交付给用户使用。如果要想生成jar文件,直接使用JDK中bin目录里的jar.exe就可以将所有的类文件进行压缩。此命令是随JDK一起安装的,...
  • 例如:下面是我的jsp生成java的位置(自定义了项目的部署路径) \Tomcat\apache-tomcat-8.0.23\webapps\work\Catalina\localhost\webway\org\apache\jsp 注意: jsp页面翻译成的java文件,有时会不会自动更新,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,582
精华内容 2,232
关键字:

java编译后生成

java 订阅