文章目录
一.BigInteger类
概念
操作整数
我们都知道4类8种中整数最大的类型是:long
我们以后遇到的数字,有可能会超过long的取值范围,long就接收不了这么大的数。那么这个类就起到了作用。太大的数,在java中,就不能称之为数,叫对象。
BigInteger类:
构造
BigInteger(String val):将十进制的字符串形式,变成BigInteger对象(字符串要符合数字规则 “123456789”)。
方法
- BigInteger add(BigInteger val) —>和另外一个BigInteger 做加法
- BigInteger subtract(BigInteger val) —>和另外一个BigInteger 做减法
- BigInteger multiply(BigInteger val) —>和另外一个BigInteger 做乘法
- BigInteger divide(BigInteger val) —>和另外一个BigInteger 做除法
二.BigDecimal类
概念
操作小数。
BigDecimal类:
构造:
BigDecimal(String val):将十进制的字符串形式,变成BigInteger对象(字符串要符合小数的规则 “10.24”)。
方法:
- BigDecimal add(BigDecimal val) —>和另外一个BigDecimal 做加法
- BigDecimal subtract(BigDecimal val) —>和另外一个BigDecimal做减法
- BigDecimal multiply(BigDecimal val) —>和另外一个BigDecimal做乘法
- BigDecimal divide(BigDecimal val) —>和另外一个BigDecimal做除法
注意:
BigDecimal如果除不尽会报错! 还有可能出现精度损失!!!
解决:
BigDecimal divide(BigDecimal divisor,int scale,int roundingMode);
参数:
- divisor:BigDicimal对象
- scale:保留小数的位数
- roundingMode:保留小数的方式
保留小数的方式 :BigDecimal 类提供了静态的成员变量来控制舍入方式:
static int ROUND_UP:向前进1
static int ROUND_DOWN:直接舍去
static int POUND_HALF_UP:四舍五入
来个小案例
有以下double数组: double[] arr = {0.1,0.2,2.1,3.2,5.56,7.21};
请编程计算它们的总值及平均值(四舍五入保留小数点后2位)?
public static void main(String[] args) {
double[] arr = {0.1,0.2,2.1,3.2,5.56,7.21};
//创建BigDecimal对象用来存总和
BigDecimal num = new BigDecimal(0);
//遍历数组
for (double a:arr
) {
//创建BigDecimal,将数组中每一个值添加进去用于计算和
BigDecimal bd = new BigDecimal(a);
//累加到num
num = num.add(bd);
}
//和 除 数组长度
BigDecimal divide = num.divide(new BigDecimal(arr.length), 2, BigDecimal.ROUND_HALF_UP);
System.out.println("和:"+num);
System.out.println("平均值:"+divide);
}
三.Arrays类
java.util
概念
操作数组的工具类
特点
- 方法都是静态的,直接类名调用即可。
- 构造方法被私有,不能new对象
方法
- static String toString(int[] a) -->返回指定数组内容的字符串表示形式([0, 0, 0, 0, 0]);
- static void sort(int[] a) -->排序 升序
四.包装类
基本数据类型 | 引用数据类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
拆箱和装箱(自动)
- 装箱:将基本数据类型转成引用数据类型(包装类)
- 拆箱:把引用数据类型(包装类)转成基本数据类型
下面方法吃饱了撑的了解有这个东西就行!
手动装箱(int 举例)
构造:
Integer(int i ) -->将int型转成Integer对象
Integer(String s ) -->将 符合数字规则的字符串 转成Integer对象。
方法:
static valueof(int i ) 直接Integer.调用
static valueof(String s)
手动拆箱(int 举例)
方法:
intValue();
任何类型遇到字符串都会变成字符串
基本数据类型和字符串之间的转换
基本数据类型转String
1. 基本数据类型和字符串拼接
2. 通过String类中的静态方法
static String valueOf(int i);
将String转成基本数据类型
1.static double parseDouble(String s)
2.static boolean parseBoolean(String s)其他以此类推…