1. 程式人生 > >學習Scala:從HelloWorld開始

學習Scala:從HelloWorld開始

Classfile /D:/Workspace/scala/scala-test/HelloWorld/HelloWorld$.class
  Last modified 2014-4-1; size 596 bytes
  MD5 checksum 7b3e40952539579da28edc84f370ab9b
  Compiled from "HelloWorld.scala"
public final class HelloWorld$
  SourceFile: "HelloWorld.scala"
    Scala: length = 0x0

  minor version: 0
  major version: 50
  flags: ACC_PUBLIC, ACC_FINAL, ACC_SUPER
Constant pool:
   #1 = Utf8               HelloWorld$
   #2 = Class              #1             //  HelloWorld$
   #3 = Utf8               java/lang/Object
   #4 = Class              #3             //  java/lang/Object
   #5 = Utf8               HelloWorld.scala
   #6 = Utf8               MODULE$
   #7 = Utf8               LHelloWorld$;
   #8 = Utf8               <clinit>
   #9 = Utf8               ()V
  #10 = Utf8               <init>
  #11 = NameAndType        #10:#9         //  "<init>":()V
  #12 = Methodref          #2.#11         //  HelloWorld$."<init>":()V
  #13 = Utf8               main
  #14 = Utf8               ([Ljava/lang/String;)V
  #15 = Utf8               scala/Predef$
  #16 = Class              #15            //  scala/Predef$
  #17 = Utf8               Lscala/Predef$;
  #18 = NameAndType        #6:#17         //  MODULE$:Lscala/Predef$;
  #19 = Fieldref           #16.#18        //  scala/Predef$.MODULE$:Lscala/Predef$;
  #20 = Utf8               HelloWorld
  #21 = String             #20            //  HelloWorld
  #22 = Utf8               println
  #23 = Utf8               (Ljava/lang/Object;)V
  #24 = NameAndType        #22:#23        //  println:(Ljava/lang/Object;)V
  #25 = Methodref          #16.#24        //  scala/Predef$.println:(Ljava/lang/Object;)V
  #26 = Utf8               this
  #27 = Utf8               args
  #28 = Utf8               [Ljava/lang/String;
  #29 = Methodref          #4.#11         //  java/lang/Object."<init>":()V
  #30 = NameAndType        #6:#7          //  MODULE$:LHelloWorld$;
  #31 = Fieldref           #2.#30         //  HelloWorld$.MODULE$:LHelloWorld$;
  #32 = Utf8               Code
  #33 = Utf8               LocalVariableTable
  #34 = Utf8               LineNumberTable
  #35 = Utf8               SourceFile
  #36 = Utf8               Scala
{
  public static final HelloWorld$ MODULE$;
    flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL


  public static {};
    flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: new           #2                  // class HelloWorld$
         3: invokespecial #12                 // Method "<init>":()V
         6: return

  public void main(java.lang.String[]);
    flags: ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
         0: getstatic     #19                 // Field scala/Predef$.MODULE$:Lscala/Predef$;
         3: ldc           #21                 // String HelloWorld
         5: invokevirtual #25                 // Method scala/Predef$.println:(Ljava/lang/Object;)V
         8: return
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
               0       9     0  this   LHelloWorld$;
               0       9     1  args   [Ljava/lang/String;
      LineNumberTable:
        line 5: 0
}

從輸出結果可以知道: