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

Posted toplabs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三章-字符串#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>: 是一种特殊的数据类型,泛型。

怎么用?

  • 在出现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() 返回集合中元素的个数

以上是关于第三章-字符串#yyds干货盘点#的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# Java | 关于synchronized相关理解

#yyds干货盘点# 前端歌谣的刷题之路-第三十二题-完全等同

#yyds干货盘点# ElasticSearch第三弹之存储原理

#yyds干货盘点#马拉车算法解最长回文子串!Manacher

#yyds干货盘点#“愚公移山”的方法解atoi,自以为巧妙!

#yyds干货盘点#JS两个大数相加