1. 程式人生 > >Java8 基礎資料型別包裝類-Long

Java8 基礎資料型別包裝類-Long

基礎

//final修飾不可更改,每次賦值都是新建類(其中-128~127是通過LongCache陣列獲取的不是新建的,所以可以使用==比較,但其他資料是通過new建立的,不能使用==直接比較大小,因為是不同的類,地址不同,需用equals)
public final class Long extends Number implements Comparable<Long> {}

常量

//-2^63
@Native public static final long MIN_VALUE = 0x8000000000000000L;
//2^63-1
@Native public static final long
MAX_VALUE = 0x7fffffffffffffffL; //位數 @Native public static final int SIZE = 64; //位元組數 public static final int BYTES = SIZE / Byte.SIZE;

繼承
抽象類Number
獲取包裝類與基本型別之間的轉換值,short、int、long、byte、float、double。
實現
Comparable 介面
實現compareTo(T o)方法
私有靜態內部類

//初始化是-128~127的Long物件
private static class LongCache {
    private
LongCache(){} static final Long cache[] = new Long[-(-128) + 127 + 1]; static { for(int i = 0; i < cache.length; i++) cache[i] = new Long(i - 128); } }

方法

轉成特定進位制的字串

//i:數值
//radix:需要轉換的進位制(2~36 不在此範圍的按10進位制處理)
public static String toString(long i, int radix) {}
//預設轉成10進位制,當i==MIN_VALUE 直接返回數值"-9223372036854775808"
public static String toString(long i) {} //呼叫toString(long i) public String toString() {}

按無符號數值轉特定進位制的字串,BigInteger

//無符號數轉字串
//i:數值
//radix:需要轉換的進位制(2~36 不在此範圍的按10進位制處理)
public static String toUnsignedString(long i, int radix) {}
private static BigInteger toUnsignedBigInteger(long i) {}
//轉化成16進位制無符號字串
public static String toHexString(long i) {}
//轉化成10進位制無符號字串
public static String toUnsignedString(long i) {}
//轉化成8進位制無符號字串
public static String toOctalString(long i) {}
//轉化成2進位制無符號字串
public static String toBinaryString(long i) {}

字串轉long

//s:數值字串
//radix:s字串是幾進位制(radix不在2~36則拋異常)
public static long parseLong(String s, int radix) throws NumberFormatException{}
//字串為10進位制
public static long parseLong(String s) throws NumberFormatException {}
//無符號字串轉long(字串第一位為“-”拋異常)
//radix:表示s字串是幾進位制(radix不在2~36則拋異常)
public static long parseUnsignedLong(String s, int radix) throws NumberFormatException {}
//字串為10進位制
public static long parseUnsignedLong(String s) throws NumberFormatException {}

字串,long轉Long

//s:數字型字串
//radix:表示s字串是幾進位制(radix不在2~36則拋異常)
public static Long valueOf(String s, int radix) throws NumberFormatException {}
//預設為10進位制
public static Long valueOf(String s) throws NumberFormatException{}
//其中-128~127的Long是程式啟動時就已經儲存到LongCache中,所以在這個範圍的資料是直接取的LongCache中的值
public static Long valueOf(long l) {}
//nm:可以是010(8進位制)、0x10(16進位制)(#開頭的在這個方法中也表示16進位制)
public static Long decode(String nm) throws NumberFormatException {}

Long轉基本資料型別

public byte byteValue() {}
public short shortValue() {}
public int intValue() {}
public long longValue() {}
public float floatValue() {}
public double doubleValue() {}

獲取系統屬性的值

//nm:系統屬性的名稱
//val:如果為空時的預設值
public static Long getLong(String nm, long val) {}
public static Long getLong(String nm, Long val) {}
//返回預設值為null
public static Long getLong(String nm) {}

比較及求和

//返回-1,1,0(-1表示y大,1表示x大)
public int compareTo(Long anotherLong) {}
//返回-1,1,0(-1表示y大,1表示x大)
public static int compare(long x, long y) {}
//比較xy無符號數的大小,返回-1,1,0(-1表示y大,1表示x大)
public static int compareUnsigned(long x, long y) {}
public static long sum(long a, long b) {}
public static long max(long a, long b) {}
public static long min(long a, long b) {}

無符號數運算

//將dividend和divisor轉成無符號整數相除取整
public static long divideUnsigned(long dividend, long divisor) {}
//將dividend和divisor轉成無符號整數相除取餘
public static long remainderUnsigned(long dividend, long divisor) {}

位運算
同Integer