JavaSE学习笔记Day08

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();

你可能感兴趣的:(java)