class jdk.jfr.internal.StringPool$SimpleStringIdPool
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.jfr.internal.StringPool$SimpleStringIdPool
super_class: java.lang.Object
{
private final java.util.concurrent.atomic.AtomicLong sidIdx;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ConcurrentHashMap<java.lang.String, java.lang.Long> cache;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Ljava/lang/Long;>;
private final int MAX_SIZE;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 32768
private final long MAX_SIZE_UTF16;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 16777216
private long currentSizeUTF16;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final java.lang.String[] preCache;
descriptor: [Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int preCacheOld;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int preCacheMask;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
lconst_1
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.sidIdx:Ljava/util/concurrent/atomic/AtomicLong;
2: aload 0
ldc 32768
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.MAX_SIZE:I
3: aload 0
ldc 16777216
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.MAX_SIZE_UTF16:J
4: aload 0
iconst_4
anewarray java.lang.String
dup
iconst_0
ldc ""
aastore
dup
iconst_1
ldc ""
aastore
dup
iconst_2
ldc ""
aastore
dup
iconst_3
ldc ""
aastore
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
5: aload 0
iconst_0
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCacheOld:I
6: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
ldc 32768
ldc 0.75
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(IF)V
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
private void reset();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
1: ldc Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
dup
astore 1
monitorenter
2: aload 0
lconst_0
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.currentSizeUTF16:J
3: aload 1
monitorexit
4: goto 7
StackMap locals: jdk.jfr.internal.StringPool$SimpleStringIdPool java.lang.Class
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
Exception table:
from to target type
2 4 5 any
5 6 5 any
private long addString(java.lang.String);
descriptor: (Ljava/lang/String;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
invokevirtual java.lang.Long.longValue:()J
lreturn
3: StackMap locals: java.lang.Long
StackMap stack:
aload 0
aload 1
invokevirtual jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:(Ljava/lang/String;)Z
ifne 5
4: ldc -1
lreturn
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.size:()I
ldc 32768
if_icmpgt 6
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.currentSizeUTF16:J
ldc 16777216
lcmp
ifle 7
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.jfr.internal.StringPool$SimpleStringIdPool.reset:()V
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.jfr.internal.StringPool$SimpleStringIdPool.storeString:(Ljava/lang/String;)J
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
0 8 1 s Ljava/lang/String;
1 8 2 lsid Ljava/lang/Long;
MethodParameters:
Name Flags
s
private long storeString(java.lang.String);
descriptor: (Ljava/lang/String;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.sidIdx:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.getAndIncrement:()J
lstore 2
start local 2 1: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: ldc Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
dup
astore 4
monitorenter
3: lload 2
aload 1
invokestatic jdk.jfr.internal.JVM.addStringConstant:(JLjava/lang/String;)Z
pop
4: aload 0
dup
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.currentSizeUTF16:J
aload 1
invokevirtual java.lang.String.length:()I
i2l
ladd
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.currentSizeUTF16:J
5: aload 4
monitorexit
6: goto 9
StackMap locals: jdk.jfr.internal.StringPool$SimpleStringIdPool java.lang.String long java.lang.Class
StackMap stack: java.lang.Throwable
7: aload 4
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
lload 2
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
0 10 1 s Ljava/lang/String;
1 10 2 sid J
Exception table:
from to target type
3 6 7 any
7 8 7 any
MethodParameters:
Name Flags
s
private boolean preCache(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
iconst_0
aaload
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
iconst_1
aaload
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
iconst_2
aaload
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
iconst_3
aaload
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCacheOld:I
iconst_1
isub
iconst_3
iand
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCacheOld:I
9: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCacheOld:I
aload 1
aastore
10: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
0 11 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
}
SourceFile: "StringPool.java"
NestHost: jdk.jfr.internal.StringPool
InnerClasses:
private SimpleStringIdPool = jdk.jfr.internal.StringPool$SimpleStringIdPool of jdk.jfr.internal.StringPool