欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)靜默加載Class示例代碼

 更新時(shí)間:2017年10月17日 11:13:31   作者:蔣固金  
這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)靜默加載Class的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

前言

本文主要介紹了關(guān)于java靜默加載Class的相關(guān)內(nèi)容,之所以有這篇文章,是因?yàn)橛袝r(shí)候在開(kāi)發(fā)的時(shí)候,我們有這樣的場(chǎng)景,我們只想得到一個(gè)Class的基本信息,但是并不想觸發(fā)相關(guān)的靜態(tài)代碼塊,在之前的一篇《JAVA掃描包》文章中就用到了這種方式,我將其稱之為靜默加載,如果有專業(yè)的叫法,歡迎指正。

一般情況下,我們加載一個(gè)Class的時(shí)候會(huì)使用Class.forName(String name)方法,該方法會(huì)返回一個(gè)Class對(duì)象,同時(shí)會(huì)觸發(fā)該類中的靜態(tài)代碼塊,舉個(gè)例子:

我們先來(lái)編寫(xiě)一個(gè)只包含靜態(tài)代碼塊的Bean類。

package com.jinggujin.classloader;
public class Bean
{
 static
 {
  System.err.println("static code block.");
 }
}

使用err流是為了讓信息及時(shí)輸出,使用out會(huì)有緩存,可能會(huì)導(dǎo)致輸出信息順序錯(cuò)亂

然后編寫(xiě)測(cè)試方法進(jìn)行測(cè)試。

package test;

import org.junit.Test;

public class ClassLoaderTest
{
 @Test
 public void test() throws Exception
 {
  Class.forName("com.jinggujin.classloader.Bean");
 }
}

運(yùn)行觀察控制臺(tái)輸出:

static code block.

此時(shí)控制臺(tái)會(huì)輸出我們?cè)陟o態(tài)代碼塊中打印的內(nèi)容,這樣就證明了了在使用Class.forName(String name)會(huì)觸發(fā)靜態(tài)代碼塊,那么,要實(shí)現(xiàn)靜默加載,我們就不能用這種方式了,我們可以使用ClassLoader的loadClass(String name)方法進(jìn)行加載,該方法僅會(huì)加載類而不會(huì)觸發(fā)靜態(tài)代碼塊,同樣的編寫(xiě)測(cè)試方法進(jìn)行測(cè)試。

package test;
import org.junit.Test;
public class ClassLoaderTest
{
 @Test
 public void test() throws Exception
 {
  Class<?> clazz = Thread.currentThread().getContextClassLoader().loadClass("com.jinggujin.classloader.Bean");
  System.err.println(clazz.getName());
 }
}

運(yùn)行觀察控制臺(tái)輸出:

com.jinggujin.classloader.Bean

我們發(fā)現(xiàn),在控制臺(tái)中僅輸出了我們打印的類名信息,而靜態(tài)代碼塊沒(méi)有執(zhí)行,除此之外,其實(shí)我們還可以使用Class.forName(String name)的重寫(xiě)方法forName(String name, boolean initialize, ClassLoader loader) ,同樣可以達(dá)到靜默加載的效果。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Java?中的?clone(?)?和?new哪個(gè)效率更高

    Java?中的?clone(?)?和?new哪個(gè)效率更高

    很多朋友不太清楚clone()和new那個(gè)更快?針對(duì)這個(gè)問(wèn)題我百度了好多資料,最終小編總結(jié)下關(guān)于Java?中的?clone(?)?和?new哪個(gè)效率更高的問(wèn)題,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Java 中的字符串常量池詳解

    Java 中的字符串常量池詳解

    本文主要介紹Java中的字符串常量池的知識(shí),這里整理了相關(guān)資料及簡(jiǎn)單示例代碼幫助大家學(xué)習(xí)理解此部分的知識(shí),有需要的小伙伴可以參考下
    2016-09-09
  • maven私服的配置使用方法

    maven私服的配置使用方法

    這篇文章主要介紹了maven私服的配置使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 基于java實(shí)現(xiàn)簡(jiǎn)單發(fā)紅包功能

    基于java實(shí)現(xiàn)簡(jiǎn)單發(fā)紅包功能

    這篇文章主要為大家詳細(xì)介紹了基于java實(shí)現(xiàn)簡(jiǎn)單發(fā)紅包功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Java解析調(diào)用webservice服務(wù)的返回XML串詳解

    Java解析調(diào)用webservice服務(wù)的返回XML串詳解

    這篇文章主要介紹了Java解析調(diào)用webservice服務(wù)的返回XML串詳解的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • java IO流讀取圖片供前臺(tái)顯示代碼分享

    java IO流讀取圖片供前臺(tái)顯示代碼分享

    這篇文章主要介紹了java IO流讀取圖片供前臺(tái)顯示代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 通過(guò)代碼示例了解submit與execute的區(qū)別

    通過(guò)代碼示例了解submit與execute的區(qū)別

    這篇文章主要介紹了通過(guò)代碼示例了解submit與execute的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot中VO/DTO/PO的具體使用

    SpringBoot中VO/DTO/PO的具體使用

    VO/DTO/PO等實(shí)體類中字段常常會(huì)存在多數(shù)相同,根據(jù)業(yè)務(wù)需求少數(shù)不同,本文主要介紹了SpringBoot中VO/DTO/PO的具體使用,感興趣的可以了解一下
    2024-03-03
  • Java正則表達(dá)式匹配電話格式

    Java正則表達(dá)式匹配電話格式

    正則表達(dá)式是由普通的字符以及特殊字符組成的文字模式,用來(lái)在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。本文給大家介紹java正則表達(dá)式匹配電話格式,對(duì)java正則表達(dá)式匹配相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • springboot-mybatis/JPA流式查詢的多種實(shí)現(xiàn)方式

    springboot-mybatis/JPA流式查詢的多種實(shí)現(xiàn)方式

    這篇文章主要介紹了springboot-mybatis/JPA流式查詢,本文給大家分享三種方式,每種方式結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-12-12

最新評(píng)論