1. gzyueqian
      18529173453

      java語(yǔ)言的工作原理是什么?java培訓(xùn)機(jī)構(gòu)來(lái)講解

      更新時(shí)間: 2019-10-08 15:43:40來(lái)源: 粵嵌教育瀏覽量:11649

             java作為一門(mén)很受歡迎的開(kāi)發(fā)語(yǔ)言,一直以它簡(jiǎn)單、運(yùn)用廣泛被IT行業(yè)所重視著。那么JAVA語(yǔ)言的工作原理是什么呢?對(duì)于很多想要學(xué)習(xí)java語(yǔ)言的學(xué)員來(lái)說(shuō)說(shuō),在學(xué)習(xí)的時(shí)候弄清楚java語(yǔ)言的工作原理是非常的重要的。只有整理清楚了才可以快速的進(jìn)入到學(xué)習(xí)java語(yǔ)言的狀態(tài),下面就跟著java培訓(xùn)機(jī)構(gòu)的小編來(lái)學(xué)習(xí)下java語(yǔ)言的工作原理吧。
        1、java類(lèi)加載器的分類(lèi)

        Java中的類(lèi)加載器主要分為以下四類(lèi):

        (1)根類(lèi)加載器(BootStrapClassLoader), 主要負(fù)責(zé)加載jre/lib/rt.jar相關(guān)的字節(jié)碼文件的。

        (2)擴(kuò)展類(lèi)加載器(ExtensionClassLoader), 主要負(fù)載加載 jre/lib/ext/*.jar 這些jar包的。 該類(lèi)加載器在JDK1。9的時(shí)候更名為: Platform Class Loader, 其父類(lèi)加載器為: null。

        (3)應(yīng)用程序類(lèi)加載器(ApplicationClassLoader), 主要負(fù)責(zé)加載用戶(hù)自定義的類(lèi)以及classpath環(huán)境變量所配置的jar包的。 該類(lèi)加載器在JDK1.9的時(shí)候更名為: System ClassLoader, 其父類(lèi)加載器為: ExtensionClassLoader。

        (4)自定義類(lèi)加載器(UserClassLoader), 負(fù)責(zé)加載程序員指定的特殊目錄下的字節(jié)碼文件的。大多數(shù)情況下,自定義類(lèi)加載器只需要繼承ClassLoader這個(gè)抽象類(lèi),重寫(xiě)findClass()和loadClass()兩個(gè)方法即可。

        2、java類(lèi)加載器的類(lèi)加載機(jī)制

        ,我們?cè)賮?lái)聊一聊”類(lèi)加載機(jī)制”,在JVM中類(lèi)加載機(jī)制主要有3種:

        (1)全盤(pán)加載。顧名思義,就是當(dāng)某一個(gè)類(lèi)加載器加載某個(gè).class文件時(shí), 默認(rèn)也會(huì)連同該文件所依賴(lài)的.class一起加載(除非顯示聲明通過(guò)某個(gè)指定的類(lèi)加載器加載)。

        (2) 緩存機(jī)制。即所有類(lèi)加載器已經(jīng)加載過(guò)的.class文件都會(huì)被保存到緩存中,下次使用該.class文件時(shí),JVM會(huì)優(yōu)先從緩存中查找,如果沒(méi)有,才會(huì)去加載指定的字節(jié)碼文件,這也是為什么當(dāng)字節(jié)碼文件變化后, 需要重啟JVM后才能看到修改效果的原因。

        (3)雙親委派。大白話(huà)解釋?zhuān)瑑鹤?App)要星星,他自己實(shí)現(xiàn)不了,就找他老爹(Ext)要,他老爹能實(shí)現(xiàn)的話(huà)就給他了,實(shí)現(xiàn)不了,就找他爺爺(BootStrap)要,說(shuō): 你孫子要天上的星星。他爺爺如果能實(shí)現(xiàn)就給了,如果也實(shí)現(xiàn)不了,就會(huì)告訴他爹(Ext),讓你兒子(App)自己實(shí)現(xiàn)吧。這種情況有點(diǎn)極端,屬于誰(shuí)都沒(méi)有加載,則程序報(bào)錯(cuò),會(huì)拋出異常。

        (4)總結(jié): 類(lèi)加載器自上而下檢查(App --> Ext --> BootStrap),自下而上加載(BootStrap --> Ext --> App)。


        3、java類(lèi)加載器的概述

        類(lèi)加載器(ClassLoader)是負(fù)責(zé)加載類(lèi)的對(duì)象的,也就是將.class字節(jié)碼文件加載到JVM內(nèi)存中的。那它什么時(shí)候才會(huì)去加載.class字節(jié)碼文件呢? 答案是: 當(dāng)Java程序次使用某個(gè)類(lèi)中的內(nèi)容,而該類(lèi)的字節(jié)碼文件在內(nèi)存中不存在時(shí),類(lèi)加載器就會(huì)去加載該類(lèi)的字節(jié)碼文件。

        俗話(huà)說(shuō)”渡人先渡己”,要想成為別人的榜樣,幫助別人。首先要做好自己。生活中如此, 類(lèi)加載器也一樣。要想加載我們自定義的類(lèi),類(lèi)加載器必須先完成”自加載”的過(guò)程。聊到這,不得不提的就是”類(lèi)加載器的分類(lèi)”了。

        以上就是粵嵌科技的小編給大家整理的關(guān)于java語(yǔ)言的工作原理的內(nèi)容,希望大家在開(kāi)始學(xué)習(xí)java技術(shù)的時(shí)候可以有用。如果說(shuō)你想要學(xué)習(xí)java技術(shù)的話(huà),那么粵嵌科技?xì)g迎大家來(lái)我們公司進(jìn)行實(shí)地考察,也可以點(diǎn)擊我們文章下面的獲取試聽(tīng)資格按鈕來(lái)獲取我們的java培訓(xùn)免費(fèi)試聽(tīng)資格,來(lái)體驗(yàn)我們的java課程并和我們的java講師進(jìn)行面對(duì)面的交流和溝通,粵嵌科技的java培訓(xùn)班歡迎每位想要學(xué)習(xí)java技術(shù)的學(xué)員來(lái)我們的班級(jí)進(jìn)行免費(fèi)體驗(yàn)學(xué)習(xí)。

      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲精品影视免费在线观看 | 最新国产高清在线精品 | 中文字幕第63久久 | 日本一区中文字幕免费 | 欧美久久久久久久一区二区三区 | 亚洲国产初高中生女AV |