字符串
- 一、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();
}
}