Java中new关键字和newInstance方法的区别

  在初始化一个类,生成一个实例的时候,newInstance()方法和new关键字除了一个是方法一个是关键字外,最主要的区别是创建对象的方式不同。newInstance()使用类加载机制,new是创建一个新类。
  从JVM角度看,使用new创建一个类的时候,这个类可以没有被加载。但是使用newInstance()方法的时候,就必须保证这个类已加载且类已经连接了。

String className="test";
Class c=Class.forName(className);
factory=(ExampleInterface)c.newInstance();

  newInstance():若类型。低效率,只能调用无参构造方法,适用于工厂模式;

    new:强类型。相对高效。能调用任何public构造方法

 

时间: 2024-08-01 18:36:00

Java中new关键字和newInstance方法的区别的相关文章

Java中new关键字和newInstance方法的区别分享

在初始化一个类,生成一个实例的时候,newInstance()方法和new关键字除了一个是方法一个是关键字外,最主要的区别是创建对象的方式不同   newInstance()使用类加载机制,new是创建一个新类. 从JVM角度看,使用new创建一个类的时候,这个类可以没有被加载.但是使用newInstance()方法的时候,就必须保证这个类已加载且类已经连接了. 复制代码 代码如下: String className="test"; Class c=Class.forName(clas

Java中new关键字和newInstance方法的区别分享_java

newInstance()使用类加载机制,new是创建一个新类.从JVM角度看,使用new创建一个类的时候,这个类可以没有被加载.但是使用newInstance()方法的时候,就必须保证这个类已加载且类已经连接了. 复制代码 代码如下: String className="test";Class c=Class.forName(className); factory=(ExampleInterface)c.newInstance(); newInstance():若类型.低效率,只能调

javase-JAVA中final关键字在不同位置的区别

问题描述 JAVA中final关键字在不同位置的区别 public void method1(final Object obj) { new AnonymousClass() { obj.invoke(); } } 与 public void method1(Object obj) { final Object tmpObj = obj; new AnonymousClass() { tmpObj .invoke(); } } 之间有区别吗?主要的区别是什么? 解决方案 final修饰变量意思这

Java 中的关键字 final

final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修 饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final类不 能被继承,没有子类,final类中的方法默认是final的. final方法不能被子类的方法覆盖,但可以被继 承. final成员变量表示常量,只能被赋值一次,赋值后值不再改变. final不能用于修饰构造方法. 注意:父类的private成员方法是不能被子类方法

java中没有方法体的方法是什么方法,

问题描述 java中没有方法体的方法是什么方法, java中没有方法体的方法是什么方法,省略方法体的方法是什么方法,如何区分一个没有方法体的方法到底是省略了方法体还是木有方法体? 解决方案 Java规范中没有或方法体为空的方法主要包括:抽象方法.接口方法.native修饰的本地方法. 如果非要语言化表述,应该可以这样描述: 抽象类中的方法--方法体为空 接口中的方法--没有方法体 本地方法--方法体需要被省略 解决方案二: 你说的应该是抽象方法,或者是写在接口中的函数定义.定义为abstract

java中 静态类.静态方法 。类.方法。 静态类.方法。 对象.方法。他们之间的区别是什么?

问题描述 java中 静态类.静态方法 .类.方法. 静态类.方法. 对象.方法.他们之间的区别是什么? java中 静态类.静态方法 .类.方法. 静态类.方法. 对象.方法.他们之间的区别是什么? 解决方案 [少废话,上代码]: // 外部类,不能是静态的 public class OuterClass { // 静态方法,又称为类方法,属于Test类 public static void staticFun() { } // 非静态方法,又称为实例方法,属于Test类的具体实例 publi

谈谈Java中Volatile关键字的理解_java

volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以重获生机.volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情. 一.前言 JMM提供了volatile变量定义.final.synchronized块来保证可见性. 用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值.volatile很容

Java中final关键字详解_php技巧

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. 主要介绍:一.final关键字的基本用法.二.深入理解final关键字 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能

详解Java中native关键字_java

 一. 什么是Native Method   简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C.这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数.    "A native method is a Java method whose implementatio