1Java类加载机制和反射零散知识点
来源:互联网 发布:oracle误删除数据恢复 编辑:程序博客网 时间:2024/05/16 10:53
什么叫反射?Java程序可以动态地获取某个对象、某个类的运行时信息,并可以动态地创建Java对象,动态地调用Java方法,访问并修改指定对象的成员变量值。
JVM和类?开启一个程序,就启动了一个JVM进程,不同的JVM进程之间是不能共享资源。
类初始化:加载、连接、初始化三个步骤来对该类进行初始化三个步骤来对该类进行初始化。
类的加载:将类的class文件读入内存。
类的连接:把类的二进制数据合并到JRE中
类的初始化:1 声明类变量时指定初始值 2 使用静态初始化块为类变量指定初始值。
类加载器:类的唯一标识:全限定类名(包括包名和类名)
Java运行时会出现两种类型:编译时类型和运行时类型。
Person p=new Student();在这种情况下,p变量在编译的时候是Person类型,在运行时是Student类型,如果需要解决这种做法
1 在编译时和运行时发现对象类型和类的真实信息
2 无法知道真实信息,程序只能依靠运行时信息来发现该对象和类的真实信息,此时需要用到反射知识。
如果想获得Class对象的信息:总共有三种方法
1 Class.forName("包名+类名")
package Collection;public class ArgsTest {//public static void main// public :main程序需要被JVM调用,需要被JVM自由调用这个main()方法,所以使用public 修饰符把这个方法暴露出来//static: 调用主方法的时候 ,JVM不可能先创建该主类的对象,然后通过该对象来调用该主方法,JVM直接通过该类来调用主方法//void:返回值,因为主方法被JVM调用,该方法返回值给JVM,此处没有任何意义public static void main(String[] args) throws ClassNotFoundException {System.out.println(args.length);for(String s: args){System.out.println(s);}System.out.println(Class.forName("Collection.ArrayExpression"));System.out.println(Class.forName("Collection.Ast"));/* * 0 class Collection.ArrayExpression interface Collection.Ast */}}找不到该就会抛出ClassNotFoundException。
2 调用对象的getClass()方法
public static void main(String[] args) throws ClassNotFoundException {String s1="dsfafdsa";System.out.println(s1.getClass());3 调用调用某个类的.class属性
public static void main(String[] args) throws ClassNotFoundException {String s1="dsfafdsa";System.out.println(ArrayListTest.class);
阅读全文
0 0
- 1Java类加载机制和反射零散知识点
- Java类加载机制和反射机制
- Java类加载机制和反射
- 深入理解java:类加载机制 和 反射机制
- java反射机制知识点
- Java反射机制知识点
- Java反射机制知识点
- Java反射机制知识点
- Java反射机制知识点
- Java反射机制知识点
- 类加载机制和反射
- 类加载机制和反射
- java 加载类和反射机制的总结
- java通过反射机制加载类方法和实例方法
- java类的加载机制和反射浅析
- Java中类加载机制和反射技术
- Java中反射机制和类的加载过程
- Java类加载机制、类加载器和反射机制-思维导图
- jquery插件收集
- 将Ubuntu 16.14的用户界面语言从英语切换到汉语
- linux 下使用 ftp 下载 rpm 文件并安装时提示 rpmReadSignature 错误
- 大葱 剧毒 这批大葱检出剧毒农药!原计划运往全国,100多只羊吃葱叶死亡
- 程序逻辑问题--实验吧
- 1Java类加载机制和反射零散知识点
- leetcode 274. H-Index
- ALLEGRO学习之过孔要检查SOLDERMASK防止开窗
- 本地plsql直接配置到线上数据库
- 美光Crucial BX300 SSD评测 | 揭穿不实报道,惊不惊喜?
- react-native 中NativeBase框架500错误
- Git拉取分支代码小结以及问题解决
- 解决mysql插入中文乱码的问题
- 火狐FireFox兼容mouseover,mouseout的解决方案