• 猿创征文 | Java 泛型&类库&枚举&反射机制 要点


    一、泛型

    1、泛型可以使程序的操作更加安全,可以避免发生类转换异常。

    2、在程序中如果使用类时没有指定泛型,则泛型将被擦除掉,将使用Object接收参数。

    3、可以使用通配符“”接收全部的泛型类型对象。

    4、通过<?extends类>可以设置泛型的上限,通过<?super类>可以设置泛型的下限。

    5、泛型方法可以定义在泛型类中,也可以定义在普通类中。

    6、泛型可以在接口中定义,实现泛型接口的子类要指明具体的泛型类型。

    7、泛型可以嵌套使用。

    8、在程序中定义没有方法的接口,这样的接口一般称为标识接口。

    二、常用类库

    1、在一个字符串内容需要频繁修改时,使用StringBuffer可以提升操作性能,因为 StringBuffer内容可以改变,而String内容不可以改变。

    2、StringBuffer类中提供了大量的字符串操作方法,如增加、替换、插入等。

    3、Runtime表示运行时在一个JVM中只存在一个Runtime,所以如果要想取得 Runtime类的对象,直接使用Runtime类中提供的静态方法getRuntime()即可。

    4、国际化程序实现的基本原理为:所有的语言信息以key—>value的形式保存在资源文件之中,程序通过key找到相应的value,根据其所设置国家的Locale对象不同,找到的资源文件也不同。要想实现国际化必须依靠LocaleResourceBundle两个类共同完成。

    5、System类是系统类,可以取得系统的相关信息,使用System.gc()方法可以强制性地进行垃圾的收集操作,调用此方法实际上就是调用了Runtime类中的gc()方法。

    6、Format类为格式化操作类,主要的3个子类是MessageFormatNumberFormatDateFormat

    7、使用Date类可以方便地取得时间,但取得的时间格式不符合地域的风格,所以可以使用SimpleDateFomat类进行日期的格式化操作。

    8、处理大数字可以使用BiglntegerBigDecimal类,当需要精确小数点操作位数时应使用BigDecimaI类。

    9、通过Random类可以取得指定范围的随机数字。

    10、如果一个类的对象要被克隆,则此对象所在的类必须实现Cloneable接口。

    11、要对一组对象进行排序,则必须使用比较器,比较器接口Comparable中定义了compareTo()的比较方法,用来设置比较规则。

    12、正则表达式是开发中最常使用的一种验证方法,String类中的replaceAll()split()matches()方法都对正则有所支持。

    13、可以使用TimeTimeTask类完成系统的定时操作。

    三、枚举

    1、在程序中可以使用一个枚举来指定对象的取值范围。

    2、在Java中使用enum关键字定义一个枚举类,每一个枚举类都是继承Enum类

    3、在枚举中可以通过values()方法取得枚举中的全部内容。

    4、在枚举类中可以定义构造方法,但在设置枚举范围时必须显式地调用构造方法。

    5、所有的枚举类都可以直接使用Comparable进行排序,因为Enum类实现了Comparable接口。

    6、Java类集中提供枚举的支持类是EnumMapEnumSet

    四、Java反射机制

    1、Class类是反射机制操作的源头。

    2、Class类的对象有3种实例化方式:
    (1)通过Object类中的getClass()方法。
    (2)通过“类.class ”的形式。
    (3)通过Class.forName()方法,此种方式最为常用。

    3、可以通过Class类中的newInstance()方法进行对象的实例化操作,但是要求类中必须存在无参构造方法,如果类中没有无参构造,则必须使用Constructor类完成对象的实例化操作。

    4、可以通过反射取得一个类所继承的父类、实现的接口、类中的全部构造方法、全部普通方法及全部属性。

    5、使用反射机制可以通过Method调用类中的方法,也可以直接操作类中的属性。

    6、动态代理可以解决开发中代理类过多的问题,提供统一的代理功能实现。

    7、在程序的开发中使用反射机制并结合属性文件,可以达到程序代码与配置文件相分离的目的。

  • 相关阅读:
    聊聊Go里面的闭包
    Zynq学习笔记--了解中断配置方式
    【0x01】机器学习-数据集
    Python OpenCV实现鼠标绘制矩形框和多边形
    Linux网络编程-网络io与select,poll,epoll
    代码随想录第41天 | 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV
    在 SpringBoot 项目中使用 Swagger 接口文档演示
    Java 设计模式 Builder 模式 链式编程
    Cross product
    汇编语言入门(一)
  • 原文地址:https://blog.csdn.net/CSDN_anhl/article/details/126575151