`

通过 .class文件查找答案

    博客分类:
  • java
 
阅读更多

/**
 * 
 * @author  zhaoguoli
 * @version V1.0  2012-3-6 上午11:37:55
 */
public class StringTest {
	
	/**
	 * 测试字符 串
	 * @param args
	 */
	public static void main(String[] args) {
		  String a = null + "a";
		  String aa = null + "a";
		  System.out.println(a == aa);
		  // false
		  
		  String b = "null" + "a";
		  String bb = "null" + "a";
		  System.out.println(b == bb);
		  // true


	}

}

 查看 .class文件

 

public StringTest();
    0  aload_0 [this]
    1  invokespecial java.lang.Object() [8]
    4  return
      Line numbers:
        [pc: 0, line: 8]
      Local variable table:
        [pc: 0, pc: 5] local: this index: 0 type: com.sunsmile.StringTest
  
  // Method descriptor #15 ([Ljava/lang/String;)V
  // Stack: 3, Locals: 5
  public static void main(java.lang.String[] args);
     0  new java.lang.StringBuilder [16]
     3  dup
     4  invokespecial java.lang.StringBuilder() [18]
     7  aconst_null
     8  invokevirtual java.lang.StringBuilder.append(java.lang.Object) : java.lang.StringBuilder [19]
    11  ldc <String "a"> [23]
    13  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [25]
    16  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [28]
    19  astore_1 [a]
    20  new java.lang.StringBuilder [16]
    23  dup
    24  invokespecial java.lang.StringBuilder() [18]
    27  aconst_null
    28  invokevirtual java.lang.StringBuilder.append(java.lang.Object) : java.lang.StringBuilder [19]
    31  ldc <String "a"> [23]
    33  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [25]
    36  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [28]
    39  astore_2 [aa]
    40  getstatic java.lang.System.out : java.io.PrintStream [32]
    43  aload_1 [a]
    44  aload_2 [aa]
    45  if_acmpne 52
    48  iconst_1
    49  goto 53
    52  iconst_0
    53  invokevirtual java.io.PrintStream.println(boolean) : void [38]
    56  ldc <String "nulla"> [44]
    58  astore_3 [b]
    59  ldc <String "nulla"> [44]
    61  astore 4 [bb]
    63  getstatic java.lang.System.out : java.io.PrintStream [32]
    66  aload_3 [b]
    67  aload 4 [bb]
    69  if_acmpne 76
    72  iconst_1
    73  goto 77
    76  iconst_0
    77  invokevirtual java.io.PrintStream.println(boolean) : void [38]
    80  return
 
分享到:
评论

相关推荐

    SSD1的答案

    1. **生成.class文件的数量**:在成功编译任何`.java`文件后,会产生至少一个`.class`文件。这是因为每个`.java`文件被编译成对应的`.class`文件,包含该文件中定义的类的字节码。正确答案是(d)至少一个。 ### 编译...

    Java编程基础知识点汇总习题集--答案3.pdf

    编译Java源代码(.java文件)使用javac命令,生成的字节码文件(.class文件)可以通过java命令来运行。如果需要生成文档注释,可以使用javadoc命令。 在填空题部分,我们需要记住以下关键点: 1. Java的三个技术...

    SSD!单选题+答案

    **题目**: 成功编译任何`.java`文件后,将生成多少个`.class`文件? - (a) 正好一个 - (b) 最多一个 - (c) 没有 - (d) 至少一个 **正确答案**: (d) 至少一个 **知识点解析**: - **编译原理**: Java 编译器会将 `....

    「Java语言与面向对象程序设计-在线作业B答案」.docx

    4. **Java开发环境与工具**:Java开发环境包括Java Development Kit (JDK),它包含了编译器javac.exe,用于将Java源文件编译成.class文件。JVM是Java平台的基础,它解释并执行.class文件,同时提供运行环境。Java ...

    2021-2022计算机二级等级考试试题及答案No.2752.docx

    16. Java程序编译后的字节码文件扩展名为.class,答案正确。 17. 在VFP中,使用AVERAGE命令计算平均值前,需确保表文件的结构已复制,答案B正确。 18. 在Word中,多文档间切换可以通过任务栏完成,答案错误。 19....

    查找代码C++来自《C++数据结构与程序设计》Robert L.Kruse Alexander J.Ryba

    在编程领域,C++是一种强大的、面向对象的编程语言,被广泛用于系统软件、应用软件、游戏开发...文件列表中的"rearch"可能是书中关于查找算法的相关代码示例,进一步研究这个文件将有助于巩固和扩展上述概念的理解。

    Android应用开发期末考试题(完整版).docx (带答案)

    - **知识点**: 在XML布局文件中,可以通过`android:hint`属性来设置`EditText`控件的提示信息。当用户未输入任何文本时,该提示信息会显示出来。 **9. 以下不是Activity启动的方法是(gotoActivity)** - **知识点...

    java基础与案例开发详解课后答案.pdf

    CLASSPATH环境变量则指定了Java虚拟机寻找类库(.class文件)的路径。 【Java程序结构】 Java程序由类(cla)组成,每个类可以包含方法和变量。程序执行的入口点是主类中的main方法。例如,HelloWorld程序的基本...

    2021-2022计算机二级等级考试试题及答案No.13757.docx

    22. 源文件中只能有一个公共类(public class),除非使用内部类(inner class)。正确答案:错误。 23. 使用搜索引擎查找信息属于数据处理应用。正确答案:D。 24. 计算机进行资料检索属于数据处理领域。正确答案...

    2021-2022计算机二级等级考试试题及答案No.4115.docx

    15. Java 编译结果:Java 源代码文件(.java)经过编译后,会产生字节码文件(.class),这是 Java 虚拟机能够识别的文件格式。 16. MaxLength 属性:在某些编程语言或环境中,设置文本框的 MaxLength 属性为 0 ...

    java基础习题

    13. **指定class文件位置**:使用`-d`选项可以指定编译生成的`.class`文件的位置。 14. **标识符命名规则**:类名的首字母应大写,接口名同样首字母大写,常量全大写,变量名和方法名首字母小写。 15. **javadoc...

    2021-2022计算机二级等级考试试题及答案No.9601.docx

    11. Java源代码中定义的每个类都会生成一个对应的.class字节码文件。 12. 在PowerPoint中,可以通过“插入”菜单的“影片和声音”命令来添加声音文件。 13. 文本框绑定到字段后,其内容的修改会同步更新到对应字段...

    javaEE基础教程 习题答案

    Java运行环境主要由Java虚拟机(Java Virtual Machine,简称JVM)构成,这是一个抽象的计算机,可以执行编译后的Java字节码(.class文件)。JVM负责解释执行这些字节码,使得Java程序可以在任何安装了JVM的平台上...

    ssd3 practical quiz7答案

    2. `StudentArrayList.class`:同样,这是编译后的类文件,可能是一个实现了某种学生列表数据结构的类,可能包含添加、删除、查找和遍历学生等方法。 3. `Student.class`:这个文件代表`Student`类,可能是存储和...

    2021-2022计算机二级等级考试试题及答案No.12977.docx

    11. Windows 文件查找:在 Windows 中,要查找以 "A" 开头后跟一字母的文件,应输入 "A?",其中问号代表任意单个字符。 12. 分组菜单:菜单名字前带黑点的菜单项表示该菜单组中必须至少有一个选项被选中。 13. 非...

    javaSE的import要点和packet下类的编译和运行.doc

    如果进入`day6`目录直接运行`java Test`,会出错,因为Java会在这个目录下查找对应的`Test.class`,而不是上一级目录。 总结,理解和熟练运用`import`语句以及在命令行环境中编译和运行带有包的Java类,是Java开发...

    JAVA题库及答案.pdf

    8. `-d`选项用于指定生成的class文件位置。 9. 类名、接口名首字母应大写,常量全大写,变量名和方法名首字母小写。 10. main方法的正确签名是`public static void main(String args[])`。 11. 文档注释(/**...*/)...

    Java习题答案.doc

    2. **编译源代码**:使用`javac`命令将.java文件编译成字节码.class文件。 3. **运行程序**:使用`java`命令执行编译后的类,类名通常是包含主方法的类。 【编程题解析】 1. 题目要求输入四个数并按照从小到大的...

    2021-2022计算机二级等级考试试题及答案No.17437.docx

    20. Servlet类位置:在Java Web应用中,HelloServlet类的.class文件应放在`WEB-INF/classes`目录下,根据包结构组织。 21. 下拉菜单选项设置:在HTML中,`&lt;option&gt;`标签用于设置下拉菜单的各个选项。 22. 满二叉树...

    SCJP(310-065)考试参考题集2

    因此,如果编译成功,Utils类的字节码文件`Utils.class`会被添加到`classes`目录,答案是C。 65. 最后一道题目展示了Java的包和类结构。`MainClass`位于`com.company.application`包中,且实际文件存在于`/apps/...

Global site tag (gtag.js) - Google Analytics