1.String

String类定义的变量可以用于存储字符串,同时String类提供了很多操作字符串的功能,我们可以直接使用。

①String简单概述

  • java.lang.String类代表字符串,String类定义的变量可以用于指定字符串对象,然后操作该字符串。
  • Java程序中的所有字符串文字(例如 “abc”)都为此类的对象。
  • String其实常被称为不可变字符串类型,它的对象在创建后不能更改。
  • String变量每次的修改其实都是产生并指向了新的字符串对象。
  • 原来的字符串对象都是没有改变的,所以称不可变字符串。

    ②创建字符串的两种方式

  • 方式一:直接使用 “ “ 定义。(推荐)

  • 方式二:通过String类的构造器创建对象。 | 构造器 | 说明 | | —- | —- | | public String() | 创建一个空白字符串对象,不含有任何内容 | | public String (String original) | 根据传入的字符串内容,来创建字符串对象 | | public String(char[ ] chs) | 根据字符数组的内容,来创建字符串对象 | | public String(byte[ ] chs) | 根据字节数组的内容,来创建字符串对象 |
  1. 以” “方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会在其中存储一份。
  2. 通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中。

    ③String类常用API-字符串内容比较

  • 字符串内容比较不适用“==”。
  • 推荐使用String类提供的“equals”比较:只关心内容一样即可。 | 方法名 | 说明 | | —- | —- | | public Boolean equals(Object anObject) | 将此字符串与指定对象进行比较,只关心字符内容是否一致 | | public Boolean equalsIgnoreCase(String anotherString) | 将此字符串与指定对象进行比较 ,忽略大小写比较字符串。只关心字符内容是否一致。 |

④String常用API

  • index(从0开始) | 方法名 | 说明 | | —- | —- | | public int length() | 返回此字符串的长度 | | public char charAt(int index) | 获取某个索引位置处的字符 | | public char[ ] toCharArray(): | 将当前字符串转换成字符数组返回 | | public String substring(int beginIndex , int endIndex) | 根据开始和结束索引进行截取,得到新的字符串(包前不包后) | | public String substring( int beginIndex) | 从传入的索引处截取,截取到末尾,得到新的字符串 | | public String replace(CharSequence target , CharSequence replacement) | 使用新值,将字符串中的旧值替换,得到新的字符串 | | public boolean contains(CharSequence s) | 当且仅当此字符串包含指定的字符值序列时,才返回 true。 | | public boolean startsWith(String prefix) | 测试此字符串是否以指定的前缀开头。 | | public String[ ] split(String regex) | 根据传入的规则切割字符串,得到字符串数组返回 |

*+

2ArrayList

①ArrayList集合概述

  • ArrarList代表的是集合类,集合是一种容器,与数组类似,不同的是集合的大小是不固定的。
  • 通过创建ArrayList的对象表示得到一个集合容器,同时ArrayList提供了比数组更好用,更丰富的API(功能)给程序员使用。
  1. 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。
  2. 集合非常适合做元素个数不确定,且要进行增删操作的业务场景。
  3. 集合提供了许多丰富、好用的功能,而数组的功能很单一。

    ②ArrayList集合使用

  • ArrayList是集合的一种,它支持索引。

**ArrayList list = new ArrayList();//创建一个集合**
**public Boolean add(E e) | list.add(添加内容);**
**public void add(int index,E element) | list.add(添加位置(索引), 添加内容);**

③ArrayList泛型概述

  • ArrayList:其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型。(E:数据类型)
  • 集合中只能储存引用数据类型,不支持基本数据类型。

**ArrayList<数据类型> list = new ArrayList<>();**

④ArrayList常用API、遍历

