JavaSEDay08 总结笔记
01-API介绍
API : 应用程序编程接口
- 简单理解 : API就是别人写好的类
- 目标 : 学习别人写好的类, 怎么用, 有哪些方法是我们常用的.
注意 :
- API 并不是 Java 独有的东西
- API 帮助文档的使用 :
1. 在索引的位置搜索自己要查看的类
2. 看包
目的: 查看是否是 java.lang(核心包)
是 : 使用的时候, 不需要import导包代码
不是 : 使用的时候, 必须编写import导包代码
3. 看这个类的介绍
目的: 明确这个类的作用
4. 看这个类的构造方法
目的: 能够根据构造方法, 创建出该类的对象
5. 看这个类的成员方法
1) 方法名
2) 参数
3) 返回值
4) 介绍
02-String类的特点
1. Java程序中, 所有双引号字符串, 都是String类的对象.
2. 字符串一旦被创建, 就 [不可改变]
内容不可改变, 要想改变, 只能用新的对象做替换.
String s = "abc";
s = "def"; // 这里只是让s变量, 记录了新的字符串对象
// 原来 "abc", 内容根本没有改变
System.out.println(s); // def
3. 字符串虽然不可改变, 但是可以被共享
字符串常量池:
当使用双引号创建字符串对象的时候.
会检查该数据在常量池中是否存在
不存在: 创建新的
存在: 复用
4. 字符串和字符数组之间允许相互转换
char[] chs = {'a','b','c'}; -------> String s = new String(chs);
String s = "itheima"; ------> char[] chs = s.toCharArray();
03-String类常见构造方法
1. public String() : 创建一个空白的字符串对象
2. public String(char[] chs) : 根据传入的字符数组, 来创建字符串对象
3. public String(String str) : 根据传入的字符串, 来创建字符串对象
-> String s = new String("abc");
-> 面试题: 这一句代码, 实际上创建了2个对象
1. new出来
2. "abc" 在常量池中
-----------------------------------------------------------
今后创建字符串对象的方式, 一般来说, 都是双引号直接创建
String s = "abc";
04-创建String对象的两种方式
- 双引号直接创建 : 字符串常量池中维护
- 构造方法new出来 : 堆内存中, 有自己独立的内存空间.
package com.itheima.test;
public class StringTest1 {
/*
看程序说结果
*/
public static void main(String[] args) {
String s1 = "abc";
String s2 = "a" + "b" + "c";
System.out.println(s1 == s2);
}
private static void method3() {
String s1 = "abc";
String s2 = "ab";
String s3 = s2 + "c";
System.out.println(s1 == s3);
}
private static void method2() {
String s1 = "abc";
String s2 = new String("abc");
System.out.println(s1 == s2);
}
private static void method1() {
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2);
}
}
05-String类的常用成员方法
- String类用于比较的方法 :
public boolean equals(String anObject) : 字符串之间做内容的比较, 返回true, false
public boolean equalsIgnoreCase(String anotherString) : 字符串之间做内容的比较, 返回true, false (忽略大小写)
- String字符串转换为字符数组的方法 :
public char[] toCharArray() : 将字符串拆分为字符数组并返回.
- String类用于遍历方法 :
public char charAt(int index) : 根据传入的索引, 获取对应的字符
public int length() 返回此字符串的长度
- String类用于截取的方法 :
public String substring(int beginIndex) : 根据传入的索引截取字符串, 截取到字符串的末尾
public String substring(int beginIndex, int endIndex) : 根据传入的开始和结束索引, 截取字符串
(包含头, 不包含尾)
注意: 返回新的字符串, 千万别忘记接收 !!!
- String类用于替换的方法 :
public String replace(String target, String replacement) :
参数1: 原值
参数2: 新值
- String类用于切割的方法 :
public String[] split(String regex) : 根据传入的字符串, 作为规则, 切割当前字符串, 返回字符串数组.
建议: 今后在指定规则的时候, 尽量以 \\ 为开头
06-StringBuilder介绍
目标 : 提高字符串的操作效率
- 建议 : 如果字符串的拼接操作 , 超过了5次, 建议换成StringBuilder来做
介绍 :
- 可变的字符序列
- StringBuilder是字符串缓冲区 (容器) , 容器中可以添加任意数据类型, 但是数据只要进入容器, 全部变成字符串
07-StringBuilder常用构造方法
public StringBuilder() : 创建一个空白的字符串缓冲区(容器), 其初始容量为16个字符.
public StringBuilder(String s) : 创建一个字符串缓冲区(容器), 容器在被创建好, 就带有参数的数据.
08-StringBuilder常用成员方法
public StringBuilder append(任意类型) : 向缓冲区中添加数据, 返回的是对象自己本身
StringBuilder sb = new StringBuilder();
// 链式编程: 一个方法调用结束后, 如果返回的是对象, 就可以继续调用方法.
sb.append("红色").append("蓝色");
public StringBuilder reverse() : 将缓冲区中的数据, 进行反转, 返回的是对象自己本身
public int length() : 返回缓冲区的长度
public String toString() : 将缓冲区中的数据, 转换为字符串类型并返回.
String - StringBuilder转换
1. String ----> StringBuilder
使用场景: 我手里是String, 我要调用的方法, String没有, 但是StringBuilder有, 转换再调用.
A : 直接将String字符串, 传入StringBuilder的构造方法中
String s = "abc";
StringBuilder sb = new StringBuilder(s);
B : 使用StringBuilder的空参构造方法, 随后append进行添加
String s = "abc";
StringBuilder sb = new StringBuilder();
sb.append(s);
2. StringBuilder ----> String
使用场景: 我手里是StringBuilder, 但是要调用的方法, StringBuilder没有, String有, 转换再调用.
A: 调用StringBuilder的toString方法.
StringBuilder sb = new StringBuilder("abc");
String result = sb.toString();