在Java中,实用类通常是一些提供特定功能的工具类,比如数据转换、日期时间操作、文件操作等
示例:1.StringUtils(从Apache Commons Lang库):字符串操作工具类。
boolean isBlank = StringUtils.isBlank(" "); // true
String joined = StringUtils.join(["a", "b", "c"], ", "); // "a, b, c"
2.DateUtils
(从Apache Commons Lang库):日期操作工具类。
Date futureDate = DateUtils.addDays(new Date(), 5);
boolean isSameDay = DateUtils.isSameDay(new Date(), new Date());
3.Arrays
:数组操作工具类。
int[] array = {1, 2, 3};
Arrays.sort(array); // 排序
int[] copy = Arrays.copyOf(array, array.length); // 数组
4.Collections
:集合操作工具类
List<String> list = new ArrayList<>();
Collections.shuffle(list); // 洗牌
List<String> copy = Collections.synchronizedList(new ArrayList<>()); // 同步集合
5.IOUtils
(从Apache Commons IO库):I/O操作工具类。
String content = FileUtils.readFileToString(new File("path/to/file"), "UTF-8");
IOUtils.closeQuietly(inputStream); // 安静关闭流
6.FileUtils(从Apache Commons IO库):文件操作工具类
File[] files = FileUtils.listFiles(new File("directory"), null, true);
File destFile = new File("dest.txt");
FileUtils.copyFile(srcFile, destFile);
包装类
八种基本数据类型对应的包装类型名
基本数据类型 包装类型
byte java.lang.Byte(父类Number)
short java.lang.Short(父类Number)
int java.lang.Integer(父类Number)
long java.lang.Long(父类Number)
float java.lang.Float(父类Number)
double java.lang.Double(父类Number)
boolean java.lang.Boolean(父类Object)
char java.lang.Character(父类Object
注意: 8种包装类属于 引用数据类型
包装类的一些特性:
· 所有包装类都可以将与之对应的基本数据类型作为参数来创建它们的实例对象
· 除了Character类之外,其他包装类都可以将一个字符串作为参数来构造它们的实例
· Boolean类的构造方法参数为String类型时,若该字符串为true(不论大小写),则该对象表示true,否则表示false
· 当包装类Number构造方法的参数为String类型时,字符串不能为null,并且该字符串必须能够解析为基本类型的数据
1、包装类中“==”与equals的用法比较
值得注意的是,包装类中的equals方法和String类一样,都是重写了Object类中的equals方法,因此比较的是内容而不是地址,而“”比较的依然是引用变量的地址,只是当包装类型和与之相对应的基本类型进行“”比较时会先做自动拆箱处理。
2、包装类缓存
部分包装类提供了对象的缓存,实现方式是在类初始化时提前创建好会频繁使用的包装类对象,当需要使用某个包装类的对象时,如果该对象包装的值在缓存的范围内,就返回缓存的对象,否则就创建新的对象并返回。