當前位置:科普知識站>IT科技>

java|class。forname

IT科技 閱讀(1.3W)

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

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()是一樣的效果。

java class.forname

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;    }}