Skip to content

Instantly share code, notes, and snippets.

@kmizu
Created January 29, 2025 04:08
Show Gist options
  • Select an option

  • Save kmizu/1c2396c7a692c4114b6f9630aa467d4f to your computer and use it in GitHub Desktop.

Select an option

Save kmizu/1c2396c7a692c4114b6f9630aa467d4f to your computer and use it in GitHub Desktop.

Revisions

  1. kmizu created this gist Jan 29, 2025.
    122 changes: 122 additions & 0 deletions Fib.j
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,122 @@
    Classfile /Users/kota.mizushima/repo/Fib.class
    Last modified 2025/01/29; size 953 bytes
    SHA-256 checksum 58d114f5e4a48ff95933c8c9d90b42e8998060a6bc5f8e56fa4c1464ce4f1832
    Compiled from "Fib.java"
    public class Fib
    minor version: 0
    major version: 65
    flags: (0x0021) ACC_PUBLIC, ACC_SUPER
    this_class: #8 // Fib
    super_class: #2 // java/lang/Object
    interfaces: 0, fields: 0, methods: 3, attributes: 3
    Constant pool:
    #1 = Methodref #2.#3 // java/lang/Object."<init>":()V
    #2 = Class #4 // java/lang/Object
    #3 = NameAndType #5:#6 // "<init>":()V
    #4 = Utf8 java/lang/Object
    #5 = Utf8 <init>
    #6 = Utf8 ()V
    #7 = Methodref #8.#9 // Fib.fib:(I)I
    #8 = Class #10 // Fib
    #9 = NameAndType #11:#12 // fib:(I)I
    #10 = Utf8 Fib
    #11 = Utf8 fib
    #12 = Utf8 (I)I
    #13 = Fieldref #14.#15 // java/lang/System.out:Ljava/io/PrintStream;
    #14 = Class #16 // java/lang/System
    #15 = NameAndType #17:#18 // out:Ljava/io/PrintStream;
    #16 = Utf8 java/lang/System
    #17 = Utf8 out
    #18 = Utf8 Ljava/io/PrintStream;
    #19 = InvokeDynamic #0:#20 // #0:makeConcatWithConstants:(I)Ljava/lang/String;
    #20 = NameAndType #21:#22 // makeConcatWithConstants:(I)Ljava/lang/String;
    #21 = Utf8 makeConcatWithConstants
    #22 = Utf8 (I)Ljava/lang/String;
    #23 = Methodref #24.#25 // java/io/PrintStream.println:(Ljava/lang/String;)V
    #24 = Class #26 // java/io/PrintStream
    #25 = NameAndType #27:#28 // println:(Ljava/lang/String;)V
    #26 = Utf8 java/io/PrintStream
    #27 = Utf8 println
    #28 = Utf8 (Ljava/lang/String;)V
    #29 = Utf8 Code
    #30 = Utf8 LineNumberTable
    #31 = Utf8 StackMapTable
    #32 = Utf8 main
    #33 = Utf8 ([Ljava/lang/String;)V
    #34 = Utf8 SourceFile
    #35 = Utf8 Fib.java
    #36 = Utf8 BootstrapMethods
    #37 = String #38 // fib(10) = \u0001
    #38 = Utf8 fib(10) = \u0001
    #39 = MethodHandle 6:#40 // REF_invokeStatic java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
    #40 = Methodref #41.#42 // java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
    #41 = Class #43 // java/lang/invoke/StringConcatFactory
    #42 = NameAndType #21:#44 // makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
    #43 = Utf8 java/lang/invoke/StringConcatFactory
    #44 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
    #45 = Utf8 InnerClasses
    #46 = Class #47 // java/lang/invoke/MethodHandles$Lookup
    #47 = Utf8 java/lang/invoke/MethodHandles$Lookup
    #48 = Class #49 // java/lang/invoke/MethodHandles
    #49 = Utf8 java/lang/invoke/MethodHandles
    #50 = Utf8 Lookup
    {
    public Fib();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
    stack=1, locals=1, args_size=1
    0: aload_0
    1: invokespecial #1 // Method java/lang/Object."<init>":()V
    4: return
    LineNumberTable:
    line 1: 0

    public static int fib(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
    stack=3, locals=1, args_size=1
    0: iload_0
    1: iconst_2
    2: if_icmpge 7
    5: iconst_1
    6: ireturn
    7: iload_0
    8: iconst_1
    9: isub
    10: invokestatic #7 // Method fib:(I)I
    13: iload_0
    14: iconst_2
    15: isub
    16: invokestatic #7 // Method fib:(I)I
    19: iadd
    20: ireturn
    LineNumberTable:
    line 3: 0
    line 4: 7
    StackMapTable: number_of_entries = 1
    frame_type = 7 /* same */

    public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
    stack=2, locals=1, args_size=1
    0: getstatic #13 // Field java/lang/System.out:Ljava/io/PrintStream;
    3: bipush 10
    5: invokestatic #7 // Method fib:(I)I
    8: invokedynamic #19, 0 // InvokeDynamic #0:makeConcatWithConstants:(I)Ljava/lang/String;
    13: invokevirtual #23 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
    16: return
    LineNumberTable:
    line 7: 0
    line 8: 16
    }
    SourceFile: "Fib.java"
    BootstrapMethods:
    0: #39 REF_invokeStatic java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
    Method arguments:
    #37 fib(10) = \u0001
    InnerClasses:
    public static final #50= #46 of #48; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles