一、String类
1、String的特点
- String的值创建后是不可变的。
- String值不可变,但是可以被共享。
- 字符串效果是相当于字符数组(char[]),但是底层原理是字节数组(byte[])
字符串创建后是不可变的,因此,如果对字符串进行拼接,则会分配新的内存。
public class StringTest {
public static void main(String[] args) {
String s = "Hello";
s+="World";
System.out.println(s);
}
}
此例中,"Hello"、"World"和"HelloWorld"都指向不同的内存。
2、String构造方法
- public String()、public String(char[])、public String(byte[])三种构造方法
- String s = "abc"; 直接赋值的方式创建字符串对象;
使用构造方法,每次new都会申请一个内存地址,因此字符串对象的地址是不同的,而使用直接赋值的方法构造字符串对象,只要字符串内容完全相同,字符串对象的地址就是相同的。
3、字符串的比较
- String类型的对象是引用类型数据,存放在堆内存中。
- ==号作比较,基本类型比较的是数据值,而引用类型比较的是地址值。
- 字符串内容的比较要使用equals()方法: s1.equals(s2)
4、遍历字符串
- 获取字符串的每一个字符:public char charAt(int index)返回指定索引 index 处的字符,索引从0开始。
- 获取字符串的长度:使用length()方法,s1.length()
- 遍历通用格式:
for(int i=0;i<s.length();i++){
s.charAt(i);
}
二、StringBuilder类
- 创建的是一个可变的字符串类,解决了String类不可变导致的内存问题。
- StringBuilder构造方法:public StringBulider()和public StringBulider(String str)
- StringBulider的添加和反转方法:public StringBuilder append(任意类型)、Public StringBuilder reverse(),返回对象本身,不分配新的内存。
- String和StringBuilder互相转换:
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder s = new StringBuilder();
s.append("hello");
s.append(1000);
//StringBuilder转换为String使用toString()方法
s.toString();
//String转换为StringBulider需要使用Public StringBuilder(String str)构造方法
StringBuilder s2 = new StringBuilder(s);
}
}
三、ArrayList类
1、导包:import java.util.ArrayList;
2、数组的长度是不可变的,ArrayList提供一种存储空间可变的存储类型,存储数据的容量可以发生变化。
3、ArrayList<E>,<E>表示的是一种特殊的数据类型,泛型,使用引用类型替换即可。比如:
ArrayList<String>,ArrayList<Student>
4、ArrayList构造方法和添加方法
- public ArrayList():创建一个空的集合对象
- public boolean add(E e):将指定的元素e添加到此集合的末尾
- public void add(int index,E e):在此集合中指定位置插入指定元素
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> array =new ArrayList<String>();
array.add("hello");
array.add(1,"world");
System.out.println(array);
}
}
5、ArrayList常用方法
方法 | 作用 |
remove(Object o) | 删除指定元素,若有多个,只删除第一个,返回值是删除是否成功,boolean类型的变量 |
remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
get(int index) | 返回指定索引处的元素值 |
size() | 返回集合中的元素个数 |
6、遍历ArrayList
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> array =new ArrayList<String>();
array.add("hello");
array.add(1,"world");
array.add("hello");
array.remove("hello");
System.out.println(array);
for(int i=0; i<array.size();i++){
System.out.println(array.get(i));
}
}
}