Java

76 阅读3分钟

1、内部类

1.1 局部内部类

(1)不能添加访问修饰符,但是可以用 final 修饰

(2)通常定义在外部类的局部位置,通常在方法中

(3)作用域仅在定义的方法中,相当于局部变量,只不过类型是类

1.2 匿名内部类(重点!!!!!)

(1)还是一个类,只不过是匿名的,没有名字

(2)是一个对象

(3)定义在外部类的局部位置

(5)只使用一次!!,匿名内部类的名称是系统分配,使用 getClass()方法可以获取到类名

(4)语法

new 类/接口(参数列表){
        类体
}
  1. 包装类(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

  1. String类(重点!!!!!)

    如果是两个字符串常量相加,会存在池里,如果是变量,会存在堆里,如果要对 String 做大量修改,建议用 StringBudder

    效率:SrtringBuilder > StringBuffer > String

    (1)复用率高,效率低

  2. StringBuffer 类

    (1)继承了 Serializable 类,可以串行化

  3. StringBuilder 类

    线程不安全,API 与 StringBuffer 兼容,推荐单线程中使用

  4. Math 类

  5. Arrays 类

    (1)toString方法,返回数组

    (2)sort方法,直接排序

    (3)binarySearch( 数组名, 查询的元素),二分查找方法,要求数组有序,如果存在返回索引,不存在返回负数

    (4)copyOf(拷贝的目标数组,需要拷贝的长度)

    (5)fill(填充的目标数组,填充的数据)

    (6)equals(数组A, 数组B)如果两个数组元素完全一样,则返回true,否则false

  6. System 类

    (1)exit方法,退出当前程序

    (2)arraycopy方法,复制数组元素

    (3)currentTimeMillens方法,返回当前时间距离1970-1-1的毫秒数

    (4)gc,垃圾回收机制

  7. 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
  1. 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));
    
  1. 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
        
  1. 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秒