国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

看看你的對(duì)象是啥種,他的生命歷程又是怎樣的呢?

這篇具有很好參考價(jià)值的文章主要介紹了看看你的對(duì)象是啥種,他的生命歷程又是怎樣的呢?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

看看你的對(duì)象是啥種,他的生命歷程又是怎樣的呢?

1、前言

看看你的對(duì)象是啥種,他的生命歷程又是怎樣的呢?
看到標(biāo)題滿腦大大的疑問(wèn) 如上圖 是個(gè)什么鬼。今天我們就來(lái)介紹一下對(duì)象的類型用與區(qū)分你的對(duì)象。

2、對(duì)象的類型

2.1、數(shù)據(jù)類型

基礎(chǔ)類型與數(shù)據(jù)類型
八種基本數(shù)據(jù)類型

int、short、float、double、long、boolean、byte、char。

對(duì)應(yīng)的封裝類是:

Integer、Short、Float、Double、Long、Boolean、Byte、Character。

2.2、形參和實(shí)參

從作用域上看,形參只會(huì)在方法內(nèi)部生效,方法結(jié)束后,形參也會(huì)被釋放掉,所以形參是不會(huì)影響方法外的.
看看你的對(duì)象是啥種,他的生命歷程又是怎樣的呢?

2.3、值傳遞和引用傳遞

值傳遞:

傳遞的是實(shí)際值,像基本數(shù)據(jù)類型

引用傳遞:

將對(duì)象的引用作為實(shí)參進(jìn)行傳遞

java基本類型數(shù)據(jù)作為參數(shù)是值傳遞,對(duì)象類型是引用傳遞

實(shí)參是可以傳遞給形參的,但是形參卻不能影響實(shí)參。
當(dāng)進(jìn)行值傳遞的情況下,改變的是形參的值,并沒(méi)有改變實(shí)參,無(wú)論是引用傳遞還是值傳遞,只要更改的是形參本身,那么都無(wú)法影響到實(shí)參的。
對(duì)于引用傳遞而言,不同的引用可以指向相同的地址,通過(guò)形參的引用地址,找到了實(shí)際對(duì)象分配的空間,然后進(jìn)行更改就會(huì)對(duì)實(shí)參指向的對(duì)象產(chǎn)生影響。
看看你的對(duì)象是啥種,他的生命歷程又是怎樣的呢?

對(duì)于swap1從值傳遞的角度來(lái)看,對(duì)象參數(shù)傳遞采用的是引用傳遞,那么type1和type2傳遞過(guò)來(lái)的是指向?qū)ο蟮囊茫?strong>在方法內(nèi)部,直接操作形參,交換了形參的內(nèi)容,這樣形參改變,都是并沒(méi)有對(duì)實(shí)參產(chǎn)生任何影響,也沒(méi)有改變對(duì)象實(shí)際的值,所以,結(jié)果是無(wú)法交換
而對(duì)于swap2,對(duì)象引用作為形參傳遞過(guò)來(lái)后,并沒(méi)有對(duì)形參做任何的改變,而是直接操作了形參所指向的對(duì)象實(shí)際地址,那這樣,無(wú)論是實(shí)參還是其他地方,只要是指向該對(duì)象的所有的引用地址對(duì)應(yīng)的值都會(huì)改變。

2.4、 拆裝箱

裝箱就是自動(dòng)將基本數(shù)據(jù)類型轉(zhuǎn)換為包裝器類型(int–>Integer)調(diào)用方法:Integer的valueOf(int) 方法
拆箱就是自動(dòng)將包裝器類型轉(zhuǎn)換為基本數(shù)據(jù)類型(Integer–>int)。
調(diào)用方法:Integer的intValue方法在Java SE5之前,如果要生成一個(gè)數(shù)值為10的Integer對(duì)象,必須這樣進(jìn)行:Integer i = new Integer(10);
而在從Java SE5開(kāi)始就提供了自動(dòng)裝箱的特性,如果要生成一個(gè)數(shù)值為10的Integer對(duì)象,只需要這樣就可以了:

3、 Java對(duì)象的生命周期

  1. 創(chuàng)建階段(Created)
  2. 應(yīng)用階段(In Use)
  3. 不可見(jiàn)階段(Invisible)
  4. 不可達(dá)階段(Unreachable)
  5. 收集階段(Collected)
  6. 終結(jié)階段(Finalized)
  7. 對(duì)象空間重分配階段(De-allocated)

3.1、創(chuàng)建階段(Created)

在創(chuàng)建階段系統(tǒng)通過(guò)下面的幾個(gè)步驟來(lái)完成對(duì)象的創(chuàng)建過(guò)程
為對(duì)象分配存儲(chǔ)空間

  • 開(kāi)始構(gòu)造對(duì)象
    -從超類到子類對(duì)static成員進(jìn)行初始化
    -超類成員變量按順序初始化,遞歸調(diào)用超類的構(gòu)造方法
    -子類成員變量按順序初始化,子類構(gòu)造方法調(diào)用
    -一旦對(duì)象被創(chuàng)建,并被分派給某些變量賦值,這個(gè)對(duì)象的狀態(tài)就切換到了應(yīng)用階段

3.2、應(yīng)用階段(In Use)

對(duì)象至少被一個(gè)強(qiáng)引用持有著。

3.3、不可見(jiàn)階段(Invisible)

當(dāng)一個(gè)對(duì)象處于不可見(jiàn)階段時(shí),說(shuō)明程序本身不再持有該對(duì)象的任何強(qiáng)引用,雖然該這些引用仍然是存在著的。簡(jiǎn)單說(shuō)就是程序的執(zhí)行已經(jīng)超出了該對(duì)象的作用域了。

3.4、不可達(dá)階段(Unreachable)

對(duì)象處于不可達(dá)階段是指該對(duì)象不再被任何強(qiáng)引用所持有。
與“不可見(jiàn)階段”相比,“不可見(jiàn)階段”是指程序不再持有該對(duì)象的任何強(qiáng)引用,這種情況下,該對(duì)象仍可能被JVM等系統(tǒng)下的某些已裝載的靜態(tài)變量或線程或JNI等強(qiáng)引用持有著,這些特殊的強(qiáng)引用被稱為”GC root”。存在著這些GC root會(huì)導(dǎo)致對(duì)象的內(nèi)存泄露情況,無(wú)法被回收。

3.5、收集階段(Collected)

當(dāng)垃圾回收器發(fā)現(xiàn)該對(duì)象已經(jīng)處于“不可達(dá)階段”并且垃圾回收器已經(jīng)對(duì)該對(duì)象的內(nèi)存空間重新分配做好準(zhǔn)備時(shí),則對(duì)象進(jìn)入了“收集階段”。如果該對(duì)象已經(jīng)重寫(xiě)了finalize()方法,則會(huì)去執(zhí)行該方法的終端操作。
注意:不要重載finazlie()方法!因?yàn)椋?/p>

  1. 會(huì)影響JVM的對(duì)象分配與回收速度 在分配該對(duì)象時(shí),JVM需要在垃圾回收器上注冊(cè)該對(duì)象,以便在回收時(shí)能夠執(zhí)行該重載方法;在該方法的執(zhí)行時(shí)需要消耗CPU時(shí)間且在執(zhí)行完該方法后才會(huì)重新執(zhí)行回收操作,即至少需要垃圾回收器對(duì)該對(duì)象執(zhí)行兩次GC。
  2. 可能造成該對(duì)象的再次“復(fù)活” 在finalize()方法中,如果有其它的強(qiáng)引用再次持有該對(duì)象,則會(huì)導(dǎo)致對(duì)象的狀態(tài)由“收集階段”又重新變?yōu)椤皯?yīng)用階段”。這個(gè)已經(jīng)破壞了Java對(duì)象的生命周期進(jìn)程,且“復(fù)活”的對(duì)象不利用后續(xù)的代碼管理。

3.6、終結(jié)階

當(dāng)對(duì)象執(zhí)行完finalize()方法后仍然處于不可達(dá)狀態(tài)時(shí),則該對(duì)象進(jìn)入終結(jié)階段。在該階段是等待垃圾回收器對(duì)該對(duì)象空間進(jìn)行回收。

3.7、對(duì)象空間重新分配階段

