Java 程序设计基础(第5章第8节)|Java类的高级特性

Java 程序设计基础(第5章第8节)|Java类的高级特性 一、整体概述本小节包含泛型、类加载机制、反射、枚举类型、注解五大Java高级特性全部是主流框架底层核心支撑技术实际开发、框架源码阅读都高频用到。二、泛型泛型作用在编译期做类型约束强制集合、类、方法只能存储指定类型数据避免类型强转抛出类型转换异常实现代码通用复用。可以在类、接口、方法上定义泛型形参泛型通配符?代表任意类型上限限定? extends 父类只能接收子类类型下限限定? super 父类只能接收父类类型。泛型存在泛型擦除机制编译生成字节码后泛型标识会被清除运行阶段不存在泛型。三、Java类加载机制类完整加载流程分为加载、链接验证、准备、解析、初始化三个阶段。核心双亲委派模型遵循自下而上委托加载自定义类加载器向上委托应用类加载器再到扩展类加载器最终由启动类加载器加载核心JDK类逆向查找加载能够防止JDK核心类被恶意篡改保障Java运行安全。四层类加载器各司其职负责不同路径的class字节码加载。四、Java反射机制反射可以在程序运行阶段动态获取任意类的完整结构动态创建对象、调用成员方法、读写成员变量能够突破封装权限限制。获取Class字节码对象有三种方式类名.class、实例对象.getClass()、Class.forName(类全限定名)。依靠Class对象可以拿到构造器、方法、字段对象调用setAccessible(true)关闭权限校验就能访问私有成员。Spring IoC、MyBatis等主流框架底层全部基于反射实现。五、枚举类型enum定义的枚举本质是继承Enum类的特殊类实例数量固定不可随意new创建天然线程安全支持switch分支匹配。内置常用APIvalues()遍历全部枚举实例、ordinal()获取枚举序号、valueOf()字符串转为枚举对象枚举可以自定义成员变量、私有构造方法还能定义抽象方法实现不同实例差异化逻辑常用来存储订单状态、支付类型、业务标识等固定常量。六、Java注解注解是代码标记分为JDK内置注解、元注解、自定义注解。内置注解包含Override重写校验、Deprecated标记过时方法、SuppressWarnings压制编译警告。元注解用来修饰自定义注解Target限定注解标注位置类、方法、字段等、Retention设置注解生命周期源码、字节码、运行时还有Documented、Inherited。自定义注解结合反射技术可以实现参数校验、接口权限控制、数据库ORM字段映射等通用功能。七、实用案例汇总1. 泛型编写通用工具类适配任意数据类型2. 反射读取配置文件中的类名动态实例化对象实现工厂模式解耦3. 枚举统一管理业务状态码杜绝魔法数字4. 自定义注解反射实现接口入参自动校验。八、小节总结这一组高级特性脱离基础语法范畴是从基础开发进阶框架源码学习的必经知识点泛型提升代码复用反射和注解是框架基石枚举规范常量定义类加载机制理解JVM底层运行原理。