字符串概述

字符串

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

一、API

字符串概述_第1张图片
目前已学过的两个API:RandomScanner
对记不清的API可以去JDK-API帮助文档进行查找。

二、字符串

  1. String是Java定义好的一个类。定义在java.lang包中,所以使用的时候不需要导包。
  2. Java程序中的所有字符串文字(例如“abcdefg"),都被实为此类的对象。
  3. 3.字符串不可变,它们的值在创建后不能被更改。

2.1字符串的构造方法

字符串概述_第2张图片
字符串概述_第3张图片
字符串概述_第4张图片

2.2 字符串构造时的内存

2.2.1 直接赋值时的内存模型

字符串概述_第5张图片

字符串概述_第6张图片

2.2.2 由new创建时的内存模型

每new一次都要在堆内存创建一个新的小空间。
字符串概述_第7张图片

2.3 字符串的比较

字符串概述_第8张图片
但是当两个字符串,一个是直接赋值的,另一个是用new创建的,还是否能进行字符串比较?这时进行的比较则是对地址值的比较,得到false的结果。
如果想进行值的比较:
字符串概述_第9张图片

三、StringBuilder

StringBuilder可以看作一个创建后内容可变化的容器,其作用是提高字符串的效率。
字符串概述_第10张图片
字符串概述_第11张图片
因为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();
    }
}

你可能感兴趣的:(JAVA学习记录,java,开发语言)