Java编译后生成的若干个class文件名称解析
来源:互联网 发布:人工智能能使死人复活 编辑:程序博客网 时间:2024/05/21 06:53
在java中,如果在一个类中定义了内部类,则会生成: superthis.class的文件,如果给某个控件添加了Listener事件,则会生成 superi.class的文件(其中i为Listener的个数)。
例如:下面的程序:
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class a extends JFrame {JPanel jPanel1 = new JPanel();JButton jButton1 = new JButton();JButton jButton2 = new JButton();JButton jButton3 = new JButton();public a() {try {jbInit();} catch (Exception e) {e.printStackTrace();}}private void jbInit() throws Exception {jButton1.setText("jButton1");jButton1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {jButton1_actionPerformed(e);}});jButton2.setText("jButton2");jButton2.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {jButton2_actionPerformed(e);}});jButton3.setText("jButton3");jButton3.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {jButton3_actionPerformed(e);}});this.getContentPane().add(jPanel1, BorderLayout.CENTER);jPanel1.add(jButton1, null);jPanel1.add(jButton2, null);jPanel1.add(jButton3, null);}void jButton1_actionPerformed(ActionEvent e) {}void jButton2_actionPerformed(ActionEvent e) {}void jButton3_actionPerformed(ActionEvent e) {}class b {}class c {class c1 {}}}
编译后生成的class文件有:
- a.class a$1.class //jButton1.addActionListener
- a$2.class //jButton2.addActionListener
- a$3.class //jButton3.addActionListener a
- $b.class a$c.class a$c1.class
但如果a.java这样定义: class a{ } class b{ } 注意为同一个文件: 刚编译后生成b.class,a.class 而不是a$b.class 2 beyond compare来比较两种方式的编译结果,发现多出的两个类是GameClient$1.Class和GameBoard$1.Class。
1、确认项目最终使用的Java类的编译器。如果可能,尽可能使用javac生成结果应用程序,或是与客户达成一致。
2、尽量明确的书写缺省构造函数及其可见性。
3 、对于引用中的interface--implement在实现类中没有缺省的构造函数,在调用的同时,就会产生额外的文件。
- Java编译后生成的若干个class文件名称解析
- Java编译后生成带$符号的class
- Java源码,编译后会生成一种.class文
- java编译后的class文件
- 查看java编译后的.class文件
- android 编译后,framework层生成的class.jar
- Maven编译后没有生成class文件的解决办法
- maven 编译后,没有生成class文件的解决方案
- java编译后class路径
- 编译 IDL 后生成的 Java 类
- 一个jsp文件中包含内部类时编译后会生成多个class文件
- JAVA解析webservice生成Class
- keil编译后生成的M51文件解析
- Asp.net 框架解析----生成编译后的文件
- 关于java文件编译后,同一个文件出现"$"的class
- 利用jclasslib修改java编译后的.class文件
- 利用jclasslib修改java编译后的.class文件
- Java文件编译成功后的class文件无法执行
- C# 去字符串
- exit函数和return函数的区别
- 计算日期到2011年6月11号几天了~
- MSTAR的进入工程模式的指令,以及如何修改
- js小技巧 :js屏蔽,IE地址栏前图标更换,画面进入和退出效果等等。
- Java编译后生成的若干个class文件名称解析
- 谈谈.Net技术面试
- 获取JDBC中的ResultSet的记录的条数
- UBOOOT 移植 之SDRAM NOR FLASH NAND FLASH
- vc2010
- VB.NET 、Java 与 C# 语法对比。
- Ajax 简单例子
- android-2.3.3_r1源码下载
- Emacs定制与扩展