java class.forname

作者:原创时间:2022-03-25
文档

java class.forname是什么,让我们一起了解一下:

forName是装载类用的,在java里面任何class都要装载在虚拟机上才能运行,java.lang.Class类的forName()方法用于获取具有指定类名的该Class的实例,此类名称指定为字符串参数。

java中Class.forName的作用是什么?

首先在java里面任何class都要装载在虚拟机上才能运行。

1、 forName这句话就是装载类用的(new是根据加载到内存中的类创建一个实例,要分清楚)。 

至于什么时候用,可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?

A a = (A)Class.forName("pacage.A").newInstance()与A a = new A()是一样的效果。

2、jvm在装载类时会执行类的静态代码段,要记住静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了,而且以后不会再执行这段静态代码了。

Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。

3、动态加载和创建Class 对象,比如想根据用户输入的字符串来创建对象。

String str = 用户输入的字符串  
Class t = Class.forName(str);  
t.newInstance();

另外,Book也是一个独一无二的Class对象,即对象中的对象。

通过Book.java类的代码如下:

package com.junit.demo;
public class Book {
    private static final String defName = "《程序猿植发》";
    static {
        System.out.println("我是静态代码块,输出: " + defName);
    }
    //打印生产日期:
    public static String printProduceDate(String name) {
        return "我是静态方法printProduceDate,输出: " + name + ", produce is:" + System.currentTimeMillis();
    }
    private String name;
    public Book() {
        System.out.println("我是Book声明的构造方法!");
        name = defName;
    }
    public String toString(String msg) {
        return name + msg;
    }
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java classloader java clob java clone() java collect java collections java color java combobox java comet 山楂干泡水最佳搭配 java commandline java comparable接口 java compiler java config java console java console.log 复活节的由来 java const java consumer接口 统一和康师傅是哪国的 怎么删掉word中的空白页 java class java cipher java charset java charsequence java charat java channel iPad怎么重启 java cglib 平板如何录屏 java ceiling java callback java calendar获取当前时间 苹果13怎么开机 java calculate java byte取值范围 java bytebuffer java bundle java build.gradle java bufferedoutputstream java bufferedimage