final class java.lang.ref.FinalizerHistogram
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.lang.ref.FinalizerHistogram
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ref/FinalizerHistogram;
static java.lang.ref.FinalizerHistogram$Entry[] getFinalizerHistogram();
descriptor: ()[Ljava/lang/ref/FinalizerHistogram$Entry;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=0
0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 0
start local 0 1: invokestatic java.lang.ref.Finalizer.getQueue:()Ljava/lang/ref/ReferenceQueue;
astore 1
start local 1 2: aload 1
aload 0
invokedynamic accept(Ljava/util/Map;)Ljava/util/function/Consumer;
Bootstrap: 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:
(Ljava/lang/Object;)V
java/lang/ref/FinalizerHistogram.lambda$0(Ljava/util/Map;Ljava/lang/ref/Reference;)V (6)
(Ljava/lang/ref/Reference;)V
invokevirtual java.lang.ref.ReferenceQueue.forEach:(Ljava/util/function/Consumer;)V
3: aload 0
invokeinterface java.util.Map.values:()Ljava/util/Collection;
aload 0
invokeinterface java.util.Map.size:()I
anewarray java.lang.ref.FinalizerHistogram$Entry
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.ref.FinalizerHistogram$Entry[]
astore 2
start local 2 4: aload 2
5: invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
Bootstrap: 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:
(Ljava/lang/Object;)I
java/lang/ref/FinalizerHistogram$Entry.getInstanceCount()I (5)
(Ljava/lang/ref/FinalizerHistogram$Entry;)I
invokestatic java.util.Comparator.comparingInt:(Ljava/util/function/ToIntFunction;)Ljava/util/Comparator;
invokeinterface java.util.Comparator.reversed:()Ljava/util/Comparator;
6: invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
7: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 8 0 countMap Ljava/util/Map<Ljava/lang/String;Ljava/lang/ref/FinalizerHistogram$Entry;>;
2 8 1 queue Ljava/lang/ref/ReferenceQueue<Ljava/lang/Object;>;
4 8 2 fhe [Ljava/lang/ref/FinalizerHistogram$Entry;
private static void lambda$0(java.util.Map, java.lang.ref.Reference);
descriptor: (Ljava/util/Map;Ljava/lang/ref/Reference;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=2
start local 1 0: aload 1
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnull 7
2: aload 0
3: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: 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:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/ref/FinalizerHistogram$Entry.<init>(Ljava/lang/String;)V (8)
(Ljava/lang/String;)Ljava/lang/ref/FinalizerHistogram$Entry;
4: invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.lang.ref.FinalizerHistogram$Entry
5: invokevirtual java.lang.ref.FinalizerHistogram$Entry.increment:()V
6: aconst_null
astore 2
end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 8 1 r Ljava/lang/ref/Reference<+Ljava/lang/Object;>;
1 7 2 referent Ljava/lang/Object;
}
SourceFile: "FinalizerHistogram.java"
NestMembers:
java.lang.ref.FinalizerHistogram$Entry
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private final Entry = java.lang.ref.FinalizerHistogram$Entry of java.lang.ref.FinalizerHistogram