第三章-字符串#yyds干货盘点#

追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述第三章-字符串#yyds干货盘点#相关的知识,希望能为你提供帮助。
1 字符串 1.1 API 1.1.1 API概述
==API==(==A==pplication ==P==rogramming ==I==nterface): 应用程序编程接口

  • java API: 指的就是JDK中提供的各种功能的Java类
    这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,
    只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用
1.2 String 1.2.1 String概述
String类在java.lang包下,所以使用的时候不需要导包
==String==类代表==字符串==,Java程序中的所有字符串文字(例如" abc" )都被实现为此类的实例
也就是说,==Java程序中所有的双引号字符串,都是String类的对象==
字符串的特点
  • 字符串不可变,它们的值在创建后不能被更改
  • 虽然String 的值是不可变的,但是它们可以被共享
  • 字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[])
    ==JDK8及以前是字符数组,JDK9及以后是字节数组==
1.2.2 String构造方法
方法名 说明
public String() 创建一个空白字符串对象,不含有任何内容
public String(char[] chs) 根据字符数组的内容,来创建字符串对象
public String(byte[] bys) 根据字节数组的内容,来创建字符串对象
String s = " abc" ; 直接赋值的方式创建字符串对象,内容就是abc
1.2.3 String对象的特点
  1. 通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同
char[] chs = {a, b, c}; String s1 = new String(chs); String s2 = new String(chs);

上面的代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的
  1. 以" " 方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String 对象,并在字符串池中维护
String s3 = "abc"; String s4 = "abc";

在上面的代码中,针对第一行代码,JVM会建立一个String对象放在字符串池中,并给s3参考;
第二行则让s4直接参考字符串池中的String对象,也就是说它们本质上是同一个对象
1.2.4 字符串的比较
  1. 使用 ===\\=== 做比较
    • 基本类型: 比较的是==数据值==是否相同
    • 引用类型: 比较的是==地址值==是否相同
字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫: ==equals()==
  • public boolean ==equals(Object anObject)==: 将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数直接传递一个字符串
1.3 StringBuilder 1.3.1 StringBuilder概述
StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器
这里的可变指的是StringBuilder对象中的内容是可变的
  • String和StringBuilder的区别:
    • String: 内容是不可变的
    • StringBuilder: 内容是可变的
1.3.2 StringBuilder构造方法
方法名 说明
public StringBuilder() 创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str) 根据字符串的内容,来创建可变字符串对象
1.3.3 StringBuilder的添加和反转方法
方法名 说明
public StringBuilder append(任意类型) 添加数据,并返回对象本身
public StringBuilder reverse() 返回相反的字符序列
1.3.4 StringBuilder和String相互转换
  1. StringBuilder转换为String
    public String ==toString()==: 通过toString()就可以实现把StringBuilder转换为String
  2. String转换为StringBuilder
    public ==StringBuilder(String s)==: 通过构造方法就可以实现把String转换为StringBuilder
2 集合基础 2.1 集合概述集合类的特点:提供一个存储空间可变的存储模型,存储的数据容量可以发生改变。
集合类有很多,先学习==ArrayList==
ArrayList< E> :
  • 可调整大小的数组实现
  • < E> : 是一种特殊的数据类型,泛型。
【第三章-字符串#yyds干货盘点#】怎么用?
  • 在出现E的地方我们使用引用数据类型替换即可。
2.2 ArrayList构造方法和添加方法
方法名 说明
public ArrayList 创建一个空的集合对象
public boolean add(E e) 将指定的元素追加到此集合的末尾
public void add(int index, E element) 在此集合中的指定位置插入指定的元素
2.3 ArrayList集合常用方法
方法名 说明
public boolean remove(Object o) 删除指定元素,返回是否删除成功
public E remove(int index) 删除指定索引处的元素,返回被删除的元素
public E set(int index, E element) 修改指定索引处的元素,返回被修改的元素
public E get(int index) 返回指定索引处的元素
public int size() 返回集合中元素的个数

    推荐阅读