常用类包括:
Object 、String 、StringBuffer、StringBuilder、StringUtils、
System、Runtime 、Math 、Date、Calendar、File、Random ...
1.Object
Class Object是类Object结构的根。 每个班都有Object作为超类。 所有对象(包括数组)都实现了这个类的方法。
1.equals():比较两个对象是否相等
2.getClass():获取任意对象运行时的所属字节码文件对象
3.hashCode():返回对象的哈希码值
4.toString():将对象变成字符串 默认返回的格式: 类名@哈希值 = getClass().getName() + '@' + Integer.toHexString(hashCode()) 为了对象对应的字符串内容有意义 可以通过复写 建立该类对象自己特有的字符串表现形式
5.finalize():当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象
6.notify():唤醒正在睡眠的线程
7.notifyAll():唤醒所有睡眠的线程
8.wait():等待线程
2.String
String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。
字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享
3.StringBuffer、StringBuilder
StringBuffer和StringBuilder都是可变字符串,区别在于StringBuffer是线程安全的而StringBuilder是不安全的但是效率比StringBuffer要高
4.StringUtils
StringUtils是操作String的工具类具体方法:
1.abbreviate():缩写一段文字
StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
2.isBlank()、isEmpty():判断是否为空
区别isBlank 如果当前文字中全是空格或者是null 返回true 如果里面存在文字返回flase。isEmpty如果存在多个空格返回flase
String str1 = " ";
//true
boolean blank = StringUtils.isBlank(str1);
//false
boolean empty = StringUtils.isEmpty(str1);
3.trim()、trimToEmpty()、stripToNull():
去除空格
4.join():用于关联列表String
List<String> strings = new ArrayList<>();
strings.add("1");
strings.add("2");
strings.add("3");
//结果1-2-3
System.out.println(StringUtils.join(strings,"-"));
5.System(系统类)
System类包含几个有用的类字段和方法。 它不能被实例化。
System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。
1.gc(): 通知系统回收垃圾
2.exit():终止线程
3.currentTimeMillis():获得当前系统毫秒值
4.in、out、error() 用于打印输出
6.Runtime(运行时环境类)
java.lang.Runtime
类中没有构造方法 不能创建对象
但是有非静态方法 说明该类中应该定义好了对象 并可以通过一个static方法获取这个对象 用这个对象来调用非静态方法 这个方法就是 static Runtime getRuntime(); (单例设计模式)
Runtime runtime = Runtime.getRuntime();
//打开记事本
runtime.exec("C:\\Windows\\notepad.exe");
//虚拟机最大存储空间
runtime.maxMemory();
//虚拟机空闲存储空间大小
runtime.freeMemory();
//虚拟机内存总量
runtime.totalMemory();
7.Math(数学算数类)
//求绝对值
Math.abs(10.1);
//向上取整
Math.ceil(10.6);
//向下取整
Math.floor(10.4);
//最大值
Math.max(2, 5);
//最小值
Math.min(1, 7);
//随机数
Math.random();
8.Date(时间类)
1.after():测试此日期是否在指定日期之后。
2.before():测试此日期是否在指定日期之前。
3.getTime():获得当前时间毫秒值
4.setTime():设置毫秒值
9.Calendar(日历类)
从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现(Date的一些方法都过时了)。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些
1.add():根据日历的规则,将指定的时间量添加或减去给定的日历字段
//当前时间是2019-04-20
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE,-1);
//获得昨天的时间是 2019-04-19
System.out.println(SIMPLE_DATE_FORMAT.format(cal.getTime()));
2.set():设置日历字段中的值
//当前时间是2019-04-20
Calendar cal = Calendar.getInstance();
//设置月份为11 月 MONTH 0~11
cal.set(Calendar.MONTH,10);
//设置时间为2019-11-11
cal.set(2019,10,11);
3.get():获得指定的年月日时分秒
//当前时间是2019-04-20
Calendar cal = Calendar.getInstance();
//获得年
cal.get(Calendar.YEAR);
//获得月
cal.get(Calendar.MARCH);
//获得天
cal.get(Calendar.DATE);
//获得小时
cal.get(Calendar.HOUR);
4.getTime():转换成date对象
5.setTime():设置当前时间
6.getMaximum()、getActualMaximum():getActualMaximum 返回实际的最大数值,getMaximum 返回的是可能的最大数值。
//当前时间是2019-04-20
Calendar cal = Calendar.getInstance();
//获得有可能的最大值 31
cal.getMaximum(Calendar.DATE);
//获得当月的最大天数 30
cal.getActualMaximum(Calendar.DATE);
练习
//当前时间是2019-04-20
Calendar cal = Calendar.getInstance();
//获得后10天
/*for (int i = 0; i < 12; i++) {
cal.add(Calendar.DATE,+1);
System.out.println(SIMPLE_DATE_FORMAT.format(cal.getTime()));
}*/
//获得当月最大天数
int actualMaximum = cal.getActualMaximum(Calendar.DATE);
System.out.println(actualMaximum);
//设置日历当月的从第一个月开始
cal.set(Calendar.DATE,0);
for (int i = 1; i <= actualMaximum; i++) {
cal.add(Calendar.DATE,+1);
System.out.println(SIMPLE_DATE_FORMAT.format(cal.getTime()));
}
10.Random(随机数)
Random random = new Random();
//随机Double
random.nextDouble();
//随机int
random.nextInt();
//随机long
random.nextLong();