public final class java.lang.Double extends java.lang.Number implements java.lang.Comparable<java.lang.Double>
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 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=4, locals=2, args_size=1
start local 0 0: new sun.misc.FloatingDecimal
dup
dload 0
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
invokevirtual sun.misc.FloatingDecimal.toJavaFormatString:()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 sun.misc.FpUtils.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.StringBuffer
dup
bipush 24
invokespecial java.lang.StringBuffer.<init>:(I)V
astore 2
start local 2 3: dconst_1
dload 0
invokestatic sun.misc.FpUtils.rawCopySign:(DD)D
ldc -1.0
dcmpl
ifne 5
4: aload 2
ldc "-"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
5: StackMap locals: java.lang.StringBuffer
StackMap stack:
aload 2
ldc "0x"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
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.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
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.StringBuffer int long
StackMap stack: java.lang.StringBuffer
19: ldc "1."
StackMap locals: double java.lang.StringBuffer int long
StackMap stack: java.lang.StringBuffer java.lang.String
20: invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
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.StringBuffer int long java.lang.String
StackMap stack: java.lang.StringBuffer
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.StringBuffer int long java.lang.String
StackMap stack: java.lang.StringBuffer java.lang.String
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
26: aload 2
new java.lang.StringBuilder
dup
ldc "p"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
ifeq 28
27: sipush -1022
goto 29
28: StackMap locals: double java.lang.StringBuffer int long java.lang.String
StackMap stack: java.lang.StringBuffer java.lang.StringBuilder
dload 0
invokestatic sun.misc.FpUtils.getExponent:(D)I
StackMap locals: double java.lang.StringBuffer int long java.lang.String
StackMap stack: java.lang.StringBuffer java.lang.StringBuilder int
29: invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
30: invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
end local 6 end local 4 end local 3 31: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.StringBuffer.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/StringBuffer;
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 sun.misc.FloatingDecimal.readJavaFormatString:(Ljava/lang/String;)Lsun/misc/FloatingDecimal;
invokevirtual sun.misc.FloatingDecimal.doubleValue:()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
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 sun.misc.FloatingDecimal.readJavaFormatString:(Ljava/lang/String;)Lsun/misc/FloatingDecimal;
invokevirtual sun.misc.FloatingDecimal.doubleValue:()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 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
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
aload 1
invokestatic java.lang.Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
invokevirtual java.lang.Double.doubleValue:()D
invokespecial java.lang.Double.<init>:(D)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/Double;
0 2 1 s Ljava/lang/String;
Exceptions:
throws java.lang.NumberFormatException
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;
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield java.lang.Double.value:D
invokestatic java.lang.Double.doubleToLongBits:(D)J
lstore 1
start local 1 1: lload 1
lload 1
bipush 32
lushr
lxor
l2i
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/Double;
1 2 1 bits J
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=4, locals=4, args_size=1
start local 0 0: dload 0
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lstore 2
start local 2 1: lload 2
ldc 9218868437227405312
land
2: ldc 9218868437227405312
3: lcmp
ifne 6
4: lload 2
ldc 4503599627370495
land
lconst_0
lcmp
ifeq 6
5: ldc 9221120237041090560
lstore 2
6: StackMap locals: long
StackMap stack:
lload 2
lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 value D
1 7 2 result J
MethodParameters:
Name Flags
value
public static native long doubleToRawLongBits(double);
descriptor: (D)J
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
value
public static native double longBitsToDouble(long);
descriptor: (J)D
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
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 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
}
Signature: Ljava/lang/Number;Ljava/lang/Comparable<Ljava/lang/Double;>;
SourceFile: "Double.java"