1、内部类
1.1 局部内部类
(1)不能添加访问修饰符,但是可以用 final 修饰
(2)通常定义在外部类的局部位置,通常在方法中
(3)作用域仅在定义的方法中,相当于局部变量,只不过类型是类
1.2 匿名内部类(重点!!!!!)
(1)还是一个类,只不过是匿名的,没有名字
(2)是一个对象
(3)定义在外部类的局部位置
(5)只使用一次!!,匿名内部类的名称是系统分配,使用 getClass()方法可以获取到类名
(4)语法
new 类/接口(参数列表){
类体
}
-
包装类(Wrapper )
2.1 Boolean
2.2 Byte
2.3 Character
(1)isDigit('a') 判断是不是数字
(2)isLetter('a') 判断是不是字母
(3)isUpperCase('a') 判断是不是大写
(4)isLowerCase('b') 判断是不是小写
2.4 Short
2.5 Integer
(1)Interger.MIN_VALUE 返回最小值
(2)Interger.MIN_VALUE 返回最大值
2.6 Long
2.7 Float
2.8 Double
-
String类(重点!!!!!)
如果是两个字符串常量相加,会存在池里,如果是变量,会存在堆里,如果要对 String 做大量修改,建议用 StringBudder
效率:SrtringBuilder > StringBuffer > String
(1)复用率高,效率低
-
StringBuffer 类
(1)继承了 Serializable 类,可以串行化
-
StringBuilder 类
线程不安全,API 与 StringBuffer 兼容,推荐单线程中使用
-
Math 类
-
Arrays 类
(1)toString方法,返回数组
(2)sort方法,直接排序
(3)binarySearch( 数组名, 查询的元素),二分查找方法,要求数组有序,如果存在返回索引,不存在返回负数
(4)copyOf(拷贝的目标数组,需要拷贝的长度)
(5)fill(填充的目标数组,填充的数据)
(6)equals(数组A, 数组B)如果两个数组元素完全一样,则返回true,否则false
-
System 类
(1)exit方法,退出当前程序
(2)arraycopy方法,复制数组元素
(3)currentTimeMillens方法,返回当前时间距离1970-1-1的毫秒数
(4)gc,垃圾回收机制
-
Date 日期类
(1)Date d1 = new Date() : 获取当前时间
Date d1 = new Date(); System.out.println("当前日期为:" + d1); // 当前日期为:Sat Jul 09 16:36:57 GMT+08:00 2022
(2)SimpleDateFormat 格式化日期
Date d1 = new Date();
System.out.println("当前日期为:" + d1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
String format = sdf.format(d1);
System.out.println(format);
// 2022年07月09日 04:36:57 星期六
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
String s = "1996年01月01日 10:20:30 星期一";
Date parse = sdf.parse(s);
System.out.println("parse = " + parse);
// parse = Mon Jan 01 10:20:30 GMT+08:00 1996
-
Calendar日期类
// 1. Calendar 是抽象类, 并且构造器是 private // 2. 不可以通过 new 的方式取到,只能使用 getInstance() 方法获取实例 // 3. 如果需要按照 24 小时进制获取时间, Calendar.HOUR -> Calendar.HOUR_OF_DAY Calendar c = Calendar.getInstance(); System.out.println(c); System.out.println(c.get(Calendar.YEAR)); System.out.println(c.get(Calendar.MONTH)); System.out.println(c.get(Calendar.DAY_OF_MONTH));
- LocalDateTime 类
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
// 2022-07-09T17:02:22.785
System.out.println(ldt.getMonthValue()); // 9
System.out.println(ldt.getYear()); // 2022
System.out.println(ldt.getDayOfMonth()); // 7
-
DateTimeFormatter 日期格式化类
LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH小时mm分钟ss秒"); String format = dtf.format(ldt); System.out.println(format); // 2022年07月09日 17小时09分钟06秒