四、常用类
4.1字符串相关的类(String StringBuffer)
4.1.1String类
4.1.2StringBuffer类(代表可变的)
解释一下可变和不可变
String s1 = “hello”;
String s2 = “world”;
s1+=s2;
实际上又开辟了一块内存,将hello和world copy进去,s1指向新的内存
而StringBuffer只是在s1后面增加了一块内存,把world加上,不需要copy
String与StringBuffer只有这一定区别。
4.2基础数据类型包装类(Integer,Double,Character,等)(java.lang)
将基本数据类型数值封装为对象
4.3 File类(java.io.File)代表系统文件名(路径和文件名)
String separator = File.separator;//文件分隔符,windows下是\,而linux下是/,不过两个系统对/都适用。
String filename = "myfile.txt";
String directory = "mydir1" + separator + "mydir2";
程序完整版
package bjsxt;
import java.io.*;
public class TestFile {
public static void main(String[] args) {
String separator = File.separator;
String filename = "myfile.txt";
String directory = "mydir1" + separator + "mydir2";
//String directory = "mydir1/mydir2";
//String directory = "mydir1\\mydir2";
File f = new File(directory, filename);
if (f.exists()) {
System.out.println("文件名:" + f.getAbsolutePath());
System.out.println("文件大小:" + f.length());
} else {
f.getParentFile().mkdirs();
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//打印文件夹及其子文件的所有东西
import java.io.*;
public class FileList {
public static void main(String[] args) {
File f = new File("d:/A");
System.out.println(f.getName());
tree(f, 1);
}
private static void tree(File f, int level) {
String preStr = "";
for(int i=0; i<level; i++) {
preStr += " ";
}
File[] childs = f.listFiles();
for(int i=0; i<childs.length; i++) {
System.out.println(preStr + childs[i].getName());
if(childs[i].isDirectory()) {
tree(childs[i], level + 1);
}
}
}
}
4.4Enum类(java.lang.Enum)
用于只能取特定值中的一个。
public enum MyColor { red, green, blue };//定义了一种类型
MyColor m = MyColor.red;//取值
程序完整版
public class TestEnum {
public enum MyColor { red, green, blue };
public enum MyDoorOpener {me, mywife};
public static void main(String[] args) {
MyColor m = MyColor.red;
switch(m) {
case red:
System.out.println("red");
break;
case green:
System.out.println("green");
break;
default:
System.out.println("default");
}
System.out.println(m);
}
}