A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 敗唫①輩ふ 中级黑马   /  2013-11-8 18:07  /  1067 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 敗唫①輩ふ 于 2013-11-8 20:51 编辑

package org.qyx.online;

public class TestClassForName {

        public static void main(String[] args) {
                try {
                        Class.forName("org.qyx.online.Other");//下边的类B
                } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                }
        }
}

class Other {
        static {
                System.out.println("Other's Static");
        }
}
打印出来:Other's Static 。为什么、这个Class.forName()和static有什么关系呢?{:soso_e117:}

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

2 个回复

倒序浏览
静态代码块随类本身一起加载,Class.forName就是加载类进入JVM

评分

参与人数 1黑马币 +8 收起 理由
敗唫①輩ふ + 8 很给力!

查看全部评分

回复 使用道具 举报
Class.forName("org.qyx.online.Other");
这个返回的是一个类,相当于Other o = Class.forName("org.qyx.online.Other");
加载Other时,初始化,执行静态代码块

评分

参与人数 1黑马币 +8 收起 理由
敗唫①輩ふ + 8 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马