public final class java.lang.Double extends java.lang.Number implements java.lang.Comparable<java.lang.Double>, java.lang.constant.Constable, java.lang.constant.ConstantDesc
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: java.lang.Double
super_class: java.lang.Number
{
public static final double POSITIVE_INFINITY;
descriptor: D
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: Infinity
public static final double NEGATIVE_INFINITY;
descriptor: D
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -Infinity
public static final double NaN;
descriptor: D
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: NaN
public static final double MAX_VALUE;
descriptor: D
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1.7976931348623157E308
public static final double MIN_NORMAL;
descriptor: D
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2.2250738585072014E-308
public static final double MIN_VALUE;
descriptor: D
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4.9E-324
public static final int MAX_EXPONENT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1023
public static final int MIN_EXPONENT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1022
public static final int SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 64
public static final int BYTES;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 8
public static final java.lang.Class<java.lang.Double> TYPE;
descriptor: Ljava/lang/Class;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/Class<Ljava/lang/Double;>;
private final double value;
descriptor: D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -9172774392245257468
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "double"
invokestatic java.lang.Class.getPrimitiveClass:(Ljava/lang/String;)Ljava/lang/Class;
putstatic java.lang.Double.TYPE:Ljava/lang/Class;
1: return
LocalVariableTable:
Start End Slot Name Signature
public static java.lang.String toString(double);
descriptor: (D)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: dload 0
invokestatic jdk.internal.math.FloatingDecimal.toJavaFormatString:(D)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 d D
MethodParameters:
Name Flags
d
public static java.lang.String toHexString(double);
descriptor: (D)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: dload 0
invokestatic java.lang.Double.isFinite:(D)Z
ifne 2
1: dload 0
invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
bipush 24
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 2
start local 2 3: dconst_1
dload 0
invokestatic java.lang.Math.copySign:(DD)D
ldc -1.0
dcmpl
ifne 5
4: aload 2
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 2
ldc "0x"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: dload 0
invokestatic java.lang.Math.abs:(D)D
dstore 0
7: dload 0
dconst_0
dcmpl
ifne 10
8: aload 2
ldc "0.0p0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: goto 31
10: StackMap locals:
StackMap stack:
dload 0
ldc 2.2250738585072014E-308
dcmpg
ifge 11
iconst_1
goto 12
StackMap locals:
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 3
start local 3 13: dload 0
invokestatic java.lang.Double.doubleToLongBits:(D)J
14: ldc 4503599627370495
15: land
16: ldc 1152921504606846976
17: lor
lstore 4
start local 4 18: aload 2
iload 3
ifeq 19
ldc "0."
goto 20
StackMap locals: double java.lang.StringBuilder int long
StackMap stack: java.lang.StringBuilder
19: ldc "1."
StackMap locals: double java.lang.StringBuilder int long
StackMap stack: java.lang.StringBuilder java.lang.String
20: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: lload 4
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
iconst_3
bipush 16
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 6
start local 6 22: aload 2
aload 6
ldc "0000000000000"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 24
23: ldc "0"
goto 25
24: StackMap locals: double java.lang.StringBuilder int long java.lang.String
StackMap stack: java.lang.StringBuilder
aload 6
ldc "0{1,12}$"
ldc ""
invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
25: StackMap locals: double java.lang.StringBuilder int long java.lang.String
StackMap stack: java.lang.StringBuilder java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: aload 2
bipush 112
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
27: aload 2
iload 3
ifeq 29
28: sipush -1022
goto 30
29: StackMap locals:
StackMap stack: java.lang.StringBuilder
dload 0
invokestatic java.lang.Math.getExponent:(D)I
30: StackMap locals: double java.lang.StringBuilder int long java.lang.String
StackMap stack: java.lang.StringBuilder int
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
end local 6 end local 4 end local 3 31: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 d D
3 32 2 answer Ljava/lang/StringBuilder;
13 31 3 subnormal Z
18 31 4 signifBits J
22 31 6 signif Ljava/lang/String;
MethodParameters:
Name Flags
d
public static java.lang.Double valueOf(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Double;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.lang.Double
dup
aload 0
invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
invokespecial java.lang.Double.<init>:(D)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
Exceptions:
throws java.lang.NumberFormatException
MethodParameters:
Name Flags
s
public static java.lang.Double valueOf(double);
descriptor: (D)Ljava/lang/Double;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.lang.Double
dup
dload 0
invokespecial java.lang.Double.<init>:(D)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 d D
RuntimeVisibleAnnotations:
jdk.internal.HotSpotIntrinsicCandidate()
MethodParameters:
Name Flags
d
public static double parseDouble(java.lang.String);
descriptor: (Ljava/lang/String;)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic jdk.internal.math.FloatingDecimal.parseDouble:(Ljava/lang/String;)D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
Exceptions:
throws java.lang.NumberFormatException
MethodParameters:
Name Flags
s
public static boolean isNaN(double);
descriptor: (D)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: dload 0
dload 0
dcmpl
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 v D
MethodParameters:
Name Flags
v
public static boolean isInfinite(double);
descriptor: (D)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: dload 0
ldc Infinity
dcmpl
ifeq 1
dload 0
ldc -Infinity
dcmpl
ifeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 v D
MethodParameters:
Name Flags
v
public static boolean isFinite(double);
descriptor: (D)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: dload 0
invokestatic java.lang.Math.abs:(D)D
ldc 1.7976931348623157E308
dcmpg
ifgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 d D
MethodParameters:
Name Flags
d
public void <init>(double);
descriptor: (D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 0
dload 1
putfield java.lang.Double.value:D
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/Double;
0 3 1 value D
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
MethodParameters:
Name Flags
value
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 0
aload 1
invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
putfield java.lang.Double.value:D
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/Double;
0 3 1 s Ljava/lang/String;
Exceptions:
throws java.lang.NumberFormatException
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
MethodParameters:
Name Flags
s
public boolean isNaN();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
invokestatic java.lang.Double.isNaN:(D)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
public boolean isInfinite();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
invokestatic java.lang.Double.isInfinite:(D)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
public byte byteValue();
descriptor: ()B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
d2i
i2b
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
public short shortValue();
descriptor: ()S
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
d2i
i2s
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
public int intValue();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
d2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
public long longValue();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
d2l
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
public float floatValue();
descriptor: ()F
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
d2f
freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
public double doubleValue();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
RuntimeVisibleAnnotations:
jdk.internal.HotSpotIntrinsicCandidate()
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
invokestatic java.lang.Double.hashCode:(D)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
public static int hashCode(double);
descriptor: (D)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: dload 0
invokestatic java.lang.Double.doubleToLongBits:(D)J
lstore 2
start local 2 1: lload 2
lload 2
bipush 32
lushr
lxor
l2i
ireturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 value D
1 2 2 bits J
MethodParameters:
Name Flags
value
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.lang.Double
ifeq 5
1: aload 1
checkcast java.lang.Double
getfield java.lang.Double.value:D
invokestatic java.lang.Double.doubleToLongBits:(D)J
2: aload 0
getfield java.lang.Double.value:D
invokestatic java.lang.Double.doubleToLongBits:(D)J
3: lcmp
ifne 5
4: iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/Double;
0 6 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public static long doubleToLongBits(double);
descriptor: (D)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: dload 0
invokestatic java.lang.Double.isNaN:(D)Z
ifne 2
1: dload 0
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lreturn
2: StackMap locals:
StackMap stack:
ldc 9221120237041090560
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 value D
RuntimeVisibleAnnotations:
jdk.internal.HotSpotIntrinsicCandidate()
MethodParameters:
Name Flags
value
public static native long doubleToRawLongBits(double);
descriptor: (D)J
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
jdk.internal.HotSpotIntrinsicCandidate()
MethodParameters:
Name Flags
value
public static native double longBitsToDouble(long);
descriptor: (J)D
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
jdk.internal.HotSpotIntrinsicCandidate()
MethodParameters:
Name Flags
bits
public int compareTo(java.lang.Double);
descriptor: (Ljava/lang/Double;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.Double.value:D
aload 1
getfield java.lang.Double.value:D
invokestatic java.lang.Double.compare:(DD)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
0 1 1 anotherDouble Ljava/lang/Double;
MethodParameters:
Name Flags
anotherDouble
public static int compare(double, double);
descriptor: (DD)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 2 0: dload 0
dload 2
dcmpg
ifge 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
dload 0
dload 2
dcmpl
ifle 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
dload 0
invokestatic java.lang.Double.doubleToLongBits:(D)J
lstore 4
start local 4 5: dload 2
invokestatic java.lang.Double.doubleToLongBits:(D)J
lstore 6
start local 6 6: lload 4
lload 6
lcmp
ifne 7
iconst_0
goto 9
7: StackMap locals: long long
StackMap stack:
lload 4
lload 6
lcmp
ifge 8
iconst_m1
goto 9
8: StackMap locals:
StackMap stack:
iconst_1
9: StackMap locals:
StackMap stack: int
ireturn
end local 6 end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 d1 D
0 10 2 d2 D
5 10 4 thisBits J
6 10 6 anotherBits J
MethodParameters:
Name Flags
d1
d2
public static double sum(double, double);
descriptor: (DD)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 2 0: dload 0
dload 2
dadd
dreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a D
0 1 2 b D
MethodParameters:
Name Flags
a
b
public static double max(double, double);
descriptor: (DD)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 2 0: dload 0
dload 2
invokestatic java.lang.Math.max:(DD)D
dreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a D
0 1 2 b D
MethodParameters:
Name Flags
a
b
public static double min(double, double);
descriptor: (DD)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 2 0: dload 0
dload 2
invokestatic java.lang.Math.min:(DD)D
dreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a D
0 1 2 b D
MethodParameters:
Name Flags
a
b
public java.util.Optional<java.lang.Double> describeConstable();
descriptor: ()Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
Signature: ()Ljava/util/Optional<Ljava/lang/Double;>;
public java.lang.Double resolveConstantDesc(java.lang.invoke.MethodHandles$Lookup);
descriptor: (Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/Double;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/Double;
0 1 1 lookup Ljava/lang/invoke/MethodHandles$Lookup;
MethodParameters:
Name Flags
lookup
public int compareTo(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.lang.Double
invokevirtual java.lang.Double.compareTo:(Ljava/lang/Double;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
public java.lang.Object resolveConstantDesc(java.lang.invoke.MethodHandles$Lookup);
descriptor: (Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual java.lang.Double.resolveConstantDesc:(Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/Double;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.ReflectiveOperationException
}
Signature: Ljava/lang/Number;Ljava/lang/Comparable<Ljava/lang/Double;>;Ljava/lang/constant/Constable;Ljava/lang/constant/ConstantDesc;
SourceFile: "Double.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles