java回顾之类API再体验之引用类型小结
1、BigInteger类
BigInteger代表整数类型,与基本数据类型不同的是,BigInteger表示大整数,可以存储任意大小的整数
-
构造方法:
方法 说明 BigInteger(String value) 可以把字符串整数变成对象 -
常用方法:
方法 说明 add(BigInteger value) 加法运算 subtract(BigInteger value) 减法运算 multiply(BigInteger value) 乘法运算 divide(BigInteger value) 除法运算
创建对象
BigInteger b1 = new BigInteger("123456789123456789123456789"); BigInteger b2 = new BigInteger("123456789123456789123456789"); //加法运算 //BigInteger b3 = b1.add(b2); //System.out.println(b3); System.out.println(b1.add(b2)); //减法运算 System.out.println(b1.subtract(b2)); //乘法运算 System.out.println(b1.multiply(b2)); //除法运算 System.out.println(b1.divide(b2));
2、BigDecimal类
BigDecimal表示大小数,这个可以存储任意位数,并且可以做精确小数计算,这个小数的精度最高
方法 | 说明 |
---|---|
BigDecimal(double val) | 把小数数值变成BigDecimal对象 |
BigDecimal(String val) | 把字符串值变成BigDecimal对象 |
-
常用方法:
方法 | 说明 |
---|---|
BigDecimal add(BigDecimal value) | 加法运算 |
BigDecimal subtract(BigDecimal value) | 减法运算 |
BigDecimal multiply(BigDecimal value) | 乘法运算 |
BigDecimal divide(BigDecimal value) | 除法运算 |
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) | 除法运算(除不尽的情况) |
实例代码 直接给double的话因为double是不精确的,所以运算会出错,这里推荐使用字符串,精确度高 BigDecimal b1=new BigDecimal("0.09") BigDecimal b2=new BigDecimal("0.01") 加法运算 System.out.println(b1.add(b2)) 减法运算 System.out.println(b1.subtract(b2)) 乘法运算 System.out.println(b1.multiply(b2)) 除法运算 System.out.println(b1.divide(b2)) 如果是小数除不尽的情况下可以保留小数位数,保留方式可以使四舍五入 //解决办法 // BigDecimal divisor 除数 // int scale 保留小数位数 // RoundingMode roundingMode 保留方式 RoundingMode.HALF_UP四舍五入 System.out.println(b1.divide(b2,2,RoundingMode.HALF_UP))
3、Arrays类
Arrays表示数组工具类,工具类的所有成员全都是静态的,可以类名直接调用
常用方法
static void sort(int[] a) 对数组进行排序 从小到大
static String toString(int[] a) 把数组转成字符串 方便打印
//创建数组 int[] arr = {21,43,454,6,576,867,8,79,89}; //排序 Arrays.sort(arr); //打印 System.out.println(Arrays.toString(arr));
4、基本类型的包装类
4.1、包装类的概述
在很多地方不能使用基本类型,只能使用引用类型。基本数据类型没有属性也没有方法
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer* |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
//new Integer(int value)构造方法 Integer i = new Integer(123); //new Integer(String s)构造方法 Integer i2 = new Integer("123"); //static Integer valueOf(String s)把字符串变成整数 Integer i3 = Integer.valueOf("123"); //static int parseInt(String s)把字符串变成整数 int i4 = Integer.parseInt("123");
4.2自动装箱和自动拆箱
把基本数据类型变成对应的包装类型叫装箱
把包装类型变成对应的基本数据类型叫拆箱
5、String类
String类是java中最常用的类没有之一
方法 | 说明 |
---|---|
length() | 获取字符串的长度 |
charAt() | 根据索引获取一个字符 |
equals() | 判断两个对象的内容是否相同 |
concat() | 把两个字符串拼接成一个新字符串 |
contains() | 判断是否包含某个字符串 |
endsWith() | 判断是否以指定的字符串结尾 |
startsWith() | 判断是否以指定的字符串开头 |
indexOf() | 获取字符/字符串第一次出现的索引 |
lastIndexOf() | 获取字符/字符串最后一次出现的索引 |
replace() | 把旧的内容用新的内容替换 |
substring(int i,int j) | 截取字符串的一部分, 从i 开始到j 结束,包含头不包含尾 |
substring(int i) | 截取字符串的一部分, 从i 开始截取到最后 |
toCharArray() | 把字符串变成字符数组 |
getBytes() | 把字符串变成字节数组 |
toLowerCase() | 把字符串中的字母转成小写 |
toUpperCase() | 把字符串中的字母转成大写 |
trim() | 去掉字符串两端的空白 |
split() | 按照指定的字符串切割 |
equalsIgnoreCase() | 忽略大小写判断两个字符串是否相同 |
6、引用类型使用小结
类作为方法参数和返回值
抽象类最为方法参数和返回值 抽象类作为方法参数实际传入的是抽象类的子类对象 抽象类作为返回值类型实际返回的是抽象类的子类对象
接口作为方法参数和返回值 接口作为参数实际传入的是接口的子类对象 接口作为返回实际返回的是接口的子类对象
类、抽象类、接口作为成员变量