1:Java是以对象为基础的编程语言
2:在如object作为参数的方法中无法直接传入基本数据类型
3:在集合中只能存储对象
获取Integer对象的方式
Java在底层将-128到127范围内的每个数据都创建了对象
在这个范围内调用valueof方法不会创建新的对象
在以前:1:将对象拆箱为基本数据类型
2:运算
3:把得到的结果再次装箱,变回包装类
自动装箱:将基本数据类型自动变成对应的包装类
自动拆箱:把包装类自动变成其对象的基本数据类型
//public BigInteger(int num, Random rnd) 获取随机大整数 范围在0-2的num次方-1
//public BigInteger(String val) 获取指定的大整数
//public BigInteger(String val,int radix) 获取指定进制的大整数
//public static BigInteger value(long val) 静态方法获取BigInteger的对象,内部有优化
获取一个随机的大整数
范围: 范围在0-2的num次方-1
将字符串中字符转化为大整数
该字符串只能是整数 不能是小数或符号字母
将字符串看成指定的进制的整数表示形式
如:BigInteger("100",a)
a为10则100表示十进制为100
a为2则表示2进制,获取到的整数为4
注:1:传入字符串应与对应的进制表示形式相同
2:直接将该类对象进行打印时会转化成十进制形式输出
BigInteger bds=BigInteger.valuepf(int a);
调用静态方法创建BigInteger对象
内部优化:在内部对常用的数字-16~16进行优化
注:只能传入long范围中的整数
5:对象一旦创建内部的数据不能发生改变
BigInteger对象一旦创建其中的值是不可变的
用该类对象调用方法进行加减乘除所返回的对象都是新的BigInteger对象
BigInteger bd1 =BigInteger("12132");
BigInteger bd2 =BigInteger("12132");
bd2=bd1.add(bd2);
此时bd2所指向的是一个新的BigInteger对象
将传入字符转换为二进制后,将其分为符号位与数字位,其中数字位从右往左32位为一组,分别转换为对应十进制数,最终将符号位与数字位的分组依次存入一个整形数组中
其中signum表示符号位
mag是用来存储分组的数组
构造方法获取BigDcimal对象
public BigDecimal(double val)
public BigDecimal(String val)
静态方法获取BigDecimal对象
public static BigDecimal valueof(double val)
细节:这种方式创建的对象不够精确,不建议使用
BigDecimal bd1=new BigDecimal(323.24);
System.out.println(bd1);
BigDecimal bd3=new BigDecimal("232.324");
BigDecimal bd4=new BigDecimal("324.123");
System.out.println(bd3);
System.out.println(bd4);
System.out.println(bd3.add(bd4));
BigDecimal bd5=BigDecimal.valueOf(10.0);
System.out.println(bd5);
1:如果要表示的小数不大,没有超出double范围,建议使用静态方法
2:如果表示的小数比较大,超出了double的取值范围,建议使用构造方法
3:静态方法创建对象,如果我们传递的是0~10之间的整数,包含0,包含10,那么方法会返回已经创建好的对象,不会重新new
public static BigDecimal valueof(double val) 获取对象
public BigDecimal add(BigDecimal val) 加法
public BigDecimal subtract(BigDecimal val) 减法
public BigDecimal multiply(BigDecimal val) 乘法
public BigDecimal divide(BigDecimal val) 除法
public BigDecimal divide(BigDecimal val ,int scale,RoundingMode roundingMode) 除法
scale 保留几位小数
roundingMode 舍入方式
无论哪种获取对象的方法最终都是通过字符串形式获取的对象,只是表示形式不同
而通过字符串获取的小数,将小数的每一位(包括点)转化成对应ASCII码值存储在数组中
负数会将负号也作为一个字符转化为对应的值
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务