垃圾回收器對(duì)該對(duì)象的所占用的內(nèi)存空間進(jìn)行回收或者再分配了,則該對(duì)象徹底消失了,稱之為“對(duì)象空間重新分配階段”。

4 、結(jié)語(yǔ)

各位看官今天就到此為止,你應(yīng)該知道 你不同時(shí)期寫(xiě)的對(duì)象是啥種了吧,對(duì)應(yīng)也了解他的生命歷程又是如是如何運(yùn)轉(zhuǎn)的了吧。此系列簡(jiǎn)要筆記后續(xù)會(huì)不斷更新,?? 歡迎關(guān)注:??點(diǎn)贊??收藏??留言!
看看你的對(duì)象是啥種,他的生命歷程又是怎樣的呢?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-413742.html

到了這里,關(guān)于看看你的對(duì)象是啥種,他的生命歷程又是怎樣的呢?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Java基礎(chǔ)】Java對(duì)象的生命周期

    【Java基礎(chǔ)】Java對(duì)象的生命周期

    一個(gè)類通過(guò)編譯器將一個(gè)Java文件編譯為Class字節(jié)碼文件,然后通過(guò)JVM中的解釋器編譯成不同操作系統(tǒng)的機(jī)器碼。雖然操作系統(tǒng)不同,但是基于解釋器的虛擬機(jī)是相同的。java類的生命周期就是指一個(gè)class文件加載到類文件注銷整個(gè)過(guò)程。 一個(gè)java類的完整的生命周期會(huì)經(jīng)歷加載

    2024年02月12日
    瀏覽(36)
  • 如何控制Spring工廠創(chuàng)建對(duì)象的次數(shù)?詳解Spring對(duì)象的生命周期!

    如何控制Spring工廠創(chuàng)建對(duì)象的次數(shù)?詳解Spring對(duì)象的生命周期!

    ???? 學(xué)習(xí)交流群: ??1:這是孫哥suns給大家的福利! ??2:我們 免費(fèi)分享 Netty、Dubbo、k8s、Mybatis、Spring...應(yīng)用和源碼級(jí)別的視頻資料 ????3:QQ群:583783824 ? ???? ?工作微信:BigTreeJava 拉你進(jìn)微信群,免費(fèi)領(lǐng)??! ????4:本文章內(nèi)容出自上述:Spring應(yīng)用課程!????

    2024年02月05日
    瀏覽(18)
  • JVM-JVM中對(duì)象的生命周期

    JVM-JVM中對(duì)象的生命周期

    申明:文章內(nèi)容是本人學(xué)習(xí)極客時(shí)間課程所寫(xiě),文字和圖片基本來(lái)源于課程資料,在某些地方會(huì)插入一點(diǎn)自己的理解,未用于商業(yè)用途,侵刪。 原資料地址:課程資料 對(duì)象的創(chuàng)建 常量池檢查 :檢查new指令是否能在常量池中定位到這個(gè)類的符號(hào)引用,檢查類之前是否被加載過(guò)

    2024年02月20日
    瀏覽(22)
  • Listener監(jiān)聽(tīng)器----HttpServletRequest對(duì)象的生命周期監(jiān)聽(tīng)器

    一、HttpServletRequest對(duì)象的生命周期監(jiān)聽(tīng)器 ????????ServletRequestListener接口定義了ServletRequest(是HttpServletRequest接口的父接口類型)對(duì)象生命周期的監(jiān)聽(tīng)行為。 void requestInitialized(ServletRequestEvent sre) ??????? HttpServletRequest對(duì)象創(chuàng)建后會(huì)觸發(fā)該監(jiān)聽(tīng)器方法,并將已創(chuàng)建HttpServletR

    2024年01月23日
    瀏覽(21)
  • Bean的生命周期揭秘:從誕生到消亡,一個(gè)對(duì)象的壯麗演繹!

    Bean的生命周期揭秘:從誕生到消亡,一個(gè)對(duì)象的壯麗演繹!

    大家好,我是你們的小米。今天我要給大家揭秘一下Java開(kāi)發(fā)中重要的概念——Spring Bean的生命周期。作為Java開(kāi)發(fā)者,無(wú)論是在面試還是實(shí)際工作中,了解Bean的生命周期都是必備的知識(shí)點(diǎn)。讓我們一起來(lái)深入了解吧! ? ? 在開(kāi)始講解生命周期之前,我們先來(lái)了解一下Spring Be

    2024年02月05日
    瀏覽(33)
  • 裝飾器模式:讓你的對(duì)象變得更強(qiáng)大

    在日常開(kāi)發(fā)中,當(dāng)需要給一個(gè)現(xiàn)有類添加附加職責(zé),而又不能采用生成子類的方法進(jìn)行擴(kuò)充時(shí)。例如,該類被隱藏或者該類是終極類或者采用繼承方式會(huì)產(chǎn)生大量的子類。這時(shí)候,我們?cè)撛趺崔k呢?我們可以使用裝飾器器模式來(lái)解決這個(gè)問(wèn)題, 本文將從以下四個(gè)方面講解裝飾

    2024年02月10日
    瀏覽(22)
  • 【FFI】N-API的JS堆對(duì)象生命周期管理

    【FFI】N-API的JS堆對(duì)象生命周期管理

    N-API 是 Node API 的簡(jiǎn)寫(xiě),同時(shí)也是 nodejs 的 JS VM (鏈)接入原生模塊 .node 文件的 應(yīng)用程序二進(jìn)制接口 (i.e. ABI) 。借助 N-API 引入的抽象隔離,升級(jí) nodejs 運(yùn)行時(shí)(虛擬機(jī)) 【編譯】不要求對(duì)原生擴(kuò)展模塊 重新編譯 ?— 為 nodejs 的不同版本分別準(zhǔn)備不同的原生模塊 build 真的好麻

    2024年02月04日
    瀏覽(15)
  • 創(chuàng)建javaEE項(xiàng)目(無(wú)maven),JSP(九大內(nèi)置對(duì)象)、Servlet(生命周期)了解

    創(chuàng)建javaEE項(xiàng)目(無(wú)maven),JSP(九大內(nèi)置對(duì)象)、Servlet(生命周期)了解

    1.創(chuàng)建一個(gè)普通的java項(xiàng)目 2.項(xiàng)目根目錄右鍵,添加模板 3.配置tomcat服務(wù)器 4.配置項(xiàng)目tomcat依賴 ????????用戶通過(guò)瀏覽器發(fā)送一個(gè)請(qǐng)求,服務(wù)器tomcat接收到后,解析web.xml配置文件進(jìn)行分析執(zhí)行接口對(duì)應(yīng)的類; ????????Tomcat服務(wù)器支持:支持Servlet規(guī)范。而要想讓它能找到

    2024年02月05日
    瀏覽(21)
  • Spring IOC之對(duì)象的創(chuàng)建方式、策略及銷毀時(shí)機(jī)和生命周期且獲取方式

    Spring IOC之對(duì)象的創(chuàng)建方式、策略及銷毀時(shí)機(jī)和生命周期且獲取方式

    目錄 一、對(duì)象的創(chuàng)建方式 1. 使用構(gòu)造方法 2. 使用工廠類方法 3. 使用工廠類的靜態(tài)方法 二、對(duì)象的創(chuàng)建策略 1. 單例策略 2. 多例策略 三、對(duì)象的銷毀時(shí)機(jī) 四、生命周期方法 1. 定義生命周期方法 2. 配置生命周期方法 3. 測(cè)試 五、獲取Bean對(duì)象的方式 1. 通過(guò)id/name獲取 2. 通過(guò)類

    2024年02月01日
    瀏覽(14)
  • NC54585 小魂和他的數(shù)列

    題目鏈接 題目描述 一天,小魂正和一個(gè)數(shù)列玩得不亦樂(lè)乎。 小魂的數(shù)列一共有n個(gè)元素,第i個(gè)數(shù)為Ai。 他發(fā)現(xiàn),這個(gè)數(shù)列的一些子序列中的元素是嚴(yán)格遞增的。 他想知道,這個(gè)數(shù)列一共有多少個(gè)長(zhǎng)度為K的子序列是嚴(yán)格遞增的。 請(qǐng)你幫幫他,答案對(duì)998244353取模。 對(duì)于100%的數(shù)

    2024年02月02日
    瀏覽(14)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包