01-API介绍
-
介绍 : API 应用程序编程接口
-
简单记 : 就是别人已经写好的代码
-
-
学习别人已经写好的代码, 使用的是 API 帮助文档
-
帮助文档的使用流程 :
API帮助文档的使用流程 : 1. 在索引位置搜索自己要查看的类 问题: 我怎么知道该搜哪一个类? 回答: 常用的类 2. 看包 目的: 看使用的类, 是否在java.lang包 (核心包) 在 : 不需要编写import导包代码 不在 : 必须编写import导包代码 3. 看该类的介绍 目的: 知道这个类能够解决什么问题. 4. 看该类的构造方法 目的: 能够根据构造方法, 将对象创建出来 5. 看该类的成员方法(方法摘要) 1. 方法名 2. 参数 3. 返回值 4. 介绍 ---------------------------------------------------------------------------- 目标: 能够根据帮助文档的使用流程, 查看类和方法. ----------------------------------------------------------------------------
02-String类的特点
1. Java程序中, 所有双引号字符串, 都是String这个类的对象
- String类, 多了一种创建对象的方式
2. String字符串, 一旦被创建, 就[不可改变]
- 不可改变: 字符串内容不能改变, 要想做修改, 只能使用新的对象做替换.
String s = "abc";
s = "def";
System.out.println(s); // def
3. 字符串虽然不可改变, 但是其内容可以被共享
- 字符串常量池: 当使用双引号创建字符串对象的时候, 会检查常量池中是否存在该数据
没有 : 创建
有 : 复用
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2); // true
4. 字符串和字符数组之间允许相互转换
char[] chs = {'a','b','c'}; <-----------> String s = "abc";
1. 字符串数组转换字符串
String s = new String(chs);
2. 字符串拆分为字符数组
char[] chs = s.toCharArray();
03-String类常见的构造方法
1. public String() : 创建一个空白的字符串对象 2. public String(char[] chs) : 根据传入的字符数组, 来创建字符串对象 3. public String(String s) : 根据传入的字符串, 来创建字符串对象 细节: 打印字符串对象, 为什么没有地址值? - TODO: (继承, 方法重写, Object, toString()) - 请先暂时记住, 打印字符串对象名, 直接展示内容, 并非地址值. 想法: 这三种创建方式, 都没有双引号直接创建, 来的方便 String s = "abc";
3.1 创建字符串对象, 两种方式的区别
-
双引号直接创建 : 在字符串常量池中维护
-
通过构造方法 new 出来 : 在堆内存中有自己独立的内存地址
3.2 字符串面试题
public class StringTest1 {
/*
String常见面试题 (看程序, 说结果, 并说明原因)
*/
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);
}
}
04-String类成员方法
-
字符串中用于比较的方法 :
public boolean equals(String anObject) : 字符串之间进行内容的比较, 返回true, false public boolean equalsIgnoreCase(String anotherString) : 字符串之间进行内容的比较, 返回true, false (不考虑大小写)
-
字符串转字符数组的方法 :
public char[] toCharArray() : 将此字符串转换为一个新的字符数组
-
字符串用于遍历方法 :
public char charAt(int index) : 根据索引找字符 public int length() : 返回字符串的长度(字符的个数)
-
字符串用于截取方法 :
public String substring(int beginIndex) : 根据传入的索引, 截取字符串, 截取到字符串的末尾, 返回新的字符串 public String substring(int beginIndex, int endIndex) : 根据传入的开始和结束索引, 截取字符串 (包含头, 不包含尾), 返回新的字符串
-
字符串用于替换方法 :
public String replace(String target, String replacement) : 参数1: 旧值 参数2: 新值
-
字符串用于切割的方法 :
public String[] split(String regex) : 根据传入的字符串作为规则, 切割当前字符串, 并返回字符串数组. 注意: 指定切割规则的时候, 如果没有按照预想的切割出数据 可以在规则前面, 加入 \\
05-StringBuilder的介绍
-
问题 : 为什么要学习StringBuilder ?
-
回答 : 因为StringBuilder可以大幅度提升字符串的操作效率
-
场景 : 如果今后涉及到字符串的拼接操作, 拼接次数过于频繁, 请一定要使用StringBuilder
-
-
介绍 :
-
StringBuilder是可变的字符序列
-
StringBuilder又叫做字符串缓冲区 (容器), 这个容器可以存储任意数据类型
-
但是数据只要进入这个容器, 全部变成字符串.
-
-
06-StringBuilder的常用构造方法
public StringBuilder() : 创建一个空白的字符串缓冲区, 其初始容量为16个字符 public StringBuilder(String str) : 创建一个字符串缓冲区 (容器), 容器在被创建出来的时候, 就会带有参数数据.
07-StringBuilder的常用成员方法
public StringBuilder append(任意类型) : 向缓冲区中, 添加数据, 返回自己这个对象本身 链式编程: 如果一个方法调用结束, 返回的结果是对象, 就可以继续向下调用方法. sb.append("红色").append("绿色").append("蓝色"); public StringBuilder reverse() : 将缓冲区中的内容进行反转, 返回自己这个对象本身 public int length() : 返回字符的个数 public String toString() : 将缓冲区中的内容转换为字符串, 并返回
08-String和StringBuilder的转换
1. String ---> StringBuilder 场景: 手里的数据是一个String, 但是我要调用的方法, String没有, StringBuilder有, 转换后再调用 !! 1). 使用StringBuilder的空参构造方法, 创建对象, 调用append方法完成添加 String s = "abc"; StringBuilder sb = new StringBuilder(); sb.append(s); 2). 使用StringBuilder的带参构造方法 String s = "abc"; StringBuilder sb = new StringBuilder(s); 2. StringBuilder ---> String 场景: 手里的数据是一个StringBuilder, 但是我要调用的方法, StringBuilder没有, String有, 转换后再调用 !! 1). 调用toString方法 StringBuilder sb = new StringBuilder(); String s = sb.toString();