java的反射机制带来的好处_线程安全与线程不安全

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


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

什么是反射

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

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

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

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

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

在这里插入图片描述

反射优点

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

在这里插入图片描述

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

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

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

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

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

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

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


相关推荐

  • 接口定义

    接口定义1、什么是接口接口一般来讲分为两种程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛

    2022年7月1日
  • python中矩阵的转置_[转]Python中的矩阵转置[通俗易懂]

    python中矩阵的转置_[转]Python中的矩阵转置[通俗易懂]Python中的矩阵转置via需求:你需要转置一个二维数组,将行列互换.讨论:你需要确保该数组的行列数都是相同的.比如:arr=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]列表递推式提供了一个简便的矩阵转置的方法:print[[r[col]forrinarr]forcolinrange(len(arr[0]))][[1,4…

    2022年5月29日
  • 教育邮箱申请pycharm_python注册用户名和密码登录

    教育邮箱申请pycharm_python注册用户名和密码登录学生注册教育邮箱的方法不知道如何注册教育邮箱的看我上篇文。注册之后都会给登录的网址和初始密码。接下来进入这个网址JetBrains学生注册点击learnmore后,一直下拉点击applynow他会有一个信息表的填写进行申请后会发两个邮件,如下图,点击联接进行操作即可,网上说这个申请比较慢,我觉得还可以,可能是因为早上的关系,出现这个界面就说明注册成功了直接安装好pycharm的专业版在登录的时候直接填写我们的账号和密码就成功了,会显示使用终止…

    2022年8月28日
  • n皇后问题描述_启发式算法解决N皇后问题

    n皇后问题描述_启发式算法解决N皇后问题在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。Input共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。SampleInput

    2022年9月29日
  • html滚动字幕制作教程,dreamweaver教程:怎么制作网页滚动字幕[通俗易懂]

    html滚动字幕制作教程,dreamweaver教程:怎么制作网页滚动字幕[通俗易懂]滚动字幕在FrontPage的组件里有,但是FrontPage这个软件只能支持单行文字,一出现多行文字它就无能为力了,而且它只能支持一行滚动!(如果出现只能滚动一行的情况,解决办法是把这段代码嵌入到JavaScript的document.write里面,请看下面例的详细说明)Dreamweaver也只能用编写HTML代码的方法。所以强烈建议用记事本打开网页源代码来编辑。1.建立第一个滚动字幕。代码…

    2022年6月9日
  • linux 移动 文件,linux移动文件命令[通俗易懂]

    linux 移动 文件,linux移动文件命令[通俗易懂]linux移动文件命令mv命令功能:为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。语法:mv[选项]源文件或目录目标文件或目录说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源…

    2022年10月6日

发表回复

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

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