1
2
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Run (Ctrl-Enter)
-
Output -
Runtime error -
Build error -
Input
(0.40 sec)
Hello runner1, good morning!
Hello runner1, good morning!
Classfile /workspace/Main.class
Last modified Dec 8, 2020; size 3049 bytes
SHA-256 checksum ceaa871c0f0d159b4c2c754d3200a0409407ce8412a715798102645474d59d5f
Compiled from "Main.java"
public class Main
minor version: 0
major version: 59
flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: #56 // Main
super_class: #81 // java/lang/Object
interfaces: 0, fields: 0, methods: 5, attributes: 3
Constant pool:
#1 = Methodref #2.#3 // java/time/LocalTime.now:()Ljava/time/LocalTime;
#2 = Class #4 // java/time/LocalTime
#3 = NameAndType #5:#6 // now:()Ljava/time/LocalTime;
#4 = Utf8 java/time/LocalTime
#5 = Utf8 now
#6 = Utf8 ()Ljava/time/LocalTime;
#7 = Fieldref #8.#9 // java/time/temporal/ChronoField.HOUR_OF_DAY:Ljava/time/temporal/ChronoField;
#8 = Class #10 // java/time/temporal/ChronoField
#9 = NameAndType #11:#12 // HOUR_OF_DAY:Ljava/time/temporal/ChronoField;
#10 = Utf8 java/time/temporal/ChronoField
#11 = Utf8 HOUR_OF_DAY
#12 = Utf8 Ljava/time/temporal/ChronoField;
#13 = Methodref #2.#14 // java/time/LocalTime.get:(Ljava/time/temporal/TemporalField;)I
#14 = NameAndType #15:#16 // get:(Ljava/time/temporal/TemporalField;)I
#15 = Utf8 get
#16 = Utf8 (Ljava/time/temporal/TemporalField;)I
#17 = String #18 // night
#18 = Utf8 night
#19 = String #20 // morning
#20 = Utf8 morning
#21 = String #22 // afternoon
#22 = Utf8 afternoon
#23 = String #24 // evening
#24 = Utf8 evening
#25 = Class #26 // java/lang/AssertionError
#26 = Utf8 java/lang/AssertionError
#27 = Methodref #25.#28 // java/lang/AssertionError."<init>":()V
#28 = NameAndType #29:#30 // "<init>":()V
#29 = Utf8 <init>
#30 = Utf8 ()V
#31 = Fieldref #32.#33 // java/lang/System.out:Ljava/io/PrintStream;
#32 = Class #34 // java/lang/System
#33 = NameAndType #35:#36 // out:Ljava/io/PrintStream;
#34 = Utf8 java/lang/System
#35 = Utf8 out
#36 = Utf8 Ljava/io/PrintStream;
#37 = String #38 // user.name
#38 = Utf8 user.name
#39 = Methodref #32.#40 // java/lang/System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
#40 = NameAndType #41:#42 // getProperty:(Ljava/lang/String;)Ljava/lang/String;
#41 = Utf8 getProperty
#42 = Utf8 (Ljava/lang/String;)Ljava/lang/String;
#43 = InvokeDynamic #0:#44 // #0:makeConcatWithConstants:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
#44 = NameAndType #45:#46 // makeConcatWithConstants:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
#45 = Utf8 makeConcatWithConstants
#46 = Utf8 (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
#47 = Methodref #48.#49 // java/io/PrintStream.println:(Ljava/lang/String;)V
#48 = Class #50 // java/io/PrintStream
#49 = NameAndType #51:#52 // println:(Ljava/lang/String;)V
#50 = Utf8 java/io/PrintStream
#51 = Utf8 println
#52 = Utf8 (Ljava/lang/String;)V
#53 = InvokeDynamic #1:#54 // #1:makeConcatWithConstants:(Ljava/lang/String;)Ljava/lang/String;
#54 = NameAndType #45:#42 // makeConcatWithConstants:(Ljava/lang/String;)Ljava/lang/String;
#55 = Methodref #56.#57 // Main.invokeManually:(Ljava/lang/String;)V
#56 = Class #58 // Main
#57 = NameAndType #59:#52 // invokeManually:(Ljava/lang/String;)V
#58 = Utf8 Main
#59 = Utf8 invokeManually
#60 = Methodref #56.#61 // Main.showBytecode:()V
#61 = NameAndType #62:#30 // showBytecode:()V
#62 = Utf8 showBytecode
#63 = Methodref #64.#65 // java/lang/invoke/MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
#64 = Class #66 // java/lang/invoke/MethodHandles
#65 = NameAndType #67:#68 // lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
#66 = Utf8 java/lang/invoke/MethodHandles
#67 = Utf8 lookup
#68 = Utf8 ()Ljava/lang/invoke/MethodHandles$Lookup;
#69 = String #70 // foobar
#70 = Utf8 foobar
#71 = Class #72 // java/lang/String
#72 = Utf8 java/lang/String
#73 = Methodref #74.#75 // java/lang/invoke/MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
#74 = Class #76 // java/lang/invoke/MethodType
#75 = NameAndType #77:#78 // methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
#76 = Utf8 java/lang/invoke/MethodType
#77 = Utf8 methodType
#78 = Utf8 (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
#79 = String #80 // Hello \u0002, good \u0001!
#80 = Utf8 Hello \u0002, good \u0001!
#81 = Class #82 // java/lang/Object
#82 = Utf8 java/lang/Object
#83 = Methodref #84.#85 // 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;
#84 = Class #86 // java/lang/invoke/StringConcatFactory
#85 = NameAndType #45:#87 // makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#86 = Utf8 java/lang/invoke/StringConcatFactory
#87 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#88 = Methodref #89.#90 // java/lang/invoke/CallSite.getTarget:()Ljava/lang/invoke/MethodHandle;
#89 = Class #91 // java/lang/invoke/CallSite
#90 = NameAndType #92:#93 // getTarget:()Ljava/lang/invoke/MethodHandle;
#91 = Utf8 java/lang/invoke/CallSite
#92 = Utf8 getTarget
#93 = Utf8 ()Ljava/lang/invoke/MethodHandle;
#94 = Methodref #95.#96 // java/lang/invoke/MethodHandle.invokeExact:(Ljava/lang/String;)Ljava/lang/String;
#95 = Class #97 // java/lang/invoke/MethodHandle
#96 = NameAndType #98:#42 // invokeExact:(Ljava/lang/String;)Ljava/lang/String;
#97 = Utf8 java/lang/invoke/MethodHandle
#98 = Utf8 invokeExact
#99 = Methodref #48.#100 // java/io/PrintStream.println:()V
#100 = NameAndType #51:#30 // println:()V
#101 = String #102 // javap
#102 = Utf8 javap
#103 = InterfaceMethodref #104.#105 // java/util/spi/ToolProvider.findFirst:(Ljava/lang/String;)Ljava/util/Optional;
#104 = Class #106 // java/util/spi/ToolProvider
#105 = NameAndType #107:#108 // findFirst:(Ljava/lang/String;)Ljava/util/Optional;
#106 = Utf8 java/util/spi/ToolProvider
#107 = Utf8 findFirst
#108 = Utf8 (Ljava/lang/String;)Ljava/util/Optional;
#109 = InvokeDynamic #2:#110 // #2:accept:()Ljava/util/function/Consumer;
#110 = NameAndType #111:#112 // accept:()Ljava/util/function/Consumer;
#111 = Utf8 accept
#112 = Utf8 ()Ljava/util/function/Consumer;
#113 = Methodref #114.#115 // java/util/Optional.ifPresent:(Ljava/util/function/Consumer;)V
#114 = Class #116 // java/util/Optional
#115 = NameAndType #117:#118 // ifPresent:(Ljava/util/function/Consumer;)V
#116 = Utf8 java/util/Optional
#117 = Utf8 ifPresent
#118 = Utf8 (Ljava/util/function/Consumer;)V
#119 = Methodref #81.#28 // java/lang/Object."<init>":()V
#120 = Fieldref #32.#121 // java/lang/System.err:Ljava/io/PrintStream;
#121 = NameAndType #122:#36 // err:Ljava/io/PrintStream;
#122 = Utf8 err
#123 = String #124 // -v
#124 = Utf8 -v
#125 = String #126 // -c
#126 = Utf8 -c
#127 = Methodref #128.#129 // java/lang/Class.getName:()Ljava/lang/String;
#128 = Class #130 // java/lang/Class
#129 = NameAndType #131:#132 // getName:()Ljava/lang/String;
#130 = Utf8 java/lang/Class
#131 = Utf8 getName
#132 = Utf8 ()Ljava/lang/String;
#133 = InterfaceMethodref #104.#134 // java/util/spi/ToolProvider.run:(Ljava/io/PrintStream;Ljava/io/PrintStream;[Ljava/lang/String;)I
#134 = NameAndType #135:#136 // run:(Ljava/io/PrintStream;Ljava/io/PrintStream;[Ljava/lang/String;)I
#135 = Utf8 run
#136 = Utf8 (Ljava/io/PrintStream;Ljava/io/PrintStream;[Ljava/lang/String;)I
#137 = Utf8 main
#138 = Utf8 ([Ljava/lang/String;)V
#139 = Utf8 Code
#140 = Utf8 LineNumberTable
#141 = Utf8 StackMapTable
#142 = Utf8 Exceptions
#143 = Class #144 // java/lang/Throwable
#144 = Utf8 java/lang/Throwable
#145 = Utf8 lambda$showBytecode$0
#146 = Utf8 (Ljava/util/spi/ToolProvider;)V
#147 = Utf8 SourceFile
#148 = Utf8 Main.java
#149 = Utf8 BootstrapMethods
#150 = MethodHandle 6:#83 // 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;
#151 = String #152 // Hello \u0001, good \u0001!
#152 = Utf8 Hello \u0001, good \u0001!
#153 = String #154 // \u0002\u0001\u0002
#154 = Utf8 \u0002\u0001\u0002
#155 = String #156 // prefix \u0001
#156 = Utf8 prefix \u0001
#157 = String #158 // \u0002 suffix
#158 = Utf8 \u0002 suffix
#159 = MethodHandle 6:#160 // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
#160 = Methodref #161.#162 // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
#161 = Class #163 // java/lang/invoke/LambdaMetafactory
#162 = NameAndType #164:#165 // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
#163 = Utf8 java/lang/invoke/LambdaMetafactory
#164 = Utf8 metafactory
#165 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
#166 = MethodType #167 // (Ljava/lang/Object;)V
#167 = Utf8 (Ljava/lang/Object;)V
#168 = MethodHandle 6:#169 // REF_invokeStatic Main.lambda$showBytecode$0:(Ljava/util/spi/ToolProvider;)V
#169 = Methodref #56.#170 // Main.lambda$showBytecode$0:(Ljava/util/spi/ToolProvider;)V
#170 = NameAndType #145:#146 // lambda$showBytecode$0:(Ljava/util/spi/ToolProvider;)V
#171 = MethodType #146 // (Ljava/util/spi/ToolProvider;)V
#172 = Utf8 InnerClasses
#173 = Class #174 // java/lang/invoke/MethodHandles$Lookup
#174 = Utf8 java/lang/invoke/MethodHandles$Lookup
#175 = Utf8 Lookup
{
public static void main(java.lang.String[]) throws java.lang.Throwable;
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
0: invokestatic #1 // Method java/time/LocalTime.now:()Ljava/time/LocalTime;
3: getstatic #7 // Field java/time/temporal/ChronoField.HOUR_OF_DAY:Ljava/time/temporal/ChronoField;
6: invokevirtual #13 // Method java/time/LocalTime.get:(Ljava/time/temporal/TemporalField;)I
9: bipush 6
11: idiv
12: tableswitch { // 0 to 3
0: 44
1: 49
2: 54
3: 59
default: 64
}
44: ldc #17 // String night
46: goto 72
49: ldc #19 // String morning
51: goto 72
54: ldc #21 // String afternoon
56: goto 72
59: ldc #23 // String evening
61: goto 72
64: new #25 // class java/lang/AssertionError
67: dup
68: invokespecial #27 // Method java/lang/AssertionError."<init>":()V
71: athrow
72: astore_1
73: getstatic #31 // Field java/lang/System.out:Ljava/io/PrintStream;
76: ldc #37 // String user.name
78: invokestatic #39 // Method java/lang/System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
81: aload_1
82: invokedynamic #43, 0 // InvokeDynamic #0:makeConcatWithConstants:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
87: invokevirtual #47 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
90: aload_1
91: invokedynamic #53, 0 // InvokeDynamic #1:makeConcatWithConstants:(Ljava/lang/String;)Ljava/lang/String;
96: astore_2
97: aload_1
98: invokestatic #55 // Method invokeManually:(Ljava/lang/String;)V
101: invokestatic #60 // Method showBytecode:()V
104: return
LineNumberTable:
line 13: 0
line 14: 44
line 15: 59
line 18: 73
line 20: 90
line 22: 97
line 24: 101
line 25: 104
StackMapTable: number_of_entries = 6
frame_type = 44 /* same */
frame_type = 4 /* same */
frame_type = 4 /* same */
frame_type = 4 /* same */
frame_type = 4 /* same */
frame_type = 71 /* same_locals_1_stack_item */
stack = [ class java/lang/String ]
Exceptions:
throws java.lang.Throwable
}
SourceFile: "Main.java"
BootstrapMethods:
0: #150 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:
#151 Hello \u0001, good \u0001!
1: #150 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:
#153 \u0002\u0001\u0002
#155 prefix \u0001
#157 \u0002 suffix
2: #159 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
#166 (Ljava/lang/Object;)V
#168 REF_invokeStatic Main.lambda$showBytecode$0:(Ljava/util/spi/ToolProvider;)V
#171 (Ljava/util/spi/ToolProvider;)V
InnerClasses:
public static final #175= #173 of #64; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles