• 71760

    文章

  • 657

    评论

  • 17

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

了解Java反射

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

要学习Jvav反射,首先我们要了解以下几点

  • 什么是Java反射
  • 获取class对象的三种方式

一、Java反射:将类的各个组成部分封装为其他对象,这就是反射机制。

这样的好处是:

可以在程序运行的过程中,操作这些对象

  1. 可以解耦,提高程序的可扩展性(解耦;
    有的时候程序需要修改,我只需要改正一部分,单是如果程序的耦合性很强的话就需要从头再写一遍很不划算,而正常的开发中都是改那部分,重写那部分,把配置文件一改就成了,java中通过接口(interface),spring技术中的ioc等实现的解耦合
    重写覆盖父类的方法也是一种解耦行为

反射是框架设计的灵魂 ,就是说,如果你想要写一个框架,反射是必须要学会的。反射是框架的灵魂,就好比一个人,没有了灵魂就不能称之为人,框架也是一样。(个人理解)

使用反射的前提条件是:必须先得到代表的字节码的Class,即.class文件(字节码)

二、获取class对象的三种方式

  1. Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象

           *多用于配置文件,将类名定义在配置文件中。读取文件,加载类

     

     2.类名.class:通过类名的属性class获取

        *多用于参数的传递

      

     3.对象.getClass(): getClass()方法在Object类中定义。

        *多用于对象的获取字节码的方式

      

通过比较这三个获取到的值,我们可以得出一个结论:

    *同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个 

学习过程中避免不了出错:看一下学习反射过程中常见的错误有:

这个是说你类名写错了


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客