`
- 浏览:
165165 次
- 性别:
- 来自:
北京
-
new关键字和newInstance()方法的区别:
newInstance: 弱类型。低效率。只能调用无参构造。
new: 强类型。相对高效。能调用任何public构造。
一个是方法,一个是关键字外。
创建对象的方式不一样,前者是使用类加载机制,后者是创建一个新类。
Class.forName(xxx.xx.xx) 返回的是一个类,装载类用的;在java里面任何class都要装载在虚拟机上才能运行。[这个静态方法调用了启动类加载器,即加载java API的那个加载器。 ]
A a = (A)Class.forName("pacage.A").newInstance();
与
A a = new A();
是一样的效果。
Class.forName(xxx.xx.xx);
作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段,
静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了
动态加载和创建Class 对象,比如想根据用户输入的字符串来创建对象
String str = 用户输入的字符串
Class t = Class.forName(str);
t.newInstance();
ExampleInterface是Example的接口,可以写成如下形式:
String className = "Example";
class c = Class.forName(className);
factory = (ExampleInterface)c.newInstance();
进一步可以写成如下形式:
String className = readfromXMlConfig;//从xml 配置文件中获得字符串
class c = Class.forName(className);
factory = (ExampleInterface)c.newInstance();
上面代码已经不存在Example的类名称,它的优点是,无论Example类怎么变化,上述代码不变,甚至可以更换Example的兄弟类Example2 , Example3 , Example4……,只要他们继承ExampleInterface就可以。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java 中的 new 关键字和 newInstance() 方法都是用于创建对象的,但是它们之间有着本质的区别。理解这两者的区别对于 Java 编程尤其重要。 首先,new 关键字是 Java 的一个保留字,用于创建一个新的对象。例如,`A ...
### newInstance()方法与new关键字的区别 在Java编程语言中,创建对象是十分常见的操作,而`newInstance()`方法和`new`关键字则是实现这一目的的两种主要方式。它们之间的区别不仅在于一个是方法调用,另一个是语言...
Java 中 newInstance() 方法和 new 关键字的区别 Java 中的对象创建方式有多种,newInstance() 方法和 new 关键字是其中两种常用的方式。但是,它们之间有着本质的区别。本文将详细介绍 newInstance() 方法和 new ...
在Java编程语言中,`new`关键字和`newInstance()`方法都是用来创建对象的,但它们在使用场景和工作原理上存在显著差异。了解这些差异对于编写高效、灵活的代码至关重要。 首先,`new`关键字是Java语法的一部分,...
在 Java 中,有两种创建对象的方式:使用 new 关键字和使用 newInstance() 方法。 * 使用 new 关键字创建对象:例如 `String sName = new String();` * 使用 newInstance() 方法创建对象:例如 `factory = ...
Java中的`new`关键字是创建和初始化对象的关键操作,它在编程中扮演着至关重要的角色。当我们使用`new`关键字时,实际上是执行了以下几个步骤: 1. 分配内存:Java虚拟机(JVM)在堆内存中为新对象分配所需的空间。...
在Java编程中,`Class.forName()`, `newInstance()` 和 `new` 关键字都是与对象创建和类加载紧密相关的概念,但它们各自有着不同的用途和限制。 首先,`Class.forName("className")` 是一个静态方法,它用于在运行...
Class.forName()用于加载类,然后可以使用newInstance()方法创建类的新实例。例如: ```java String className = "Example"; Class<?> cls = Class.forName(className); ExampleInterface factory = ...
- **newInstance方法**: - 属于`java.lang.Class`类的方法。 - 需要在运行时通过类的完全限定名来获取类的Class对象。 - 调用`newInstance()`方法创建对象实例。 - 此方法会在创建对象之前确保类已经被加载并...
在JavaScript中,`new`关键字是一个非常重要的构造函数调用模式,它用于创建并初始化一个对象实例。`new`操作符背后的工作原理是相当复杂的,包括了对象的创建、原型链的设定以及上下文的绑定等多个步骤。在这个主题...
`new`是关键字,直接创建新对象,而`newInstance()`是方法,它需要先通过`Class.forName()`加载类,然后才能实例化。使用`newInstance()`时,类必须已经被加载并且连接,这是`Class.forName()`负责的部分。`new...
Class.forName()方法的用法可以分为两种,一种是使用Class.forName()方法加载类,然后使用newInstance()方法实例化该类,另一种是使用new关键字实例化类。两种方法的效果是一样的,但是它们的实现机制不同。Class....
private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; } } ``` 在这个示例中,`Singleton`类是`final`的,确保...
`native`关键字用于标记本地方法,这些方法是由非Java语言(如C/C++)实现的。 **示例:** ```java public native void nativeMethod(); ``` #### 30. `new` `new`关键字用于创建新对象。 **示例:** ```java ...
在Java中,`newInstance()`方法和`new`关键字是两种不同的对象创建方式。`new`关键字直接根据类名创建一个新的对象,而`newInstance()`是通过`Class`对象来创建对象,它需要先通过类加载机制将类加载到JVM中。`new...
Java中创建对象主要有四种显式的方式,分别是使用new关键字、反射机制、克隆克隆方法以及反序列化手段。每种方法都有其特定的使用场景和特点,以下是这些方法的详细说明: 1. 使用new关键字创建对象 这是最常见也是...
instance = new Singleton(); } return instance; } } ``` 3. 配置类:可以使用static关键字来创建配置类,例如: ```java public class Config { public static final String DB_URL = "jdbc:mysql://...