java的反射机制带来的好处_java注解原理

java的反射机制带来的好处_java注解原理什么是反射Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法jdbc(数据库连接技术)在加载驱动时运用到了反射技术例如:实例化对象第一种:Personp=newPerson()虚拟机在执行的时候已经确切知道要实例化哪个类的对象第二种:反射:虚拟机在实例化对象的时候,可以事先不知道要实例化哪个类的对象,传参的时候虚拟机根据参数确定要实例化哪个类的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

什么是反射

Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法
jdbc(数据库连接技术)在加载驱动时运用到了反射技术

在这里插入图片描述
例如:实例化对象
第一种:
Person p = new Person()
虚拟机在执行的时候已经确切知道要实例化哪个类的对象

第二种:
反射:虚拟机在实例化对象的时候,可以事先不知道要实例化哪个类的对象,传参的时候虚拟机根据参数确定要实例化哪个类的对象
根据参数不同,虚拟机可以实例化任意类型对象

两种相同点:都是实例化对象,但利用反射实例化对象时更灵活

在这里插入图片描述
在这里插入图片描述
执行Class.forName的时候,类加载器会根据参数fanshe.Person去找这个类
把这个类加载到虚拟机,同时获取这个类的Class对象
每个类都有Class类型的对象
这个对象保存了对应对象的元信息(属性,方法,构造函数)
接下来在调用newInstance方法来实例化对象

在这里插入图片描述

反射优点

动态创建对象(需要创建哪个类的对象,就传哪个类)
在这里插入图片描述

在这里插入图片描述

利用反射技术获取类的信息

利用反射技术获取类的属性、方法、构造函数

获取类的属性和方法
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193293.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java定时器(Timer)「建议收藏」

    Java定时器(Timer)「建议收藏」1.介绍Timer和TimerTask是用于在后台线程中调度任务的javautil类。简单地说,TimerTask是要执行的任务,Timer是调度器。2.调度一次性任务2.1指定延迟后执行让我们从简单地在定时器的帮助下运行单个任务开始:@TestpublicvoidgivenUsingTimer_whenSchedulingTaskOnce_thenCorrect(){TimerTasktask=newTimerTask(){publicvoid

    2022年7月7日
    23
  • 【SpringBoot】25、SpringBoot中使用Quartz管理定时任务

    【SpringBoot】25、SpringBoot中使用Quartz管理定时任务定时任务在系统中用到的地方很多,例如每晚凌晨的数据备份,每小时获取第三方平台的Token信息等等,之前我们都是在项目中规定这个定时任务什么时候启动,到时间了便会自己启动,那么我们想要停止这个定时任务的时候,就需要去改动代码,还得启停服务器,这是非常不友好的事情直至遇见Quartz,利用图形界面可视化管理定时任务,使得我们对定时任务的管理更加方便,快捷一、Quartz简介Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲

    2022年10月22日
    0
  • 风口与泡沫中的寻路革命 —互联网医疗行业投资大数据

    风口与泡沫中的寻路革命 —互联网医疗行业投资大数据

    2022年3月4日
    53
  • 八卦时钟代码

    八卦时钟代码<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><title>www.dupengfei.top</title><style>html{background:#000;color:#666;font-size:12px;…

    2022年6月28日
    37
  • Qt Quick之TableView的使用

    本博只是简单的展示TableView的基本使用(TableView、style:TableViewStyle、headerDelegate、rowDelegate、itemDelegate、Table

    2021年12月29日
    68
  • volatile关键字及其作用

    volatile关键字及其作用概述:本文主要介绍Java语言中的volatile关键字,内容涵盖volatile的保证内存可见性、禁止指令重排等。

    2022年5月31日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号