第三章-字符串#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对象的特点
- 通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同
char[] chs = {a, b, c};
String s1 = new String(chs);
String s2 = new String(chs);
上面的代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的
- 以""方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String 对象,并在字符串池中维护
String s3 = "abc";
String s4 = "abc";
在上面的代码中,针对第一行代码,JVM会建立一个String对象放在字符串池中,并给s3参考;
第二行则让s4直接参考字符串池中的String对象,也就是说它们本质上是同一个对象
1.2.4 字符串的比较
- 使用 ===\\=== 做比较
- 基本类型: 比较的是==数据值==是否相同
- 引用类型: 比较的是==地址值==是否相同
字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫: ==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相互转换
-
StringBuilder转换为String
public String ==toString()==: 通过toString()就可以实现把StringBuilder转换为String
- 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