标签:变量 输出 输入 序列 函数 地址 one 序列化 git
当诸君在使用idea或者eclipse/vscode等代码编辑器时,有没有想过当你在字符串后面或者一个类实例后输入.的时候
后面跟随出来的字符串方法以及类内方法调用是怎样给出提示的?
The answer is 反射.
反射的具体介绍
反射存在的意义
3.实现通用的数组操作代码
4.类似函数指针的功能
首先,创建一个对象有4种方法:
1. new出来
2. clone一个 (类实现Cloneable以备克隆)
3. 序列化读取对象 readObject
4. 反射 newInstance
反射还可以调用到类中的成员变量和成员方法
get方法中含有Declared的一般是调用类本身内的以及私有的(变量,方法)
在SomeClassC中,这个序列化可以很明白的理解序列化的意义了,不过序列化要在将来的JDK版本被移除.
这个类没有什么特殊性,就是一个clone,clone一个对象,两个对象一样,但是内存地址不同.类似复制一个桌面文件,文件内容一样,但是文件名(内存地址)不能重复放到一个磁盘.
最有趣的是调用方法,这里可以看到调用本类的f1方法进行输出打印,调用了String类里面的hashCode以及toString方法进行字符串的hashCode计算以及字符串的toString输出.
github
https://github.com/deadzq/reflect-demo
如何理解java中的反射机制,为什么利用反射可以写开源框架?(1)
标签:变量 输出 输入 序列 函数 地址 one 序列化 git
原文地址:https://www.cnblogs.com/ukzq/p/12515319.html