字符串
- 一、API
 - 二、字符串
 - 2.1字符串的构造方法
 - 2.2 字符串构造时的内存
 - 2.2.1 直接赋值时的内存模型
 - 2.2.2 由new创建时的内存模型
 
- 2.3 字符串的比较
 - 三、StringBuilder
 
一、API

 目前已学过的两个API:Random和Scanner。
 对记不清的API可以去JDK-API帮助文档进行查找。
二、字符串
- String是Java定义好的一个类。定义在java.lang包中,所以使用的时候不需要导包。
 - Java程序中的所有字符串文字(例如“abcdefg"),都被实为此类的对象。
 - 3.字符串不可变,它们的值在创建后不能被更改。
 
2.1字符串的构造方法

 
 
2.2 字符串构造时的内存
2.2.1 直接赋值时的内存模型


2.2.2 由new创建时的内存模型
每new一次都要在堆内存创建一个新的小空间。
 
2.3 字符串的比较

 但是当两个字符串,一个是直接赋值的,另一个是用new创建的,还是否能进行字符串比较?这时进行的比较则是对地址值的比较,得到false的结果。
 如果想进行值的比较:
 
三、StringBuilder
StringBuilder可以看作一个创建后内容可变化的容器,其作用是提高字符串的效率。
 
 
 因为StringBuilder是Java已经写好的类,java在底层对他做了一些特殊处理。因此创建完就打印,对象不是地址值而是属性值。
练习:
public class StringBuilderTest2 {
    //需求:定义一个方法
    //把int数组中的数据按照指定的格式拼接成一个字符串返回。
    //调用该方法,并在控制台输出结果。
    // 例如:数组为int[] arr = {1,2,3};
    //执行方法后的输出结果为:[1,2,3]
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        System.out.println(arrToString(arr));
    }
    public static String arrToString(int[] arr) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if (i != arr.length - 1) {
                sb.append(arr[i]).append(", ");
            } else {
                sb.append(arr[i]);
            }
        }
        return sb.append("]").toString();
    }
}
                

















