怎样理解java中反射机制?
如jdbc加载驱动时用:Class.forName(driver);等

解决方案 »

  1.   

    http://baike.baidu.com/view/1865203.htm
      

  2.   

    Class.forName("这里面接完整的包名+类名");
      

  3.   

    class.forname("drivername");
    是创建一个驱动对象
    在驱动类中有一个静态初始化块
    private Driver implements Driver{
    static(){DriverManager.setDriver(new Driver());}}
    看懂了吧??
    刚刚入职、没事干、
      

  4.   

    forName("ss.bb.bean"), 
    JVM会在classapth中去找对应的类,设定在classpath的类,在java启动的时候最先被加载,并将Class对象保存起来,这样forName创建对象时就不需要通过classloader再去读取该类的文件了。而new 一个对象,一般不需要该类在classpath中设定,但可能需要通过classlaoder来加载。
           当你确定此时内存中没有这个对象的时候,你就可以用class.forName();来创建一个对象,而假如new是不管你内存中是否有这个对象都会创建一个新的对象,也是说会在内存中开辟一个新的内存空间希望对你有帮助
      

  5.   

    可以这么理解,.java(源代码)会编译成一个.class(字节码),然后我们可以根据这个.class得到.java的信息,至于Class.forname("xx.xx");楼上解释很清楚了
      

  6.   

     如里用c语言
      你能在程序运行的时候获得函数名吗? 显示是不能的 而java通过反射机制,可以,不仅方法名,还有其他一系列的元数据
      

  7.   

    通俗点说,正常是通过认识人了解到这个人的各项信息(姓名、住址等),放射就是通过姓名去找这个人。当然在java语言中还有动态加载的作用。
      

  8.   

    在JAVA的世界里面,反射就是神一样的存在.能够把你预先定义好的类实例化以后.在jvm中改的面目全非.还有很多完全打破java的规则的能力.