[二]基础数据类型之Long详解

 

Long

 

Long 基本数据类型long  的包装类

Long 类型的对象包含一个 long类型的字段

 

image_5bab1d94_4380[4]

 

属性简介

 

值为  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]

包装类

使用对应的基本数据类型long 的字符串String形式构造

image_5bab1d94_7677[4]

 

 

 

常用方法

 

比较

static int compare(long x, long y)

静态方法

0   x == y;

-1   x < y;

1    x > y

image_5bab1d94_44ce[4]

int compareTo(Long anotherLong)

实例方法
两个对象进行比较   ,实际比较两个对象的value值
根本还是通过调用 static int compare(long x, long y)
image_5bab1d94_63a5[4]
static int compareUnsigned(long x, long y)静态方法
两个基本类型int 当做无符号数进行比较   通过+MIN_VALUE进行转换
根本还是调用static int compare(long x, long y)
image_5bab1d94_253d[4]

 

 

parseXXX系列

字符串解析 为 基本类型

不需要对象,所以都是静态方法

image_5bab1d94_130b[4]

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]
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]

 

 

 

 

valueOf系列

把基本基本类型 包装为对象

用来创建获得对象,所以无需对象,全都是静态方法

image_5bab1d94_7ef1[4]

 

VaueOf系列都有对应的缓存区, 缓存区范围内对象为同一个 

缓冲区为静态内部类中的数组

image_5bab1d94_408d[4]

 

缓冲范围为  -128~127

static Long valueOf(long l)静态方法
读取缓存中的对象或者创建新的对象
image_5bab1d94_515c[4]
static Integer valueOf(String s, int radix)静态方法
根据指定的基数(进制)解析字符串
根本是调用static Long valueOf(long l)
image_5bab1d94_57b7[4]

static Long valueOf(String s)

静态方法
十进制 解析字符串
static Long valueOf(String s, int radix) 的十进制简化形式
根本是调用static   Long valueOf(long l)
image_5bab1d94_2d40[4]

 

 

 

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]

强制类型转换的形式,将内部的long 值转换为指定的类型

 

byte byteValue()

image_5bab1d94_55df[4]
short shortValue()image_5bab1d94_189f[4]
int intValue()image_5bab1d94_1aa5[4]
long longValue()image_5bab1d94_3e2f[4]
float floatValue()image_5bab1d94_4e72[4]
double doubleValue()image_5bab1d94_5f3[4]

 

 

 

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]

static String toBinaryString(long i)

静态方法

以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式

image_5bab1d94_5e4[4]

static String toOctalString(long i)

静态方法

以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式

image_5bab1d94_638c[4]

static String toHexString(long i)

静态方法

以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式

image_5bab1d94_5a3b[4]

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]

 

 

equals

 

Long重写了equals方法
比较的是两个Long对象中内部的 long value值
image_5bab1d94_2b9f[4]

 

 

hashCode

static int hashCode(long value)静态方法
返回某个long 数值的hashcode
image_5bab1d94_756a[4]
int hashCode()实例方法
获取某个Long对象的hashcode
等同于static int hashCode(long value) 调用 内部value值
image_5bab1d94_7b7[4]

 

 

getXXX系列 

获取系统属性的数值

 

static Long getLong(String nm, Long val) 

确定具有指定名称的系统属性的整数值

 

第一个参数被视为系统属性的名称

通过 System.getProperty(java.lang.String) 方法可以访问系统属性

 

第二个参数是默认值

如果未具有指定名称的属性,或者属性的数字格式不正确,或者指定名称为空或 null

则返回一个表示第二个参数的值的 Integer 对象

image_5bab1d94_24f2[4]
static Long getLong(String nm, long val)static Long getLong(String nm, Long val)  的基本类型形式
image_5bab1d94_274b[4]
static Long getLong(String nm)
image_5bab1d94_4ed9[4]

 

 

其他方法

 

最高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]
static long sum(long a, long b)静态方法
求和
image_5bab1d95_67b3[4]
static long max(long a, long b)静态方法
最大值
image_5bab1d95_15a2[4]
static long min(long a, long b)静态方法
最小值
image_5bab1d95_193b[4]

 

 

Long 与Integer 是数值类型中使用频率最高的两个,也是提供支持方法最多的两个

他们提供出来的方法功能也是高度的相似

 

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页