1 BigInteger类
1.1 概述
- 概述 : java.math.BigInteger类是一个引用数据类型 , 可以用于计算一些大的整数 , 当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。
1.2 构造方法
- 构造方法 : 可以将整数的字符串 . 转成BigInteger类型的对象
1.3 成员方法
import java.math.BigInteger; /* 构造方法 : BigInteger(String value) 可以将整数的字符串,转换为BigInteger对象 成员方法 : public BigInteger add (BigInteger value) 超大整数加法运算 public BigInteger subtract (BigInteger value) 超大整数减法运算 public BigInteger multiply (BigInteger value) 超大整数乘法运算 public BigInteger divide (BigInteger value) 超大整数除法运算,除不尽取整数部分 */ public class BigIntegerDemo { public static void main(String[] args) { // 获取大整数对象 BigInteger bigInteger1 = new BigInteger("2147483648"); // 获取大整数对象 BigInteger bigInteger2 = new BigInteger("2"); // public BigInteger add (BigInteger value) 超大整数加法运算 BigInteger add = bigInteger1.add(bigInteger2); System.out.println(add); System.out.println("============="); // public BigInteger subtract (BigInteger value) 超大整数减法运算 BigInteger subtract = bigInteger1.subtract(bigInteger2); System.out.println(subtract); System.out.println("============="); // public BigInteger multiply (BigInteger value) 超大整数乘法运算 BigInteger multiply = bigInteger1.multiply(bigInteger2); System.out.println(multiply); System.out.println("============="); // public BigInteger divide (BigInteger value) 超大整数除法运算,除不尽取整数部分 BigInteger divide = bigInteger1.divide(bigInteger2); System.out.println(divide); } }
2 BigDecimal类
2.1 概述
- 概述 : java.math.BigDecimal可以对大浮点数进行运算,保证运算的准确性。float,double 他们在存储及运算的时候,会导致数据精度的丢失。如果要保证运算的准确性,就需要使用BigDecimal。
2.2 构造方法
- 构造方法 :
public BigDecimal(String val) : 将 BigDecimal 的字符串表示形式转换为 BigDecimal
2.3 成员方法
- 成员方法 :
import java.math.BigDecimal; /* 构造方法 : public BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal 成员方法 : public BigDecimal add(BigDecimal value) 加法运算 public BigDecimal subtract(BigDecimal value) 减法运算 public BigDecimal multiply(BigDecimal value) 乘法运算 public BigDecimal divide(BigDecimal value) 除法运算(除不尽会有异常) public BigDecimal divide(BigDecimal value, int scale, RoundingMode roundingMode) 除法运算(除不尽,使用该方法) 参数说明: scale 精确位数, roundingMode取舍模式 BigDecimal.ROUND_HALF_UP 四舍五入 BigDecimal.ROUND_FLOOR 去尾法 BigDecimal.ROUND_UP 进一法 */ public class BigDecimalDemo { public static void main(String[] args) { BigDecimal bigDecimal1 = new BigDecimal("0.1"); BigDecimal bigDecimal2 = new BigDecimal("0.2"); // public BigDecimal add(BigDecimal value) 加法运算 BigDecimal add = bigDecimal1.add(bigDecimal2); System.out.println(add); System.out.println("================="); // public BigDecimal subtract(BigDecimal value) 减法运算 BigDecimal subtract = bigDecimal1.subtract(bigDecimal2); System.out.println(subtract); System.out.println("================="); // public BigDecimal multiply(BigDecimal value) 乘法运算 BigDecimal multiply = bigDecimal1.multiply(bigDecimal2); System.out.println(multiply); System.out.println("================="); // public BigDecimal divide(BigDecimal value) 除法运算(除不尽会有异常) // BigDecimal divide = bigDecimal1.divide(bigDecimal2); // System.out.println(divide); /* public BigDecimal divide(BigDecimal divisor, int roundingMode) 除法运算(除不尽,使用该方法) 参数说明: scale 精确位数, roundingMode : 取舍模式 BigDecimal.ROUND_HALF_UP 四舍五入 BigDecimal.ROUND_FLOOR 去尾法 BigDecimal.ROUND_UP 进一法 */ // BigDecimal divide = bigDecimal1.divide(bigDecimal2, 3, BigDecimal.ROUND_HALF_UP); // BigDecimal divide = bigDecimal1.divide(bigDecimal2, 3, BigDecimal.ROUND_FLOOR); // BigDecimal divide = bigDecimal1.divide(bigDecimal2, 3, BigDecimal.ROUND_UP); // System.out.println(divide); } }
3 Arrays类
3.1 概述
- 概述 : java.util.Arrays是数组的工具类,里面有很多静态的方法用来对数组进行操作(如排序和搜索),还包含一个静态工厂,可以将数组转换为List集合(后面会讲到集合知识
3.2 构造方法
- 构造方法 : private Arrays(){}
import java.util.Arrays; import java.util.Random; /* 1 随机生成10个[0,100]之间的整数,放到整数数组中,按照从小到大的顺序排序并打印元素内容。 */ public class ArraysDemo { public static void main(String[] args) { // 创建数组 int[] arr = new int[10]; // 创建随机数对象 Random r = new Random(); // 采用随机数给数组的每一个元素赋值 for (int i = 0; i < arr.length; i++) { arr[i] = r.nextInt(101); } // 对数组进行排序 Arrays.sort(arr); // 把数组转成指定格式的字符串 System.out.println(Arrays.toString(arr)); } }
4 包装类
4.1 概述
- 概述 :
Java中基本数据类型对应的引用数据类型
4.2 包装类的作用
- 包装类的作用 :
基本数据类型 , 没有变量 , 没有方法 , 包装类就是让基本数据类型拥有变量和属性 , 实现对象化交互
基本数据类型和字符串之间的转换
4.3 基本数据类型和包装类对应
- 基本数据类型和包装类的对应关系
4.4 自动装箱和自动拆箱
- 自动转型和自动拆箱
- 自动装箱和拆箱是JDK1.5开始的
- 自动装箱 : 基本数据类型自动转成对应的包装类类型
- 自动拆箱 : 包装类类型自动转成对应的基本数据类型
Integer i1 = 10; int i2 = i1;
4.5 基本数据类型和字符串之间的转换
- 使用包装类, 对基本数据类型和字符串之间的转换
- 在开发过程中数据在不同平台之间传输时都以字符串形式存在的,有些数据表示的是数值含义,如果要用于计算我们就需要将其转换基本数据类型.
- 基本数据类型–> String
直接在数值后加一个空字符串
通过String类静态方法valueOf()
String --> 基本数据类型
注意事项 :
- 包装类对象的初始值为null(是一个对象)
- Java中除了float和double的其他基本数据类型,都有常量池
整数类型:[-128,127]值在常量池
字符类型:[0,127]对应的字符在常量池
布尔类型:true,false在常量池
- 在常量池中的数据 , 会进行共享使用 , 不在常量池中的数据会创建一个新的对象