常用类
Objects(JDK7)
Objects类是在JDK7之后新增的一个工具类(位于java.util包中),内部提供的方法都是静态方法,因此可以直接通过类名称调用;Objects类主要提供了对于对象的一些空指针安全的访问方法(研究源码得知),比如对象的比较可以使用:Objects.equals(o1,o2),判断对象是否为空可以使用Objects.isNull(obj),确保对象不为空的检查可以使用Objects.requireNonNull(obj)等。
Math&Random
Math类
Math类是由java.lang包提供的一个用作数学相关操作的类,该类为final类(无法被继承),内部提供的都是static的,该类未对外提供公开的构造方法,因此无法在外界直接创建对象
//从1-10直接随机获取一个整数
Math.ceil(Math.random()*10);
Random类
Rondom类是java.util包中提供的一个基于伪随机流,用于生成随机数的工具类,该类提供了一系列用于产生伪随机流数据的方法。
//基于Random类实现一个随机位数的验证码生成器
public class Validate{
static String s ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static String genVCode(int count){
Random r = new Random();
String code = "";
for(int i = 0; i < count; i++){
int index = r.nextInt(s.length());
code += s.charAt(index);
}
return code;
}
}
BigDecimal&DecimalFormat
BigDecimal类
java中提供了一个BigDecimal(java.math.BigDeciml)类型用于表示精确的数值,在对数值类型做运算需要保证精度的情况下,可以使用BigDecimal中提供的相关方法实现
DecimalFormat类
java.text.DecimalFormat是一个用于对数值数据格式化(解析字符串为数值)处理的类,该类从lang.text.NumberFormat类继承,里面提供了一些用于将数值类型表示为不同格式字符串转换方法(货币,百分比,千分比)
File类
File类是位于java.io包中,该类用于表示本机环境中一个文件或者一个目录对象,File中提供了一些用于操作文件或者目录的方法,比如文件/目录的创建,删除文件/目录,信息显示操作等。
//目录遍历
public class FileAll{
public static void main(String[] args){
File f = new File("d:xx");
File[] files = f.listFiles();
for(File f : files){
System.out.println(file.getAbsolutePath());
}
}
}
//过滤器
//创建文件过滤器
public class MyFileFilter implements FileFilter{
private String suffix;
public MyFileFilter(String suffix){
super();
this.suffix = suffix;
}
@Override
public boolean accept(File f){
String name = f.getName().toLowerCase();
return name.endWith(suffix);
}
}
//实现文件过滤
public class FileFilterGo{
public static void mian(String [] args){
File f = new File("D:xx");
File[] files = f.listFiles(new MyFileFilter(".jpg"));
for(File file : files){
System.out.println(file.getName());
}
}
}
Date类&DateFormat
Date类位于java.util包,用于表示一个日期时间对象,Date类中提供了一些对于时间和日期操作的相关方法,不过这些方法目前都已经过时了;java中经常会涉及到对于日期的一些操作,因此使用Date类可以简单的解决,同时JDK还提供了用于对Date进行格式化和解析的相关类:DateFormat和SimpleDateFormat(DateFormat的子类)
Date类的三个直接子类:
1.java.sql.Date
2.java.sql.Time
3.java.sql.Timestamp