java学习:反射机制

1.反射机制的作用

        通过java语言种的反射机制可以修改操作字节码文件。优点类似于黑客、可以读和修改字节码文件。通过反射机制可以操作代码片段。(class文件)

2.反射机制的相关类在哪个包下

        java.lang.reflect.*

3.反射机制的相关类有哪些

  1. java.lang.Class        代表整个字节码,代表一个类型
  2. java.lang.reflect.Method        代表字节码种的方法字节码
  3. java.lang.reflect.Constractor        代表字节码种的构造方法字节码
  4. java.lang.reflect.Field        代表字节码种的属性字节码
  5. java.lang.Class
        public class User{
            //Field
            int no;
            //Constructor
            public User(){
            }
            public User(int no){
                this.no = no;
            }
            public void setNo(int no){
                this.no = no;
            }
            public int getNo(){
                return no;
            }
        }

4.获取class的三种字节码

  1. static Class<?> forName(String className)
    1. 返回与带有给定字符串名的类或接口相关联的 Class 对象。
    2. 静态方法
    3. 方法的参数是一个字符串
    4. 字符串需要一个完整类名
    5. 完整类名必须带有包名。java.lang包也不能省略
    6. Class c1 = Class.forName("java.lang.String");

      代表String类型

  2. final Class<?> getClass()
    1. 返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
    2. 实际结果类型是 Class<? extends |X|>,其中 |X| 表示清除表达式中的静态类型,该表达式调用 getClass
    3. String s = "abc"
      Class x = s.getClass();

      x代表String类型

  3. java语言中任何一种任何一种类型,包括基本数据类型,都有.class属性

    1. Class a = String.class

      a代表String类型

5.反射机制的灵活性

java代码写一遍不再改变java源代码的基础之上,可以做到不同对象的实例化。非常灵活

Spring,SpringMVC等高级框架底层实现原理都采用了反射机制。学习了反射机制有利于理解剖析底

6.如果只希望一个类的静态代码块执行,其他代码一律不执行。可以使用Class.forName("完整类名");Class.forName()这个方法执行会导致类加载,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值