`
darkjune
  • 浏览: 301865 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

new Class() 与 Class.newInstance()

    博客分类:
  • java
阅读更多

 

new Test()的过程基本等于:

 Class clazz = Class.forName("Test"); 

 clazz.newInstance();

第一步由类加载器查找类路径下的目标类,并加载类实例,对应到JVM就是加载到了方法区。

第二步类实例加载完成后生成对象实例,实例数据保存在JVM的Heap中。

 

new Clazz()可以直接由IDE检查类的存在, Class.forName只有到运行时才能知道类是否存在,所以经常用于需要反射

的基础设施代码。通过将类初始化过程拆成两步,可以像spring一样将需要加载的类名配到xml等配置文件中,再在初始化的

时候由框架代码将需要的类加载到类加载器中,这是new关键字无法做的。

分享到:
评论

相关推荐

    Class.forName()_newInstance()_New_三者区别

    Java中 Class.forName()_newInstance()_New_三者区别。

    java连接数据库字符串

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //Sql Server7.0/2000数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); //DB2数据库 Class....

    Android代码-TypeBuilder

    .newInstance(List.class) .addTypeParam(String.class) .build(); Example for List<? super String> Type type = TypeBuilder .newInstance(List.class) .addTypeParamSuper(String.class) .build(); ...

    java 反射简单用例

    java反射的用例代码 // //获取类对象的属性 // Field field = clazz.getDeclaredField("name");...// Object instance = constructor.newInstance(new Object[]{1, "李四", "中国"}); // System.out.println(instance);

    Oracle命令大全

    Object userDao = userDaoClass.newInstance(); Class userServiceClass = Class.forName(config .getInitParameter("userService")); Constructor cons1 = userServiceClass.getConstructor(UserDao...

    jdbc笔记整理 sql

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //Sql Server7.0/2000 数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); //DB2 数据库 Class.froName(...

    jdbc驱动程序实例

    Class.forName("org.gjt.mm.mysql.Driver").newInstance(); //或者Class.forName("com.mysql.jdbc.Driver"); String url ="jdbc:mysql://localhost/myDB? user=soft&password=soft1234&useUnicode=true&...

    Thinking in Java 4th Edition

    instance initialization ................ 132 Array initialization ............. 133 Variable argument lists ............. 137 Enumerated types ............... 141 Summary ............................ ...

    Java 高级特性.doc

    String obj = (String)Class.forName("java.lang.String").newInstance(); 这是制造另一个章:Class.forName("java.lang.Integer") --------------------- 讲Constructor://构造方法 Constructor constructors[]...

    Java 反射(Reflection) 经典实用例子

    public Object newInstance(String className, Object[] args) throws Exception { Class newoneClass = Class.forName(className); Class[] argsClass = new Class[args.length]; for (int i = 0, j = ...

    SQLAlchemy Documentation

    2.1.5 Create an Instance of the Mapped Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.6 Creating a Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....

    JAVA核心知识点整理(有效)

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    tkinter.pdf

    New Mexico Tech Computer Center 7.5. CanvastagOrId arguments......................................................................................21 7.6. Methods on Canvas widgets........................

    java中Class.forName的作用浅谈

    介绍了java中Class.forName的作用,有需要的朋友可以参考一下

    Tkinter 8.4 reference - a GUI for Python (2010).pdf

    New Mexico Tech Computer Center 7.5. CanvastagOrId arguments......................................................................................21 7.6. Methods on Canvas widgets........................

    Java Class.forName()用法和newInstance()方法原理解析

    主要介绍了Java Class.forName()用法和newInstance()方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    基于extjs的.NET3.5控件Coolite 1.0.0.34580(Preview预览版)

    59. Removed the static Instance method from Ext.Net.MessageBox class. The MessageBox class was changed from an Singleton to just a standard (non-singleton) class. Using the X.Msg Helper is ...

    fluent-hc-4.2.2.jar用于设置代理

    String resp= Executor.newInstance() .auth(entry, "fd", "123")//账密 .execute(Request.Get("http://www.baidu.com").viaProxy(entry)) .returnContent().asString(); System.out.println(resp); } } 推荐...

    传智博客jdbc学习案例

    userDao = (UserDao) clazz.newInstance(); } catch (Throwable e) { throw new ExceptionInInitializerError(e); } } public static DaoFactory getInstance() { return instance; } public ...

    java反射配置文件实现

    Object obj=c.newInstance(); // 创建实例, 生成对象; Constructor con=c.getDeclaredConstructor(String.class,int.class); // 反映此 Class 对象所表示的类或接口的指定构造方法。 /* 跟 Student类中的两个参数...

Global site tag (gtag.js) - Google Analytics