以下是包裹类型Float的一些描述:
// (version 1.8 : 52.0, super bit)
// Signature: Ljava/lang/Number;Ljava/lang/Comparable<Ljava/lang/Float;>;
public final class java.lang.Float extends java.lang.Number implements java.lang.Comparable {
// Field descriptor #39 F
public static final float POSITIVE_INFINITY = Infinityf;
// Field descriptor #39 F
public static final float NEGATIVE_INFINITY = -Infinityf;
// Field descriptor #39 F
public static final float NaN = NaNf;
// Field descriptor #39 F
public static final float MAX_VALUE = 3.4028235E38f;
// Field descriptor #39 F
public static final float MIN_NORMAL = 1.17549435E-38f;
// Field descriptor #39 F
public static final float MIN_VALUE = 1.4E-45f;
// Field descriptor #40 I
public static final int MAX_EXPONENT = 127;
// Field descriptor #40 I
public static final int MIN_EXPONENT = -126;
// Field descriptor #40 I
public static final int SIZE = 32;
// Field descriptor #40 I
public static final int BYTES = 4;
// Field descriptor #42 Ljava/lang/Class;
// Signature: Ljava/lang/Class<Ljava/lang/Float;>;
public static final java.lang.Class TYPE;
// Field descriptor #39 F
private final float value;
// Field descriptor #41 J
private static final long serialVersionUID = -2671257302660747028L;
// Method descriptor #119 (F)Ljava/lang/String;
// Stack: 1, Locals: 1
public static java.lang.String toString(float arg0);
0 fload_0 [arg0]
1 invokestatic sun.misc.FloatingDecimal.toJavaFormatString(float) : java.lang.String [164]
4 areturn
// Method descriptor #119 (F)Ljava/lang/String;
// Stack: 3, Locals: 2
public static java.lang.String toHexString(float arg0);
0 fload_0 [arg0]
1 invokestatic java.lang.Math.abs(float) : float [159]
4 ldc <Float 1.17549435E-38> [5]
6 fcmpg
7 ifge 37
10 fload_0 [arg0]
11 fconst_0
12 fcmpl
13 ifeq 37
16 fload_0 [arg0]
17 f2d
18 sipush -896
21 invokestatic java.lang.Math.scalb(double, int) : double [158]
24 invokestatic java.lang.Double.toHexString(double) : java.lang.String [147]
27 astore_1
28 aload_1
29 ldc <String “p-1022$”> [9]
31 ldc <String “p-126”> [10]
33 invokevirtual java.lang.String.replaceFirst(java.lang.String, java.lang.String) : java.lang.String [163]
36 areturn
37 fload_0 [arg0]
38 f2d
39 invokestatic java.lang.Double.toHexString(double) : java.lang.String [147]
42 areturn
Stack map table: number of frames 1
[pc: 37, same]
// Method descriptor #121 (Ljava/lang/String;)Ljava/lang/Float;
// Stack: 3, Locals: 1
public static java.lang.Float valueOf(java.lang.String arg0) throws java.lang.NumberFormatException;
0 new java.lang.Float [108]
3 dup
4 aload_0 [arg0]
5 invokestatic java.lang.Float.parseFloat(java.lang.String) : float [157]
8 invokespecial java.lang.Float(float) [151]
11 areturn
// Method descriptor #116 (F)Ljava/lang/Float;
// Stack: 3, Locals: 1
public static java.lang.Float valueOf(float arg0);
0 new java.lang.Float [108]
3 dup
4 fload_0 [arg0]
5 invokespecial java.lang.Float(float) [151]
8 areturn
// Method descriptor #120 (Ljava/lang/String;)F
// Stack: 1, Locals: 1
public static float parseFloat(java.lang.String arg0) throws java.lang.NumberFormatException;
0 aload_0 [arg0]
1 invokestatic sun.misc.FloatingDecimal.parseFloat(java.lang.String) : float [165]
4 freturn
// Method descriptor #26 (F)Z
// Stack: 2, Locals: 1
public static boolean isNaN(float arg0);
0 fload_0 [arg0]
1 fload_0 [arg0]
2 fcmpl
3 ifeq 10
6 iconst_1
7 goto 11
10 iconst_0
11 ireturn
Stack map table: number of frames 2
[pc: 10, same]
[pc: 11, same_locals_1_stack_item, stack: {int}]
// Method descriptor #26 (F)Z
// Stack: 2, Locals: 1
public static boolean isInfinite(float arg0);
0 fload_0 [arg0]
1 ldc <Float Infinity> [7]
3 fcmpl
4 ifeq 14
7 fload_0 [arg0]
8 ldc <Float -Infinity> [4]
10 fcmpl
11 ifne 18
14 iconst_1
15 goto 19
18 iconst_0
19 ireturn
Stack map table: number of frames 3
[pc: 14, same]
[pc: 18, same]
[pc: 19, same_locals_1_stack_item, stack: {int}]
// Method descriptor #26 (F)Z
// Stack: 2, Locals: 1
public static boolean isFinite(float arg0);
0 fload_0 [arg0]
1 invokestatic java.lang.Math.abs(float) : float [159]
4 ldc <Float 3.4028235E38> [6]
6 fcmpg
7 ifgt 14
10 iconst_1
11 goto 15
14 iconst_0
15 ireturn
Stack map table: number of frames 2
[pc: 14, same]
[pc: 15, same_locals_1_stack_item, stack: {int}]
// Method descriptor #25 (F)V
// Stack: 2, Locals: 2
public Float(float arg0);
0 aload_0 [this]
1 invokespecial java.lang.Number() [162]
4 aload_0 [this]
5 fload_1 [arg0]
6 putfield java.lang.Float.value : float [144]
9 return
// Method descriptor #21 (D)V
// Stack: 3, Locals: 3
public Float(double arg0);
0 aload_0 [this]
1 invokespecial java.lang.Number() [162]
4 aload_0 [this]
5 dload_1 [arg0]
6 d2f
7 putfield java.lang.Float.value : float [144]
10 return
// Method descriptor #32 (Ljava/lang/String;)V
// Stack: 2, Locals: 2
public Float(java.lang.String arg0) throws java.lang.NumberFormatException;
0 aload_0 [this]
1 invokespecial java.lang.Number() [162]
4 aload_0 [this]
5 aload_1 [arg0]
6 invokestatic java.lang.Float.parseFloat(java.lang.String) : float [157]
9 putfield java.lang.Float.value : float [144]
12 return
// Method descriptor #19 ()Z
// Stack: 1, Locals: 1
public boolean isNaN();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 invokestatic java.lang.Float.isNaN(float) : boolean [153]
7 ireturn
// Method descriptor #19 ()Z
// Stack: 1, Locals: 1
public boolean isInfinite();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 invokestatic java.lang.Float.isInfinite(float) : boolean [152]
7 ireturn
// Method descriptor #16 ()Ljava/lang/String;
// Stack: 1, Locals: 1
public java.lang.String toString();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 invokestatic java.lang.Float.toString(float) : java.lang.String [156]
7 areturn
// Method descriptor #11 ()B
// Stack: 1, Locals: 1
public byte byteValue();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 f2i
5 i2b
6 ireturn
// Method descriptor #17 ()S
// Stack: 1, Locals: 1
public short shortValue();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 f2i
5 i2s
6 ireturn
// Method descriptor #14 ()I
// Stack: 1, Locals: 1
public int intValue();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 f2i
5 ireturn
// Method descriptor #15 ()J
// Stack: 2, Locals: 1
public long longValue();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 f2l
5 lreturn
// Method descriptor #13 ()F
// Stack: 1, Locals: 1
public float floatValue();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 freturn
// Method descriptor #12 ()D
// Stack: 2, Locals: 1
public double doubleValue();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 f2d
5 dreturn
// Method descriptor #14 ()I
// Stack: 1, Locals: 1
public int hashCode();
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 invokestatic java.lang.Float.hashCode(float) : int [150]
7 ireturn
// Method descriptor #24 (F)I
// Stack: 1, Locals: 1
public static int hashCode(float arg0);
0 fload_0 [arg0]
1 invokestatic java.lang.Float.floatToIntBits(float) : int [148]
4 ireturn
// Method descriptor #30 (Ljava/lang/Object;)Z
// Stack: 2, Locals: 2
public boolean equals(java.lang.Object arg0);
0 aload_1 [arg0]
1 instanceof java.lang.Float [108]
4 ifeq 31
7 aload_1 [arg0]
8 checkcast java.lang.Float [108]
11 getfield java.lang.Float.value : float [144]
14 invokestatic java.lang.Float.floatToIntBits(float) : int [148]
17 aload_0 [this]
18 getfield java.lang.Float.value : float [144]
21 invokestatic java.lang.Float.floatToIntBits(float) : int [148]
24 if_icmpne 31
27 iconst_1
28 goto 32
31 iconst_0
32 ireturn
Stack map table: number of frames 2
[pc: 31, same]
[pc: 32, same_locals_1_stack_item, stack: {int}]
// Method descriptor #24 (F)I
// Stack: 2, Locals: 2
public static int floatToIntBits(float arg0);
0 fload_0 [arg0]
1 invokestatic java.lang.Float.floatToRawIntBits(float) : int [149]
4 istore_1
5 iload_1
6 ldc <Integer 2139095040> [2]
8 iand
9 ldc <Integer 2139095040> [2]
11 if_icmpne 24
14 iload_1
15 ldc <Integer 8388607> [1]
17 iand
18 ifeq 24
21 ldc <Integer 2143289344> [3]
23 istore_1
24 iload_1
25 ireturn
Stack map table: number of frames 1
[pc: 24, append: {int}]
// Method descriptor #24 (F)I
public static native int floatToRawIntBits(float arg0);
// Method descriptor #29 (I)F
public static native float intBitsToFloat(int arg0);
// Method descriptor #117 (Ljava/lang/Float;)I
// Stack: 2, Locals: 2
public int compareTo(java.lang.Float arg0);
0 aload_0 [this]
1 getfield java.lang.Float.value : float [144]
4 aload_1 [arg0]
5 getfield java.lang.Float.value : float [144]
8 invokestatic java.lang.Float.compare(float, float) : int [154]
11 ireturn
// Method descriptor #28 (FF)I
// Stack: 2, Locals: 4
public static int compare(float arg0, float arg1);
0 fload_0 [arg0]
1 fload_1 [arg1]
2 fcmpg
3 ifge 8
6 iconst_m1
7 ireturn
8 fload_0 [arg0]
9 fload_1 [arg1]
10 fcmpl
11 ifle 16
14 iconst_1
15 ireturn
16 fload_0 [arg0]
17 invokestatic java.lang.Float.floatToIntBits(float) : int [148]
20 istore_2
21 fload_1 [arg1]
22 invokestatic java.lang.Float.floatToIntBits(float) : int [148]
25 istore_3
26 iload_2
27 iload_3
28 if_icmpne 35
31 iconst_0
32 goto 45
35 iload_2
36 iload_3
37 if_icmpge 44
40 iconst_m1
41 goto 45
44 iconst_1
45 ireturn
Stack map table: number of frames 5
[pc: 8, same]
[pc: 16, same]
[pc: 35, append: {int, int}]
[pc: 44, same]
[pc: 45, same_locals_1_stack_item, stack: {int}]
// Method descriptor #27 (FF)F
// Stack: 2, Locals: 2
public static float sum(float arg0, float arg1);
0 fload_0 [arg0]
1 fload_1 [arg1]
2 fadd
3 freturn
// Method descriptor #27 (FF)F
// Stack: 2, Locals: 2
public static float max(float arg0, float arg1);
0 fload_0 [arg0]
1 fload_1 [arg1]
2 invokestatic java.lang.Math.max(float, float) : float [160]
5 freturn
// Method descriptor #27 (FF)F
// Stack: 2, Locals: 2
public static float min(float arg0, float arg1);
0 fload_0 [arg0]
1 fload_1 [arg1]
2 invokestatic java.lang.Math.min(float, float) : float [161]
5 freturn
// Method descriptor #118 (Ljava/lang/Object;)I
// Stack: 2, Locals: 2
public bridge synthetic int compareTo(java.lang.Object arg0);
0 aload_0 [this]
1 aload_1 [arg0]
2 checkcast java.lang.Float [108]
5 invokevirtual java.lang.Float.compareTo(java.lang.Float) : int [155]
8 ireturn
// Method descriptor #18 ()V
// Stack: 1, Locals: 0
static {};
0 ldc <String “float”> [8]
2 invokestatic java.lang.Class.getPrimitiveClass(java.lang.String) : java.lang.Class [146]
5 putstatic java.lang.Float.TYPE : java.lang.Class [145]
8 return
}