網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

class。forname|java

欄目: IT科技 / 發佈於: / 人氣:1.19W

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

Tags:java