包装类
包装类----Number及封装拆箱
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char Character
* boolean Boolean
*
* 数字 代表 数字的包装类 对应的父类是 Number
* Number 是Byte,Short,Integer,Long,Float,Double 的父类
*
* 是一个抽象类、里面提供了将 包装类 转成 基本数据类型 的 方法
* 分别是
* byteValue()
* shortValue()
* integerValue()
* longValue()
* floatValue()
* doubleValue()
*
* 将 包装类 转成 基本数据类型 ,这个过程称为 拆箱
*
* 基本数据类型 转成 包装类 的过程 称为 封箱
*
* 包装类 是引用数据类型
包装类----Integer常见方法
实现接口
Implemented Interfaces:
Serializable Comparable Integer
属性
- MAX_VALUE 最大值
- MIN_VALUE 最小值
构造方法
- Integer(int value)
int 转 integer - Integer(String s)
数字组成的字符串转成数字
方法
- compare(int x, int y)
比较两 int值的数值。 静态方法static int 通过类调用 - compareTo(Integer anotherInteger)
比较两 Integer对象数值。 - equals(Object obj)
将此对象与指定的对象进行比较。 (不能用 == ,引用数据类型==比较的是地址) - parseInt(String s)
将字符串参数作为带符号的十进制整数。 - parseInt(String s, int radix)
将字符串参数作为一个符号整数,进制由第二个参数指定。 - toBinaryString(int i)
在基地 2无符号整数返回整数参数的字符串表示形式。 - toHexString(int i)
在基地 16无符号整数返回整数参数的字符串表示形式。 - toOctalString(int i)
在基地 8无符号整数返回整数参数的字符串表示形式。 - valueOf(int i)
返回一个 Integer实例表示指定的 int价值。 - valueOf(String s)
返回一个 Integer对象转成 数字 - valueOf(String s, int radix)
返回一个 字符串 转成 radix 进制
Integer a = new Integer("311");
System.out.println(a);
Integer b = new Integer("311");
// 双等号 比较基本数据类型,代表比较两个数的值
// 比较引用数据类型,代表比较地址是否相等
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println(Objects.equals(a,b));
//结果大于0 ,前者比后者大,=0 相等
System.out.println(a.compareTo(b));
System.out.println(Integer.compare(a,b));
//转成基本数据类型
System.out.println(a.floatValue());
- 进行算术运算的时候,仍旧遵循算术运算的方式
包装类----自动封箱和拆箱
//自动封箱:程序会自动将 int 类型 通过 Integer.valueof() 转化成 Integer
Integer c = 300;
//自动拆箱:程序会自动将 Integer 类型 通过 intValue() 转成 int 类型
int d = c + 100;
* Integer x =30 发生了自动封箱操作,
* 会自动调用 Integer.valueOf(i) 方法
* 如果 i 的值 在 -128-127 之间(包含开始和结束)
* 那么会从 IntegerCache.cache 数组中获取对应的值
* IntegerCache.cache 是一个静态的数组,被所有的对象共享
*
* 那么此时 如果 i 相等,则用 == 和 equals 比较得到的结果狗屎true
*
* 如果 i 的值 不在 -128-127 之间,那么会自动通过 new Integer()构建一个包装类
*
* 那么 == 比较的会返回 false,(每次 new 产生的狗屎不同的对象)
*
* 如果 要比较两个包装类的值 是否相等,则必须通过 equals 方法进行比较
*
* 只要是 引用数据类型,比较内容只能用 equals
包装类的默认值问题
引用数据类型的默认值是 空
包装类的默认值是 null
BigInteger 大整数
算术运算
- add(BigInteger) 加
- subtract(BigInteger) 减
- multiply(BigInteger) 乘
- divide(BigInteger) 除
- mod(BigInteger) 余数
- divideAndRemainder(BigInteger)
计算商和余数、返回一个数组
- new BigInteger(strNum)
传入 10进制 格式的 字符串数字 - new BigInteger(strNum , radix)
传入 指定 进制 格式的 字符串数据
BigDecimal 处理小数
- new BigDecimal(strNum)
- scale()
返回 几位 小数 - precision()
返回 有效数字 个数 - setScale(n, RoundingMode)
设置保留几位小数
- ROUND_UNNECESSARY (默认)
保留 n 位小数, n位之后必须都为0 ,否则报错- UP
绝对值 向上取整- DOWN (常用)
直接截断- HALF_UP(常用)
四舍五入 相当于 math.random- FLOOR
四舍五入 向下 取整- CEILING
相当于 math.ceil的方法- HALF_DOWN
如果 大于 0.5 , 则 舍入, 否则 舍弃
- stripTrailingZeros()
截取 小数点 尾部 0