Long
Long 基本数据类型long 的包装类
Long 类型的对象包含一个 long类型的字段
![image_5bab1d94_4380[4]](https://i-blog.csdnimg.cn/blog_migrate/37e070bddbf774e36a11af53a621150e.png)
属性简介
值为 263-1 的常量,它表示 long 类型能够表示的最大值 | @Native public static final long MAX_VALUE = 0x7fffffffffffffffL; |
值为 -263 的常量,它表示 long 类型能够表示的最小值 | @Native public static final long MIN_VALUE = 0x8000000000000000L; |
用来以二进制补码形式表示 long 值的比特位数 | @Native public static final int SIZE = 64; |
二进制补码形式表示 long 值的字节数 | public static final int BYTES = SIZE / Byte.SIZE; |
表示基本类型 long 的 Class 实例 | public static final Class<Long> TYPE = (Class<Long>) Class.getPrimitiveClass("long"); |
构造方法
构造方法都是新创建对象,分配新的空间
字符串形式构造,默认以十进制的字符串形式解析
包装类 使用对应的基本数据类型long 构造 | ![image_5bab1d94_3c2e[4]](https://i-blog.csdnimg.cn/blog_migrate/ce6a39c2aa1ebe1e1f1dc834001e5514.png) |
包装类 使用对应的基本数据类型long 的字符串String形式构造 | ![image_5bab1d94_7677[4]](https://i-blog.csdnimg.cn/blog_migrate/34932f4e5b1d0e3f23c1ef726a0c4ec3.png) |
常用方法
比较
static int compare(long x, long y) | 静态方法 0 x == y; -1 x < y; 1 x > y ![image_5bab1d94_44ce[4]](https://i-blog.csdnimg.cn/blog_migrate/6646a5aa30821dafba73979b2ca9ec47.png) |
int compareTo(Long anotherLong) | 实例方法 两个对象进行比较 ,实际比较两个对象的value值 根本还是通过调用 static int compare(long x, long y)
![image_5bab1d94_63a5[4]](https://i-blog.csdnimg.cn/blog_migrate/a33d68c9e97e54c8cf5378f5a97d7853.png) |
static int compareUnsigned(long x, long y) | 静态方法 两个基本类型int 当做无符号数进行比较 通过+MIN_VALUE进行转换 根本还是调用static int compare(long x, long y)
![image_5bab1d94_253d[4]](https://i-blog.csdnimg.cn/blog_migrate/8f77b0d6e1458ed584fef03f236dc370.png) |
parseXXX系列
字符串解析 为 基本类型
不需要对象,所以都是静态方法
![image_5bab1d94_130b[4]](https://i-blog.csdnimg.cn/blog_migrate/e6900d28c1c7a8872f7e1f8b2032839e.png)
static long parseLong(String s, int radix) | 静态方法 使用第二个参数指定的基数(进制),将字符串参数解析为有符号的整数 除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D’),加号'+' ('\u002B') 外 字符串中的字符必须都是指定基数的数字 |
static long parseLong(String s) | 静态方法 static long parseLong(String s, int radix) 的十进制简化形式
![image_5bab1d94_4b14[4]](https://i-blog.csdnimg.cn/blog_migrate/6a0bb502b2758092015b3ce84db33067.png) |
static long parseUnsignedLong(String s, int radix) | 静态方法 使用第二个参数指定的基数(进制),将字符串参数解析为无符号的整数 除了第一个字符可以是用来表示正值的 ASCII 加号'+' ('\u002B') 外 字符串中的字符必须都是指定基数的数字 |
static long parseUnsignedLong(String s) | 静态方法 static long parseUnsignedLong(String s, int radix)的十进制简化形式
![image_5bab1d94_1311[4]](https://i-blog.csdnimg.cn/blog_migrate/bba9b953ea73d25c9e61ec0f6ac40d5d.png) |
valueOf系列
把基本基本类型 包装为对象
用来创建获得对象,所以无需对象,全都是静态方法
![image_5bab1d94_7ef1[4]](https://i-blog.csdnimg.cn/blog_migrate/efe374258bd424070c5cd82bfbfc48e5.png)
VaueOf系列都有对应的缓存区, 缓存区范围内对象为同一个
缓冲区为静态内部类中的数组
![image_5bab1d94_408d[4]](https://i-blog.csdnimg.cn/blog_migrate/aac5e607180c95439fb51ac70a5db130.png)
缓冲范围为 -128~127
decode
接受通过以下语法给出的十进制、十六进制和八进制数字 Sign是可选的 表示符号位 再往后 DecimalNumeral 就是指定基数的字符序列的正值 不能是负数,想要设置负数请仅仅使用符号位 也就是+-1 --1这种肯定不行 |
Sign DecimalNumeral Sign 0x HexDigits Sign 0X HexDigits Sign # HexDigits Sign 0 OctalDigits Sign: - + |
与Integer中的decode方法一样 代码也都一模一样,除了Integer换成了Long |
XXXValue系列
获取对象的某种基本类型的值
需要获取对象的所以必然全部都是实例方法
![image_5bab1d94_7a0c[4]](https://i-blog.csdnimg.cn/blog_migrate/8dd978ab3b4f61e36670777ad4fc8738.png)
强制类型转换的形式,将内部的long 值转换为指定的类型
toUnsignedString 系列 toString toXXXString 系列
无符号 字符串相关的转换
static String toString(long i, int radix) | 静态方法 根据指定基数,int 返回一个String 如果基数小于 Character.MIN_RADIX 或者大于 Character.MAX_RADIX,默认设置为基数 10 如果是负数 第一个符号位负号 '-' ('\u002D'),如果不是负数,将不会有符号 剩下的字符表示第一个参数的大小 如果大小是0 由字符 '0' ('\u0030') 表示,否则用来表示数值的第一个字符不会是0 用以下 ASCII 字符作为数字: 0123456789abcdefghijklmnopqrstuvwxyz 其范围是从 '\u0030' 到 '\u0039' 和从 '\u0061' 到 '\u007A' 如果 radix 为 N, 则按照所示顺序,使用这些字符中的前 N 个作为其数字 因此,十六进制(基数为 16)的数字是 0123456789abcdef |
static String toString(long i) | 静态方法 toString(long i, int radix)的十进制简化形式 同toString(long i, 10) |
String toString() | 实例方法 等同于把对象的value直接调用 toString(long i) ![image_5bab1d94_5bbf[4]](https://i-blog.csdnimg.cn/blog_migrate/53da1c37342c5ccc8fbf322cb00fb694.png) |
static String toBinaryString(long i) | 静态方法 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式 ![image_5bab1d94_5e4[4]](https://i-blog.csdnimg.cn/blog_migrate/e8c6b53c1a4acbc187ea561f62a15c5e.png) |
static String toOctalString(long i) | 静态方法 以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式 ![image_5bab1d94_638c[4]](https://i-blog.csdnimg.cn/blog_migrate/b90bb2bdf42dcb8ce6ff6a5d4e8c7ad3.png) |
static String toHexString(long i) | 静态方法 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式 ![image_5bab1d94_5a3b[4]](https://i-blog.csdnimg.cn/blog_migrate/d78956c97767dec7706c0246ca929ba6.png) |
static String toUnsignedString(long i, int radix) | 静态方法 在第二个参数指定的基数中,返回第一个参数的字符串表示的无符号整数值 如果基数不在Character.MIN_RADIX 和 Character.MAX_RADIX的范围内, 默认基数为10 如果大小是0,由字符零表示 '0' ('\u0030') 否则第一个字符不会是 0 基数和表示数字的字符的用法和表现和toString中一样 |
static String toUnsignedString(long i) | 静态方法 toUnsignedString(long i, int radix) 十进制的简化形式 同toUnsignedString(int, 10)
![image_5bab1d94_1b69[4]](https://i-blog.csdnimg.cn/blog_migrate/da12a76e96977a0f45735b608f4b90a3.png) |
equals
Long重写了equals方法 比较的是两个Long对象中内部的 long value值 |
![image_5bab1d94_2b9f[4]](https://i-blog.csdnimg.cn/blog_migrate/e693ddcb1fd61d28ec4b9485f692478f.png) |
hashCode
static int hashCode(long value) | 静态方法 返回某个long 数值的hashcode
![image_5bab1d94_756a[4]](https://i-blog.csdnimg.cn/blog_migrate/ddcbf1280dacd8635b2ec6a727d243ef.png) |
int hashCode() | 实例方法 获取某个Long对象的hashcode 等同于static int hashCode(long value) 调用 内部value值
![image_5bab1d94_7b7[4]](https://i-blog.csdnimg.cn/blog_migrate/6d6d90c60ed94cccee62aa8e2190f1a9.png) |
getXXX系列
获取系统属性的数值
static Long getLong(String nm, Long val) | 确定具有指定名称的系统属性的整数值 第一个参数被视为系统属性的名称 通过 System.getProperty(java.lang.String) 方法可以访问系统属性 第二个参数是默认值 如果未具有指定名称的属性,或者属性的数字格式不正确,或者指定名称为空或 null 则返回一个表示第二个参数的值的 Integer 对象 ![image_5bab1d94_24f2[4]](https://i-blog.csdnimg.cn/blog_migrate/7dbed05ccd3209a17fd2552efdf86af8.png) |
static Long getLong(String nm, long val) | static Long getLong(String nm, Long val) 的基本类型形式
![image_5bab1d94_274b[4]](https://i-blog.csdnimg.cn/blog_migrate/724ba387f2e8e64d2879b6ac46fd1636.png) |
static Long getLong(String nm) |
![image_5bab1d94_4ed9[4]](https://i-blog.csdnimg.cn/blog_migrate/3b0734f8750e6eaec609614ccbe06493.png) |
其他方法
最高1 位 最低1 位 前置零个数 和 后置0个数 | highestOneBit(long) / lowestOneBit(long) numberOfLeadingZeros(long) / numberOfTrailingZeros(long) |
位数 循环左移/循环右移 按位翻转 按照字节翻转 | bitCount(long) 二进制补码表示形式中的 1 位的数量 rotateLeft(long, int) / rotateRight(long, int) reverse(long) / reverseBytes(long) |
取整 求余 | divideUnsigned(long, long) remainderUnsigned(long, long) |
与Integer 一样, Long也有提供上述几个方法
语义一致
static int signum(long i) | 静态方法 返回指定 int 值的符号函数 (如果指定值为负,则返回 -1;如果指定值为零,则返回 0;如果指定的值为正,则返回 1 )
![image_5bab1d95_5650[4]](https://i-blog.csdnimg.cn/blog_migrate/639e829b05c5b07a1a058caf83184cc3.png) |
static long sum(long a, long b) | 静态方法 求和
![image_5bab1d95_67b3[4]](https://i-blog.csdnimg.cn/blog_migrate/dc66a0add48020481d32f5c7b98dc6e9.png) |
static long max(long a, long b) | 静态方法 最大值
![image_5bab1d95_15a2[4]](https://i-blog.csdnimg.cn/blog_migrate/c5fc54ded7b26badee8548c7a9a68a47.png) |
static long min(long a, long b) | 静态方法 最小值
![image_5bab1d95_193b[4]](https://i-blog.csdnimg.cn/blog_migrate/461c8b76fe38d3daade569cb96994fdf.png) |
Long 与Integer 是数值类型中使用频率最高的两个,也是提供支持方法最多的两个
他们提供出来的方法功能也是高度的相似
