本章介绍Java的常用类
1、String类与StringBuffer类
2、基础数据类型包装类
3、数学类
4、File类
5、Enum枚举类
1、String类与StringBuffer类
String 类和StringBuffer类来封装了对字符串的各种操作,他们属于java.lang包。
String类用于比较两个字符串、查找和抽取串中的字符或字符串、与其他类型之间的相互转化等,注意String类对象的内容一旦被初始化就不能在改变了。“+”操作的时候,实际上是生成了第三个字符串
StringBuffer类用于内容可以改变的字符串,可以将其他各种类型的数据增加、插入到字符串中,也可以翻转字符串中的内容,并且可以把StringBuffer类生成的字符串通过StringBuffer类的toString()方法转化成String类,然后就可以通过String类的各种方法操作该字符串了
Java中提供了“+”来将两个String类型的字符串连接成一个新的字符串,在StringBuffer类中可以通过append方法实现
例如:
String x="abc"+4+"def";
编译时等效于
String x=new StringBuffer().append("abc").append(4).append("def").toString();
注意:
String s1="hello";
String s2="hello";
说明s1和s2是同一个对象,而下面的两句代码是创建了两个对象,但是他们虽然内容相同,但确实不同的两个对象;
String s1=new String("hello");
String s2=new String("hello");
原因很简单:前面的是在全局经数据段分配内存,后者是在堆上分配
在String类中特别要注意“==”和“equals”,他们有着本质的区别,“==”比较的是两个字符串的对象引用,而“equals”比较的是两个字符串的内容。
String类和StringBuffer类具有好多有用的方法,请查看jdk帮助学习和理解。
2、基础数据类型包装类
Java为每个基本类型都提供了包装类,这样,我们便可以把这些基本类型转化为对象来处理了
(1)带有基本值参数并创建包装类对象的构造函数.如可以利用Integer包装类创建对象,Integer obj=new Integer(145);
(2)带有字符串参数并创建包装类对象的构造函数.如new Integer("-45.36");
(3)生成字符串表示法的toString()方法,如obj.toString().
(4)对同一个类的两个对象进行比较的equals()方法,如obj1.eauqls(obj2);
(5)生成哈稀表代码的hashCode方法,如obj.hasCode();
(6)将字符串转换为基本值的 parseType方法,如Integer.parseInt(args[0]);
(7)可生成对象基本值的typeValue方法,如obj.intValue();
3、数学类
Math.PI 记录的圆周率(常量)
Math.E 记录e的常量(常量)
Math.abs 求绝对值
Math.sin 正弦函数
Math.asin 反正弦函数
Math.cos 余弦函数
Math.acos 反余弦函数
Math.tan 正切函数
Math.atan 反正切函数
Math.atan2 商的反正切函数
Math.toDegrees 弧度转化为角度
Math.toRadians 角度转化为弧度
Math.ceil 得到不小于某数的最大整数
Math.floor 得到不大于某数的最大整数
Math.IEEEremainder 求余
Math.max 求两数中最大
Math.min 求两数中最小
Math.sqrt 求开方
Math.pow 求某数的任意次方, 抛出ArithmeticException处理溢出异常
Math.exp 求e的任意次方
Math.log10 以10为底的对数
Math.log 自然对数
Math.rint 求距离某数最近的整数(可能比某数大,也可能比它小)
Math.round 同上,返回int型或者long型(上一个函数返回double型)
Math.random 返回0,1之间的一个随机数
4、File类
Java中的File类可以代表文件也可以代表目录
File的使用非常的简单,它有四个构造函数:
File(String parent,String child)
File(File parent,String child)
File(URI uri)
File(String pathname)
其中前面两个可以让我们在某个已知特定的目录下新建文件或者目录,后面两个我们可以通过pathname或者URI新建文件或者目录。
有一点需要注意,File虽然是一个系统无关的代表,但是pathname的表示是和系统相关的,比如UNIX下"/"表示root目录,而windows下通常用盘符来表示。
比如绝对路径C:/helloworld/mingjava,如果是相对路径的话则不以"/"开头,一般相对路径是相对当前目录的。当我们创建一个File的时候可以通过exists()方法判断它是否存在,如果不存在我们可以选择是创建为文件还是创建为目录。例如
如果我们已经知道一个File对象,希望在他的目录之下新建文件,那么就可以使用第一个构造器了。例如
注意创建多层目录的时候要用mkdirs()。
我们还可以列举出一个目录下的文件列表,通过list()方法可以得到一个String[]类型的数组,这就是目录下的文件名称。
File的使用并不复杂,如果有问题多参考一下API doc一般就可以解决了,下面是一个小例子,说明如何使用File文件。
下面是常用的方法
1、文件名的操作
public String getName();返回文件对象名字符串,串空时返回null
public String toString();返回文件名字符串
public String getParent();返回文件对象父路径字符串,不存在时返回null
public File getPath();转换相对路径名字符串
public String getAbsolutePath();返回绝对路径名字符串,如果为空返回当前使用目录,也可以使用系统指定目录
public String getCanonicalPath()throws IOException;返回规范的路径名串
public File getCanonicalFile()throws IOException;返回文件(含相对路径名)规范形式
public File getAbsoluteFile();返回相对路径的绝对路径名字符串
public boolean renameTo(File dest);重命名指定的文件
public static Fiel createTempFile(String prifix,String suffix,File directory)throws IOException;在指定目录建立指定前后缀空文件
public static Fiel createTempFile(String prifix,String suffix)throws IOException;在指定目录建立指定前后缀文件
public boolean createNewFile()throws IOException;当指定文件不存在时,建立一个空文件
2、文件属性测试
public boolean canRead();测试应用程序是否能读指定的文件
public boolean canWrite();测试应用程序是否能修改指定的文件
public boolean exists();测试指定的文件是否存在
public boolean isDirectory();测试指定文件是否是目录
public boolean isAbsolute();测试路径名是否为绝对路径
public boolean isFile();测试指定的是否是一般文件
public boolean isHidden();测试只的是否是隐藏文件
3、一般文件信息和工具
public long lastModified();返回只的文件最后被修改的时间
public long length();返回指定文件的字节长度
public boolean delete();删除指定的文件
public void deleteOnExit();当虚拟机执行结束时请求删除指定的文件或目录
4、目录操作
public boolean mkdir();创建指定的目录,正常建立时返回true,否则返回false
public boolean mkdirs();常见指定的目录,包含任何不存在的父目录
public String[]list();返回指定目录下的文件(存入数组)
public String[]list(FilenameFilter filter);返回指定目录下满足指定文件过滤器的文件
public File[]listFiels();返回指定目录下的文件
public File[]listFiles(FilenameFilter filter);返回指定目录下满足指定文件过滤器的文件
public File[]listFiles(FileFilter filter);返回指定目录下满足指定文件过滤器的文件(返回路径名应满足文件过滤器)
public static File[]listRoots();列出可用文件系统的根目录结构
5、文件属性设置
public boolean setLastModified(long time);设置指定文件或目录的最后修改时间,操作成功返回true,否则返回false
public boolean setReadOnly();标记指定的文件或目录为只读属性,操作成功返回true,否则返回false
6、其他
public URL toURL()throws MalformedURLException;把相对路径名存入URL文件
public int compareTo(OBject o);与另一个对性比较名字
public boolean equals(Object obj);与另一个对象比较对象名
public int hashCode();返回文件名的哈希码
5、Enum枚举类
略