Java基础(四)
内容
- BigInteger类
- BigDecimal类
- Arrays类
- 包装类
- String类的常用方法
- 正则表达式
- Collection集合
1.1 BigInteger类概述
- 概述 : java.math.BigInteger类是一个引用数据类型 , 可以用于计算一些大的整数 , 当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。
1.2 构造方法
- 构造方法 : 可以将整数的字符串 . 转成BigInteger类型的对象
1.3 成员方法
-
方法声明 描述 public BigInteger add (BigInteger value) 超大整数加法运算 public BigInteger subtract (BigInteger value) 超大整数减法运算 public BigInteger multiply (BigInteger value) 超大整数乘法运算 public BigInteger divide (BigInteger value) 超大整数除法运算,除不尽取整数部分
2.1 BigDecimal类概述
- 概述 : java.math.BigDecimal可以对大浮点数进行运算,保证运算的准确性。float,double 他们在存储及运算的时候,会导致数据精度的丢失。如果要保证运算的准确性,就需要使用BigDecimal。
2.2 构造方法
- 构造方法 :
- public BigDecimal(String val) : 将 BigDecimal 的字符串表示形式转换为 BigDecimal
2.3 成员方法
-
成员方法 :
-
方法声明 描述 public BigDecimal add(BigDecimal value) 加法运算 public BigDecimal subtract(BigDecimal value) 减法运算 public BigDecimal multiply(BigDecimal value) 乘法运算 public BigDecimal divide(BigDecimal value) 除法运算(除不尽会有异常) public BigDecimal divide(BigDecimal divisor, int roundingMode) 除法运算(除不尽,使用该方法)参数说明:scale 精确位数,roundingMode取舍模式 BigDecimal.ROUND_HALF_UP 四舍五入 BigDecimal.ROUND_FLOOR 去尾法 BigDecimal.ROUND_UP 进一法
-
3.1 Arrays类概述
- 概述 : java.util.Arrays是数组的工具类,里面有很多静态的方法用来对数组进行操作(如排序和搜索),还包含一个静态工厂,可以将数组转换为List集合(后面会讲到集合知识
3.2 构造方法
-
构造方法 : private Arrays(){}
-
public static void sort(int[] a) 按照数字顺序排列指定的数组 public static String toString(int[] a) 返回指定数组的内容的字符串表示形式
4.1 包装类概述
-
概述 :
- Java中基本数据类型对应的引用数据类型
4.2 包装类的作用
-
包装类的作用 :
- 基本数据类型 , 没有变量 , 没有方法 , 包装类就是让基本数据类型拥有变量和属性 , 实现对象化交互
- 基本数据类型和字符串之间的转换
4.3 基本数据类型和包装类对应
-
基本数据类型和包装类的对应关系
基本数据类型 包装类型 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean
4.4 自动装箱和自动拆箱
-
自动转型和自动拆箱
- 自动装箱和拆箱是JDK1.5开始的
- 自动装箱 : 基本数据类型自动转成对应的包装类类型
- 自动拆箱 : 包装类类型自动转成对应的基本数据类型
Integer i1 = 10; int i2 = i1;
4.5 基本数据类型和字符串之间的转换
-
使用包装类, 对基本数据类型和字符串之间的转换
-
在开发过程中数据在不同平台之间传输时都以字符串形式存在的,有些数据表示的是数值含义,如果要用于计算我们就需要将其转换基本数据类型.
-
基本数据类型--> String
- 直接在数值后加一个空字符串
- 通过String类静态方法valueOf()
-
String --> 基本数据类型
-
public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。 public static short parseShort(String s):将字符串参数转换为对应的short基本类型。 public static int parseInt(String s):将字符串参数转换为对应的int基本类型。 public static long parseLong(String s):将字符串参数转换为对应的long基本类型。 public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。 public static double parseDouble(String s):将字符串参数转换为对应的double基本类型。 public static boolean parseBoolean(String s):将字符串参数转换为对应的boolean基本类型。
-
-
-
注意事项 :
-
包装类对象的初始值为null(是一个对象)
-
Java中除了float和double的其他基本数据类型,都有常量池
- 整数类型:[-128,127]值在常量池
- 字符类型:[0,127]对应的字符在常量池
- 布尔类型:true,false在常量池
-
在常量池中的数据 , 会进行共享使用 , 不在常量池中的数据会创建一个新的对象
-
5.1 String类的常用方法
6.1 集合和数组的区别
-
长度区别
- 数组 : 长度固定
- 集合 : 长度可变
-
存储数据类型
- 数组 : 可以存储基本数据类型, 也可以存储引用数据类型
- 集合 : 只能存储引用数据类型 , 要想存储基本数据类型 , 需要存储对应的包装类类型
6.3 Collection集合常用的方法
- 在学习集合体系,一般先学习顶层接口。学习了顶层接口的方法,子类型继承而来的方法,就可以不用重复学习。
- public boolean add(E e): 把给定的对象添加到当前集合中 。
- public void clear() :清空集合中所有的元素。
- public boolean remove(E e): 把给定的对象在当前集合中删除。
- public boolean contains(Object obj): 判断当前集合中是否包含给定的对象。
- public boolean isEmpty(): 判断当前集合是否为空。
- public int size(): 返回集合中元素的个数。
- public Object[] toArray(): 把集合中的元素,存储到数组中
6.4 迭代器
-
概述 :
- 迭代器就是对Iterator的称呼 , 专门用来对Collection集合进行遍历使用的。学习迭代器的目的就是为了遍历集合
-
注意 :
- 只有继承/实现Iterable接口才具有迭代的能力
- Collection接口继承了Iterable接口所以 , Collection及其子类都具备迭代的能力
-
获取迭代器对象的方式
- 通过Collection集合对象调用Iterable接口中的iterator方法 , 就可以获取迭代器对象
-
Iterator(迭代器)中的方法
boolean hasNext() 如果迭代具有更多元素,则返回 true 。 E next() 返回迭代中的下一个元素。 default void remove() 从底层集合中删除此迭代器返回的最后一个元素(可选操作)。 -
迭代器的注意事项
- 当迭代器迭代元素完成后,不能继续next获取元素,否则会报:NoSuchElementException
- 当迭代器在使用的过程中,不能使用集合对象直接增删元素。会导致报错ConcurrentModificationException。如果要删除可以使用迭代器来删除
6.5 增强for循环
-
增强for循环(foreach),专门用来遍历集合或者数组,底层实现使用迭代器
-
定义格式 :
for(元素的类型 变量名 : 数组/单列集合 ){ 变量代表的就是集合或者数组的元素 }