方法名称 说明
public E get(int index) 返回指定索引处的元素
public int size() 返回集合中元素的个数
public E remove(int index) 删除指定索引处的元素,返回被删除的元素
public boolean remove(Object o) 删除指定元素,返回删除是否成功
public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
  • 从集合后面遍历开始删除,可以避免漏掉元素。

    3.Object

  • Object类的方法是一切子类对象都可以直接使用的,所以我们要学习Object类的方法。

  • 一个类要么默认继承了Object类,要么间接继承了Object类,Object类是Java中的祖宗类。 | 方法名 | 说明 | | —- | —- | | public String toString() | 默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址 | | public boolean equals(Object o) | 默认是比较当前对象与另一个对象的地址是否相同,相同返回true,不同返回false |

①toString

父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息。

②equals

  • 默认是与另一个对象比较地址是否一样
  • 让子类重写,以便比较2个子类对象的内容是否相同。

    ③Objects

  • Objects是一个工具类,提供了一些方法去完成一些功能。

  • 使用Objects的equals方法在进行对象的比较会更安全。

    4.StringBuilder

  • StringBuilder是一个可变的字符串类,我们可以把它看成是一个对象容器。

  • 作用:提高字符串的操作效率,如拼接、修改等。

StringBuilder构造器

名称 说明
public StringBuilder() 创建一个空白的可变的字符串对象,不包含任何内容
public StringBuilder(String str) 创建一个指定字符串内容的可变字符串对象

StringBuilder方法

方法名称 说明
public StringBuilder append(任意类型) 添加数据并返回StringBuilder对象本身
public StringBuilder reverse() 将对象的内容反转
public int length() 返回对象内容长度
public String toString() 通过toString()就可以实现把StringBuilder转换为String
  1. String :内容是不可变的、拼接字符串性能差。
  2. StringBuilder:内容是可变的、拼接字符串性能好、代码优雅。
  3. 定义字符串使用String
  4. 拼接、修改等操作字符串使用StringBuilder

    5.Math

  • 包含执行基本数字运算的方法,Math类没有提供公开的构造器。
  • 如何使用类中的成员呢?看类的成员是否都是静态的,如果是,通过类名就可以直接调用 | 方法名 | 说明 | | —- | —- | | public static int abs(int a) | 获取参数绝对值 | | public static double ceil(double a) | 向上取整 | | public static double floor(double a) | 向下取整 | | public static int round(float a) | 四舍五入 | | public static int max(int a,int b) | 获取两个int值中的较大值 | | public static double pow(double a,double b) | 返回a的b次幂的值 | | public static double random() | 返回值为double的随机值,范围[0.0,1.0) |

6.System

  • System也是一个工具类,代表了当前系统,提供了一些与系统相关的方法。 | 方法名 | 说明 | | —- | —- | | public static void exit(int status) | 终止当前运行的 Java 虚拟机,非零表示异常终止 | | public static long currentTimeMillis() | 返回当前系统的时间毫秒值形式 | | public static void arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数) | 数组拷贝 |

7.BigDecimal

  • 用于解决浮点型运算精度失真的问题

创建对象BigDecimal封装浮点型数据(最好的方式是调用方法)
**public static BigDecimal valueOf(double val):包装浮点数成为BigDecimal对象。**

方法名 说明
public BigDecimal add(BigDecimal b) 加法
public BigDecimal subtract(BigDecimal b) 减法
public BigDecimal multiply(BigDecimal b) 乘法
public BigDecimal divide(BigDecimal b) 除法
public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) 除法

8.Arrays

方法名 说明
public static String toString(类型[] a) 返回数组的内容(字符串形式)
public static void sort(类型[] a) 对数组进行默认升序排序
public static void sort(类型[] a, Comparator<? super T> c) 使用比较器对象自定义排序
public static int binarySearch(int[] a, int key) 二分搜索数组中的数据,存在返回索引,不存在返回-1

自定义排序规则
设置Comparator接口对应的比较器对象,来定制比较规则。

  1. 如果认为左边数据 大于 右边数据 返回正整数
  2. 如果认为左边数据 小于 右边数据 返回负整数
  3. 如果认为左边数据 等于 右边数据 返回0