四、常用类
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); } }