案例分析:真實案例對“引用類型”的思考

在一個風(fēng)和日麗的早上,我剛坐到工位上,正準(zhǔn)備美美的享受早餐時,我的測試小兄弟楊過火急火燎的來找我說:“小米,不好了,運營童鞋反饋,咱們商城小程序金剛區(qū)的新店專區(qū),新開的店鋪無法在上面展示,運營童鞋那邊很著急,能不能先看看”。我想了下現(xiàn)有項目組的人力,然后就叫技術(shù)大?!稗苯恪笨聪?。
方案一:刷新ElasticSearch
薇姐首先確定數(shù)據(jù)表中是否存在該店鋪,發(fā)現(xiàn)數(shù)據(jù)庫沒問題,然后就按照新店專區(qū)的接口查看了下數(shù)據(jù)源是 es,懷疑有可能是 es 沒有同步上來,到管理后臺點擊初始化店鋪的 es,結(jié)果本來新店專區(qū)還有店鋪數(shù)據(jù),直接就變成空白了,一條數(shù)據(jù)也沒有,撲街~
方案二:數(shù)據(jù)落庫
薇姐這次仔細(xì)的分析代碼,發(fā)現(xiàn)前人開發(fā)的時候,判斷新店的字段只存到 es 中,沒有把該標(biāo)識存入到店鋪表中,所以才會出現(xiàn)刷新 es 的時候,新店專區(qū)數(shù)據(jù)被清空了(前人埋得坑?。﹡
找到問題就好說了,把這個字段落庫,然后給歷史數(shù)據(jù)新店標(biāo)識設(shè)置個默認(rèn)值,搞定~
這也給我提了個醒,以后組員在開發(fā)功能的時候,一定要先仔細(xì)聽聽他是怎么設(shè)計的,避免挖坑,論代碼 Review 的重要性!
Java 中的四種引用類型
在討論這個案例的時候,我突然想到這不正是面試題中講的“四種引用類型”中的一種嗎?
在 Java 編程語言中,引用是用來訪問和操作對象的一種機(jī)制。強引用、軟引用、弱引用和虛引用是 Java 中的四種引用類型。
強引用(Strong Reference):當(dāng)一個對象被強引用關(guān)聯(lián)時,垃圾回收器無法回收這個對象。只有當(dāng)該對象的所有強引用都被釋放時,該對象才能被垃圾回收器回收。
軟引用(Soft Reference):當(dāng)一個對象被軟引用關(guān)聯(lián)時,它不會被立即回收,只有當(dāng) JVM 認(rèn)為內(nèi)存不足時才會回收該對象。因此,軟引用通常用于實現(xiàn)高速緩存。
弱引用(Weak Reference):當(dāng)一個對象被弱引用關(guān)聯(lián)時,它的生命周期更短,只要沒有被強引用關(guān)聯(lián),垃圾回收器就會盡快回收它。
虛引用(Phantom Reference):虛引用是最弱的一種引用類型,如果一個對象只被虛引用關(guān)聯(lián),那么它就像不存在一樣,任何時候都可能被垃圾回收器回收。虛引用主要用于跟蹤對象被垃圾回收器回收的狀態(tài)。
END
最后,一句話根本形容不了我的窮,跪求工作,南京~
