Skip to content

Instantly share code, notes, and snippets.

@kmizu
Created January 29, 2025 04:30
Show Gist options
  • Save kmizu/4cb9bcceb7f83fc8d3abf8a547fe6275 to your computer and use it in GitHub Desktop.
Save kmizu/4cb9bcceb7f83fc8d3abf8a547fe6275 to your computer and use it in GitHub Desktop.
High and Low
Classfile /Users/kota.mizushima/repo/HighAndLow.class
Last modified 2025/01/29; size 1509 bytes
SHA-256 checksum 9f7e5f532ca17d7e41b24a14633833e16c0b95df2335adf465b063ab624bd730
Compiled from "HighAndLow.java"
public class HighAndLow
minor version: 0
major version: 65
flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: #56 // HighAndLow
super_class: #2 // java/lang/Object
interfaces: 0, fields: 0, methods: 2, 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 = Class #8 // java/util/Scanner
#8 = Utf8 java/util/Scanner
#9 = Fieldref #10.#11 // java/lang/System.in:Ljava/io/InputStream;
#10 = Class #12 // java/lang/System
#11 = NameAndType #13:#14 // in:Ljava/io/InputStream;
#12 = Utf8 java/lang/System
#13 = Utf8 in
#14 = Utf8 Ljava/io/InputStream;
#15 = Methodref #7.#16 // java/util/Scanner."<init>":(Ljava/io/InputStream;)V
#16 = NameAndType #5:#17 // "<init>":(Ljava/io/InputStream;)V
#17 = Utf8 (Ljava/io/InputStream;)V
#18 = Class #19 // java/util/Random
#19 = Utf8 java/util/Random
#20 = Methodref #18.#3 // java/util/Random."<init>":()V
#21 = Methodref #18.#22 // java/util/Random.nextInt:(I)I
#22 = NameAndType #23:#24 // nextInt:(I)I
#23 = Utf8 nextInt
#24 = Utf8 (I)I
#25 = Fieldref #10.#26 // java/lang/System.out:Ljava/io/PrintStream;
#26 = NameAndType #27:#28 // out:Ljava/io/PrintStream;
#27 = Utf8 out
#28 = Utf8 Ljava/io/PrintStream;
#29 = String #30 // 数当てゲームを開始します!1 から 100 の間の数を当ててください。
#30 = Utf8 数当てゲームを開始します!1 から 100 の間の数を当ててください。
#31 = Methodref #32.#33 // java/io/PrintStream.println:(Ljava/lang/String;)V
#32 = Class #34 // java/io/PrintStream
#33 = NameAndType #35:#36 // println:(Ljava/lang/String;)V
#34 = Utf8 java/io/PrintStream
#35 = Utf8 println
#36 = Utf8 (Ljava/lang/String;)V
#37 = String #38 // あなたの推測:
#38 = Utf8 あなたの推測:
#39 = Methodref #32.#40 // java/io/PrintStream.print:(Ljava/lang/String;)V
#40 = NameAndType #41:#36 // print:(Ljava/lang/String;)V
#41 = Utf8 print
#42 = Methodref #7.#43 // java/util/Scanner.nextInt:()I
#43 = NameAndType #23:#44 // nextInt:()I
#44 = Utf8 ()I
#45 = String #46 // もっと大きいです!
#46 = Utf8 もっと大きいです!
#47 = String #48 // もっと小さいです!
#48 = Utf8 もっと小さいです!
#49 = InvokeDynamic #0:#50 // #0:makeConcatWithConstants:(I)Ljava/lang/String;
#50 = NameAndType #51:#52 // makeConcatWithConstants:(I)Ljava/lang/String;
#51 = Utf8 makeConcatWithConstants
#52 = Utf8 (I)Ljava/lang/String;
#53 = Methodref #7.#54 // java/util/Scanner.close:()V
#54 = NameAndType #55:#6 // close:()V
#55 = Utf8 close
#56 = Class #57 // HighAndLow
#57 = Utf8 HighAndLow
#58 = Utf8 Code
#59 = Utf8 LineNumberTable
#60 = Utf8 main
#61 = Utf8 ([Ljava/lang/String;)V
#62 = Utf8 StackMapTable
#63 = Class #64 // "[Ljava/lang/String;"
#64 = Utf8 [Ljava/lang/String;
#65 = Utf8 SourceFile
#66 = Utf8 HighAndLow.java
#67 = Utf8 BootstrapMethods
#68 = String #69 // 正解!\u0001 回の試行で当たりました。
#69 = Utf8 正解!\u0001 回の試行で当たりました。
#70 = MethodHandle 6:#71 // 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;
#71 = Methodref #72.#73 // 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;
#72 = Class #74 // java/lang/invoke/StringConcatFactory
#73 = NameAndType #51:#75 // makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#74 = Utf8 java/lang/invoke/StringConcatFactory
#75 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#76 = Utf8 InnerClasses
#77 = Class #78 // java/lang/invoke/MethodHandles$Lookup
#78 = Utf8 java/lang/invoke/MethodHandles$Lookup
#79 = Class #80 // java/lang/invoke/MethodHandles
#80 = Utf8 java/lang/invoke/MethodHandles
#81 = Utf8 Lookup
{
public HighAndLow();
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 4: 0
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
0: new #7 // class java/util/Scanner
3: dup
4: getstatic #9 // Field java/lang/System.in:Ljava/io/InputStream;
7: invokespecial #15 // Method java/util/Scanner."<init>":(Ljava/io/InputStream;)V
10: astore_1
11: new #18 // class java/util/Random
14: dup
15: invokespecial #20 // Method java/util/Random."<init>":()V
18: astore_2
19: aload_2
20: bipush 100
22: invokevirtual #21 // Method java/util/Random.nextInt:(I)I
25: iconst_1
26: iadd
27: istore_3
28: iconst_0
29: istore 4
31: getstatic #25 // Field java/lang/System.out:Ljava/io/PrintStream;
34: ldc #29 // String 数当てゲームを開始します!1 から 100 の間の数を当ててください。
36: invokevirtual #31 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
39: getstatic #25 // Field java/lang/System.out:Ljava/io/PrintStream;
42: ldc #37 // String あなたの推測:
44: invokevirtual #39 // Method java/io/PrintStream.print:(Ljava/lang/String;)V
47: aload_1
48: invokevirtual #42 // Method java/util/Scanner.nextInt:()I
51: istore 5
53: iinc 4, 1
56: iload 5
58: iload_3
59: if_icmpge 73
62: getstatic #25 // Field java/lang/System.out:Ljava/io/PrintStream;
65: ldc #45 // String もっと大きいです!
67: invokevirtual #31 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
70: goto 39
73: iload 5
75: iload_3
76: if_icmple 90
79: getstatic #25 // Field java/lang/System.out:Ljava/io/PrintStream;
82: ldc #47 // String もっと小さいです!
84: invokevirtual #31 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
87: goto 39
90: getstatic #25 // Field java/lang/System.out:Ljava/io/PrintStream;
93: iload 4
95: invokedynamic #49, 0 // InvokeDynamic #0:makeConcatWithConstants:(I)Ljava/lang/String;
100: invokevirtual #31 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
103: goto 106
106: aload_1
107: invokevirtual #53 // Method java/util/Scanner.close:()V
110: return
LineNumberTable:
line 6: 0
line 7: 11
line 9: 19
line 10: 28
line 13: 31
line 16: 39
line 17: 47
line 18: 53
line 20: 56
line 21: 62
line 22: 73
line 23: 79
line 25: 90
line 26: 103
line 30: 106
line 31: 110
StackMapTable: number_of_entries = 4
frame_type = 255 /* full_frame */
offset_delta = 39
locals = [ class "[Ljava/lang/String;", class java/util/Scanner, class java/util/Random, int, int ]
stack = []
frame_type = 252 /* append */
offset_delta = 33
locals = [ int ]
frame_type = 16 /* same */
frame_type = 15 /* same */
}
SourceFile: "HighAndLow.java"
BootstrapMethods:
0: #70 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:
#68 正解!\u0001 回の試行で当たりました。
InnerClasses:
public static final #81= #77 of #79; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment