8、反射及泛型

简介: 反射是Java提供的API,可在运行时动态加载类、获取类信息、创建对象及调用方法,广泛用于Spring、JUnit等框架,但效率较低。泛型实现类型参数化,提升编译时检查与代码通用性,如List<T>可灵活指定元素类型,避免重复类定义。

8.1 反射
什么是反射
·反射是java 提供的一套 API,通过这套 API 能够在运行期间
根据类名加载类
获取类的各种信息,如类有哪些属性、哪些方法、实现了哪些接口…
类型参数化,根据类型创建对象
方法、属性参数化,以统一的方式来使用方法和属性
反射广泛应用于各种框架实现,例如
Spring 中的 bean 对象创建、依赖注入
JUnit 单元测试方法的执行
MyBatis 映射查询结果到java 对象
反射在带来巨大灵活性的同时也不是没有缺点,那就是反射调用效率会受一定影响
8.2 泛型
什么是 Java 泛型
,泛型的主要目的是实现类型参数化,java 在定义类、定义接口、定义方法时都支持泛型泛型的好处有
提供编译时类型检查,避免运行时类型转换错误,提高代码健壮性设计更通用的类型,提高代码通用性
【例如】想设计 List 集合,里面只放一种类型的元素,如果不用泛型,怎么办呢?你必须写很多实现类·Impl1 实现类中,只放 String
·Impl2 实现类中,只放 Integer
要支持新的元素类型,实现类型也得不断增加,解决方法需要把元素类型作为参数,允许它可变化:List,其中T就是泛型参数,它将来即可以是 String,也可以是 Integer …
PS.
【例如】是为了帮助你理解,不是必须答出来
关键是答出类型参数化,懂的面试官不必多说,不懂的也没必要跟他继续啰嗦

相关文章
|
物联网 开发工具
物联网平台实用技巧:设备端检测自己是否在线
基于MQTT接入的设备靠心跳保活,但心跳是周期性的、且自动收发和超时重连,这些特性给主动检测设备端是否在线带来了一定难度。本文提供通过消息收发是否正常判定设备是否在线的原理、流程、实现方式。
5159 1
|
9月前
|
SQL 监控 关系型数据库
4、SQL性能分析及优化
通过SkyWalking链路追踪可定位慢接口及慢SQL,或开启MySQL慢查询日志(如设置超1秒记录)来识别执行慢的SQL。结合explain分析执行计划,关注key、type、extra等关键指标,判断索引命中与性能瓶颈,避免全表扫描,优化SQL性能。(238字)
|
8月前
|
Java Go 开发者
IDEA开发常用的快捷键
IntelliJ IDEA常用快捷键汇总:涵盖代码生成(如main、sout)、编辑(复制、删除、重命名)、导航(跳转、查找)、格式化、代码阅读及版本控制等高频操作,提升开发效率。熟练掌握可显著优化编码体验,是Java开发者必备技能。
782 1
|
3月前
|
编解码 自然语言处理 文字识别
HiDream-O1开源:8B参数像素级统一Transformer
HiDream-O1-Image是HiDream.ai开源的8B参数像素级统一生成模型,摒弃VAE与分离文本编码器,首创UiT架构实现文本、图像、任务条件在共享token空间端到端联合建模。支持2048×2048高清生成、多镜头/多语言渲染、指令编辑与主体个性化,在GenEval等基准刷新SOTA。含50步未蒸馏版与28步Dev加速版,并集成推理驱动提示代理。
870 0
|
5月前
|
SQL Devops 数据库
SQL Server Management Studio (SSMS) 22.5 发布 - 微软数据库管理工具
SQL Server Management Studio (SSMS) 22.5 - 微软数据库管理工具
451 2
SQL Server Management Studio (SSMS) 22.5 发布 - 微软数据库管理工具
|
9月前
|
Java Spring 容器
Spring Boot配置的优先级?
SpringBoot项目支持多种配置方式,主要包括配置文件(application.properties、.yml、.yaml)和外部配置(如系统属性、命令行参数)。优先级由高到低为:命令行参数 &gt; 系统属性 &gt; .properties &gt; .yml &gt; .yaml。自动配置核心是@SpringBootApplication中的@EnableAutoConfiguration,通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类,并结合@Conditional条件注解按需注入Bean。
|
9月前
|
SQL 数据库 索引
3.1索引创建的原则 ?
创建索引需遵循六大原则:针对大数据量、高频查询表;在查询、排序、分组字段建索引;优先高区分度列,可建唯一索引;varchar字段建议用前缀索引;多用联合索引且高区分度字段前置;避免过多索引影响维护效率。
|
9月前
|
Java Spring 容器
Spring Bean的作用域如何设置,常见的取值有哪些?
Spring Bean作用域可通过@Scope注解设置,常见有singleton(默认,单例)、prototype(每次创建新实例)、request(每请求一个实例)、session(每会话一个实例)。singleton在容器启动时初始化,可加@Lazy延迟;prototype则每次使用时创建。多数场景使用默认单例模式。
|
9月前
|
存储 安全
HTTP协议中常见的状态码?
HTTP状态码分为1xx到5xx五类,常见如200(成功)、302(重定向)、401(未认证)、404(资源未找到)、500(服务器错误)等。转发是服务器内部跳转,客户端无感;重定向由浏览器发起新请求。Cookie通过Set-Cookie和Cookie头实现会话跟踪,但数据存于客户端,安全性较低。
|
9月前
|
Java 应用服务中间件 Linux
9、Tomcat优化
Tomcat优化需综合JVM、线程池、网络等多方面。本文以SpringBoot 3.2.3为例,重点解析线程池与网络配置:`max-connections`设最大连接数,`accept-count`控队列长度,`threads.max/min-spare`管线程池大小,默认NIO模式适用于Linux。结合JDK21虚拟线程可进一步提升性能,SpringBoot 3.2.x原生支持,低版本可通过替换线程池实现。