MIT_6.031之基本Java
MIT_6.031之基本Java
1. 可变与不可变对象
不可变对象:
在 Java 中,不可变对象的状态在创建后不能被修改。String
是不可变对象。每次对字符串进行操作时(例如拼接、截取等),都会创建一个新的字符串对象,原对象保持不变。1
2String s1 = "Hello";
s1 = s1 + " World"; // 创建了一个新的字符串 "Hello World",原字符串 "Hello" 不变
可变对象:
StringBuilder
是一个可变对象,可以在原对象的基础上修改内容,而不需要创建新的对象。常用于需要频繁修改字符串的场景,性能更好。1
2StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // 修改了原对象的内容,不会创建新对象final
关键字:final
用于声明不可变引用,即变量本身的引用不能修改,但如果引用指向的是可变对象(如StringBuilder
),对象的内容可以修改。1
2
3final StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // 允许修改 sb 指向的内容
sb = new StringBuilder("New"); // 编译错误:不能改变 sb 的引用
2. Java 集合框架
List
(列表):List
是有序的集合,可以包含重复的元素。
1
2
3
4
5
6List<String> lst = new ArrayList<>();
lst.add("Hello");
int count = lst.size(); // 获取列表的大小
if (lst.isEmpty()) {
System.out.println("列表为空");
}Map
(映射):Map
是键值对的集合,每个键唯一,键与值通过映射关联。
1
2
3
4
5
6Map<String, Integer> map = new HashMap<>();
map.put("Alice", 10);
Integer val = map.get("Alice"); // 获取键对应的值
if (map.containsKey("Bob")) {
map.remove("Bob"); // 如果键存在,则删除该键及其关联的值
}Set
(集合):Set
是无序的集合,不允许重复的元素。
1
2
3Set<Integer> s1 = new HashSet<>();
s1.add(1);
s1.contains(1); // 判断集合中是否存在某个元素
3. 快速创建数组
可以快速地用初始化语法创建数组:
1
String[] arr = {"a", "b", "c"};
- 还可以使用
Arrays.asList
将数组转换为列表:
1
List<String> list = Arrays.asList("a", "b", "c"); // 创建一个长度固定的列表
- 还可以使用
4. 遍历 Map
使用
keySet()
遍历Map
中的键,并通过get()
方法获取键对应的值:1
2
3
4
5
6
7Map<String, Integer> turtles = new HashMap<>();
turtles.put("turtle1", 100);
turtles.put("turtle2", 200);
for (String key : turtles.keySet()) {
System.out.println(key + ": " + turtles.get(key));
}
5. Java I/O (输入输出)
File
类:
表示磁盘上的文件或目录,提供方法来测试文件的状态、删除文件等。1
2
3
4File file = new File("test.txt");
if (file.exists() && file.canRead()) {
System.out.println("文件可读");
}FileReader
类:
用于从文本文件中读取字符流。常与BufferedReader
配合使用。1
FileReader reader = new FileReader("test.txt");
BufferedReader
类:
提供缓冲机制来提高读取效率,支持按行读取。1
2
3
4
5
6BufferedReader br = new BufferedReader(new FileReader("test.txt"));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
不可变对象(如
String
)在修改时会创建新对象,可变对象(如StringBuilder
)则直接修改。集合框架 提供了
List
、Map
和Set
等不同的数据结构来满足不同需求。Java I/O 提供了对文件的读取和写入操作,常见类包括
File
、FileReader
和BufferedReader
。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Totoroの旅!
评论