还有其实的方法 Class.forName()好象经常用到,是连接数据库的驱动,是吧?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【sure2003】截止到2008-07-17 21:01:59的历史汇总数据(不包括此帖):
    发帖的总数量:249                      发帖的总分数:10503                    每贴平均分数:42                       
    回帖的总数量:214                      得分贴总数量:6                        回帖的得分率:2%                       
    结贴的总数量:246                      结贴的总分数:10403                    
    无满意结贴数:2                        无满意结贴分:50                       
    未结的帖子数:3                        未结的总分数:100                      
    结贴的百分比:98.80 %               结分的百分比:99.05 %                  
    无满意结贴率:0.81  %               无满意结分率:0.48  %                  
    值得尊敬
      

  2.   

    就是.class文件的类,可以访问和操作.class文件,看看API,你便懂了
      

  3.   

    Class.forName()是加载指定的类。
    比如Class.forName("Student");
    就是加载Student类。
    Class.forName("Student").newInstance();
    就是创建一个Student的对象。
      

  4.   

    首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。 
    至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。 
    A a = (A)Class.forName("pacage.A").newInstance(); 
    这和你 
    A a = new A(); 
    是一样的效果。 关于补充的问题 
    答案是肯定的,jvm会执行静态代码段,你要记住一个概念,静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了。而且以后不会再走这段静态代码了。 
    你可以编个小程序看看就知道了
      

  5.   

    LZ看看反射机制就明白了,Class<T>代表泛型
      

  6.   

    跟import不一样,import是编译时行为。
    Class是运行时信息
      

  7.   

    因为在做数据链接的时候可以根据不同的字符串,来初始化你所需要的数据库驱动类,
    这是用到了发射机制,详细了解可以看看java基础的反射相关的章节