java反射 pdf_java反射学习笔记整理.pdf

java反射学习笔记整理.pdf

180f903d9b67c91ce1609298a511ab4f.gif

还剩

15页未读,

继续阅读

下载文档到电脑,马上远离加班熬夜!

亲,很抱歉,此页已超出免费预览范围啦!

如果喜欢就下载吧,价低环保!

内容要点:

Java 反射笔记整理 背景介绍 反射的概念是由 Smith 在 1982 年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用 ,并在 Lisp 和面向对象方面取得了成绩。 其中 LEAD/LEAD++ 、 OpenC++ 、 MetaXa 和OpenJava 等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。 在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。 也就是说,这类应用通过采用某种机制来实现对自己行为的描述( self-representation)和监测( examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 一般来说,反射系统除了满足开放性条件外还必须满足原因连接( Causally-connected)。所谓原因连接是指对反射系统自描述的改变能够立即反映到系统底层 的实际状态和行为上的情况,反之亦然。开放性和原因连接是反射系统的两大基本要素。 Java 中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接。 反射允许我们在编写与执行时,使我们的程序代码能够接入装载到 JVM 中的类的内部信息,而不是源代码中选定的类协作的代码。这使反射成为构建灵活的应用的主要工具。但需注意的是:如果使用不当,反射的成本很高。 Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审 ”,并能直接操作程序的内部属性。 Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。 例如, Pascal、 C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。 第一部分 package reflect; public class ReflectTest1 { /** [email protected] * *反射的初步例子展示 *1、类和对象的区别、类是从许许多多的对象中抽象提取出来的 *2、 java应用程序分为编译阶段、运行期两个阶段 *3、编译阶段为编译器将 java源代码编译成二进制字节码、运行期由 java虚拟机将需要使用的 java类字节码通过类加载器加载到内存中 *4、 java虚拟机通过加载到的字节码、在需要生成对象的时候通过字节码 new出一个个的实例对象 * [email protected] args * @throws ClassNotFoundException */ public static void main(String[] args) throws ClassNotFoundException { //反射就是将 java的各个成分映射成 java类 //在 java类的世界里有许多类比如 String类、 Integer类、 StringBuffer类等等 //将这些类对象再抽象成一个 Class类、包含类名、包名、接口、字段、方法等属性 //反射的基本使用方法 Java 反射笔记整理 String s1 = "hellojava"; Class c1 = s1.getClass(); //获得 s1对象的类对象 Class c2 = String.class; //通过类 .class方式获取类对象 Class c3 = Class.forName("java.lang.String"); //经常使用的方式获取 String类对象 System.out.println(c1 ==

发表评论

暂无评论,赶快抢占沙发吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

变态跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。题解 简要提炼思路: 1、有n个台阶,则每次可以跳1,2,3,,,n个…

[vue] 动态给vue的data添加一个新的属性时会发生什么?怎样解决?

[vue] 动态给vue的data添加一个新的属性时会发生什么?怎样解决? 如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。如果想要使添加的值做到响应式,应当使用$set()来添加对象。个人简介 我是歌谣,欢迎和大…

Python学习 :面向对象 -- 成员修饰符

成员修饰符 两种成员 - 公有成员 - 私有成员, __字段名 - 无法直接访问,只能通过内部方法来间接访问私有成员 简例:公有成员与私有成员 class Info:country 中国 # 静态字段 __gender 男 # 静态字段私有化def __init__(self,name,age):self.nam…

[vue] SPA首屏加载速度慢的怎么解决?

[vue] SPA首屏加载速度慢的怎么解决? 1.通过Gzip压缩 2.使用路由懒加载 3.利用webpack中的externals这个属性把打包后不需要打包的库文件都分离出去,减小项目打包后的大小 4.使用SSR渲染个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放…

Visual Basic .NET处理Excle表格全接触

Visual Basic .Net处理Excel表格机理和处理Word文档一样,也是通过互操作,引入COM组件来实现的,所以前提条件是运行本文中介绍的程序的计算机必须安装Office 2000中的Excel软件。如果计算机安装的Office 2000,那么这个COM组件就是M…

java读文件几种方式_Java读取文件的几种方式

import java.io.*;public class ReadFromFile {/*** 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。*/public static void readFileByBytes(String fileName) {File file new File(fileName);InputStream in null;try {System.o…

Django-视图层

视图函数 视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应。 无论视图本身包含什么逻辑,都要返回响应 请求对象 urls.py from django.contrib import admin from django.urls import path,re_pathfrom a…

aspnet_UsersInRoles_GetUsersInRoles

ALTERPROCEDUREdbo.aspnet_UsersInRoles_GetUsersInRoles --查询某角色的用户ApplicationNameNVARCHAR(256), RoleNameNVARCHAR(256)ASBEGINDECLAREApplicationIdUNIQUEIDENTIFIERSELECTApplicationIdNULLSELECTApplicationIdApplicationId FROMaspnet_Applications WHERELO…

[vue] 你认为vue的核心是什么?

[vue] 你认为vue的核心是什么? 两部分 一部分 数据->虚拟dom->dom, 另一部分 响应式数据 这两部分大大节省了开发者对数据变动转换到页面显示的操作,可以让开发者聚焦业务,聚焦数据的处理。个人简介 我是歌谣,欢迎和大家一…

java keyadapter_在java中使用keyAdapter和keyEvent时出错

我是编程的初学者,我一直在研究一个小项目,众所周知的叫做Tetris的游戏,我遇到了这个小问题,我希望你能帮助我解。我导入了:import java.awt.event.KeyAdapter和 import java.awt.event.KeyEvent能够使用我的键盘玩游戏…

luogu4365 秘密袭击 (生成函数+线段树合并+拉格朗日插值)

求所有可能联通块的第k大值的和,考虑枚举这个值: $ans\sum\limits_{i1}^{W}{i\sum\limits_{S}{[i是第K大]}}$ 设cnt[i]为连通块中值>i的个数 $ans\sum\limits_{i1}^{W}{i\sum\limits_{S}{[cnt[i]>K]-[cnt[i1]>K]}}$ $ans\sum\limits_{i1}^{W}{\sum\limits_…

学习程序开发的方法,仅供参考吧

感觉很多学习程序开发的新手,方法不对,浪费了大量时间。而j2ee由于技术分支多,学习的人更是找不到主线。其实很多东西,说白了很简单的。 还是那句老话,怕就怕走错路,走对了其实很容易。 j2ee害人的地方就是…

[vue] vue常用的修饰符有哪些?列举并说明

[vue] vue常用的修饰符有哪些?列举并说明 .trim .number .stop .prevent个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

java对象流读取完毕_从Java 8流中获取具有最大频率的对象

我有一个带有city和zip字段的对象,我们称之为Record.public class Record() {private String zip;private String city;//getters and setters}现在,我有一些这些对象的集合,我使用以下代码通过zip对它们进行分组:final Collection records; //populated collection…

Jenkins二 安装gitlab及其使用

git --version 如果没有安装git直接源码安装即可,如果安装了先删除原来的git。 yum -y remove git先安装编译git需要的包。 yum install zlib-devel perl-CPAN gettext curl-devel expat-devel gettext-devel openssl-devel下载&安装 去gitlab官网 https://abou…

编程使用资源文件实现多语言页面(In Action)

需求&#xff1a;我们的ASP.NET站点需要提供多语言支持&#xff0c;考虑到我们使用的是ASP.NET2.0&#xff0c;我们可以利用资源文件来实现。 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />NOTE:这里我们使用编程的方法实现&a…

[vue] vue怎么获取DOM节点?

[vue] vue怎么获取DOM节点&#xff1f; 1、document.getElementById("id")2、this.$refs.xx还有一些特殊的&#xff0c;比如this.$root、this.$parent、this.$children个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一…

java final内存机制_Java中的内存处理机制和final、static、final static总结

装载自&#xff1a;http://blog.csdn.net/wqthaha/article/details/20923579Java程序运行在JVM上&#xff0c;可以把JVM理解成Java程序和操作系统之间的桥梁&#xff0c;JVM实现了Java的平台无关性&#xff0c;由此可见JVM的重要性。所以在学习Java内存分配原理的时候一定要牢记…

[vue] vue过渡动画实现的方式有哪些?

[vue] vue过渡动画实现的方式有哪些&#xff1f; 1.使用vue的transition标签结合css样式完成动画 2.利用animate.css结合transition实现动画 3.利用 vue中的钩子函数实现动画个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很…

MySQL中的字符集涵义及使用方法总结(二)

五.乱码的避免最好让上述9个字符集变量值保持一致&#xff0c;或者至少“兼容”&#xff0c;同时也要考虑到OS中locale的值。当然&#xff1a;character_set_system例外&#xff0c;它是存储和表示元信息使用的字符集&#xff0c;一般都是ascii串&#xff0c;使用utf8和使用lat…