最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談java中類名.class, class.forName(), getClass()的區(qū)別

 更新時間:2017年05月18日 07:37:02   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談java中類名.class, class.forName(), getClass()的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Class對象的生成方式如下:

1、類名.class   

說明: JVM將使用類裝載器, 將類裝入內(nèi)存(前提是:類還沒有裝入內(nèi)存),不做類的初始化工作.返回Class的對象

2、Class.forName("類名字符串")  (注:類名字符串是包名+類名) 

說明:裝入類,并做類的靜態(tài)初始化,返回Class的對象

3、實例對象.getClass() 

說明:對類進(jìn)行靜態(tài)初始化、非靜態(tài)初始化;返回引用o運行時真正所指的對象(因為:子對象的引用可能會賦給父對象的引用變量中)所屬的類的Class的對象

通過下面的程序,來觀察一下Class對象的生成的原理。

public class TestClass {
public static void main(String[] args)
{

try {
//測試.class

Class testTypeClass=TestClassType.class;

System.out.println("testTypeClass---"+testTypeClass);


//測試Class.forName()

Class testTypeForName=Class.forName("TestClassType");    

System.out.println("testTypeForName---"+testTypeForName);


//測試Object.getClass()

TestClassType testTypeGetClass= new TestClassType();

System.out.println("testTypeGetClass---"+testTypeGetClass.getClass());

 

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}
}

}

 class TestClassType{

//構(gòu)造函數(shù)

public TestClassType(){

System.out.println("----構(gòu)造函數(shù)---");

}

//靜態(tài)的參數(shù)初始化

static{

System.out.println("---靜態(tài)的參數(shù)初始化---");

}

//非靜態(tài)的參數(shù)初始化

{

System.out.println("----非靜態(tài)的參數(shù)初始化---");

}    

}

測試的結(jié)果如下:

testTypeClass---class TestClassType

---靜態(tài)的參數(shù)初始化---

testTypeForName---class TestClassType

----非靜態(tài)的參數(shù)初始化---

----構(gòu)造函數(shù)---

testTypeGetClass---class TestClassType

根據(jù)結(jié)果可以發(fā)現(xiàn),三種生成的Class對象一樣的。并且程序只打印一次“靜態(tài)的參數(shù)初始化”。

我們知道,靜態(tài)的方法屬性初始化,是在加載類的時候初始化。而非靜態(tài)方法屬性初始化,是new類實例對象的時候加載。

因此,這段程序說明,三種方式生成Class對象,其實只有一個Class對象。在生成Class對象的時候,首先判斷內(nèi)存中是否已經(jīng)加載。

所以,生成Class對象的過程其實是如此的:

當(dāng)我們編寫一個新的java類時,JVM就會幫我們編譯成class對象,存放在同名的.class文件中。在運行時,當(dāng)需要生成這個類的對象,JVM就會檢查此類是否已經(jīng)裝載內(nèi)存中。若是沒有裝載,則把.class文件裝入到內(nèi)存中。若是裝載,則根據(jù)class文件生成實例對象。

以上這篇淺談java中類名.class, class.forName(), getClass()的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Security 強(qiáng)制退出指定用戶的方法

    Spring Security 強(qiáng)制退出指定用戶的方法

    本篇文章主要介紹了Spring Security 強(qiáng)制退出指定用戶的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Java Jackson之ObjectMapper常用用法總結(jié)

    Java Jackson之ObjectMapper常用用法總結(jié)

    這篇文章主要給大家介紹了關(guān)于Java Jackson之ObjectMapper常用用法的相關(guān)資料,ObjectMapper是一個Java庫,用于將JSON字符串轉(zhuǎn)換為Java對象或?qū)ava對象轉(zhuǎn)換為JSON字符串,需要的朋友可以參考下
    2024-01-01
  • SpringBoot獲取http數(shù)據(jù)、打印HTTP參數(shù)的4種方式

    SpringBoot獲取http數(shù)據(jù)、打印HTTP參數(shù)的4種方式

    Java的話本地打斷點可以調(diào)試獲取rest入?yún)?但是在生產(chǎn)環(huán)境可能我們獲取入?yún)ⅲ℉ttp?header/parameter)可能就沒有那么的輕松了,所以本文給大家介紹了SpringBoot獲取http數(shù)據(jù)、打印HTTP參數(shù)的4種方式,需要的朋友可以參考下
    2024-03-03
  • Spring?Boot簡單實現(xiàn)文件上傳功能

    Spring?Boot簡單實現(xiàn)文件上傳功能

    這篇文章主要介紹了Spring?Boot簡單實現(xiàn)文件上傳功能,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • struts2自定義攔截器的示例代碼

    struts2自定義攔截器的示例代碼

    本篇文章主要介紹了struts2自定義攔截器的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • minio的下載和springboot整合minio使用方法

    minio的下載和springboot整合minio使用方法

    本文介紹了如何通過Docker拉取MinIO鏡像,并創(chuàng)建MinIO容器的過程,首先,需要在本地創(chuàng)建/data和/conf兩個目錄用于掛載MinIO的數(shù)據(jù)和配置文件,接下來,通過docker?run命令啟動容器,設(shè)置MinIO的訪問端口、用戶名、密碼等信息,感興趣的朋友一起看看吧
    2024-09-09
  • 利用Java理解sql的語法(實例講解)

    利用Java理解sql的語法(實例講解)

    下面小編就為大家分享一篇利用Java理解sql的語法(實例講解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • idea使用easyCode生成代碼(根據(jù)mybatis-plus模板創(chuàng)建自己的模板)

    idea使用easyCode生成代碼(根據(jù)mybatis-plus模板創(chuàng)建自己的模板)

    本文主要介紹了idea使用easyCode生成代碼,easyCode代碼生成器可以減少低價值搬磚,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 詳解springboot整合ehcache實現(xiàn)緩存機(jī)制

    詳解springboot整合ehcache實現(xiàn)緩存機(jī)制

    這篇文章主要介紹了詳解springboot整合ehcache實現(xiàn)緩存機(jī)制,ehcache提供了多種緩存策略,主要分為內(nèi)存和磁盤兩級,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 普通類注入不進(jìn)spring bean的解決方法

    普通類注入不進(jìn)spring bean的解決方法

    這篇文章主要介紹了普通類注入不進(jìn)spring bean的解決方法,幫助大家更好的理解和使用spring bean,感興趣的朋友可以了解下
    2021-01-01

最新評論

玉屏| 繁昌县| 商河县| 苗栗县| 莱州市| 乐安县| 思南县| 日喀则市| 青田县| 翁源县| 三穗县| 白河县| 华阴市| 开远市| 玛多县| 萨迦县| 雷山县| 虹口区| 双城市| 科尔| 泸水县| 田东县| 郯城县| 丰县| 伽师县| 凤冈县| 商都县| 子长县| 绥化市| 左权县| 华蓥市| 通州市| 宜昌市| 积石山| 淮阳县| 沧源| 宁陵县| 沙雅县| 黄山市| 尼玛县| 禄劝|