摘要:小節(jié)也有類似的栗子,其結(jié)論是靜態(tài)方法不具有多態(tài)性。來自一個有趣的問題靜態(tài)字段論述的問題大致是說以上兩個類中各有幾個方法本質(zhì)其實就是有無時的區(qū)別。
Demo1
來自關(guān)于java中static一個有意思的小案例:
class Employee { private static Employee employee = new Employee(); public static int count1 = 0; public static int count2; private Employee(){ count1++; count2++; }; public static Employee getInstance(){ return employee; } } public class TestLoader{ public static void main(String[] args){ Employee employee = Employee.getInstance(); System.out.println("count1-------"+employee.count1); System.out.println("count2-------"+employee.count2); } }
運行結(jié)果為:
count1-------0
count2-------1
public static int count1 = 2; private Employee(){ System.out.println("init count1-------"+count1); System.out.println("init count2-------"+count2); count1++; count2++; };
我們在構(gòu)造方法中加入兩個輸出,輸出結(jié)果為:
init count1-------0
init count2-------0
count1-------2
count2-------1
你也發(fā)現(xiàn)了吧,此時count1尚未初始化賦值。即new Employee()先于count1 = 2執(zhí)行。
因此解決這個demo混淆的最好方法就是將靜態(tài)變量定義在方法之前。這樣是我們平常編碼的一種好習慣吧。
來自Java有意思的知識點
public class Parent { public static String say() { return "parent static say"; } public String say2() { return "parent say"; } } public class Child extends Parent { public static String say() { return "child static say"; } public String say2() { return "child say"; } } public class OverrideTest { public static void main(String[] args) { Parent p = new Child(); System.out.println(p.say()); System.out.println(p.say2()); } }
運行結(jié)果:
parent static say
child say
是你想的那樣嗎?
所謂靜態(tài)方法,并不僅僅指該方法在所有實例中只有一份,同時也指該方法是“靜態(tài)”加載的,即在編譯期就已決定其行為。此處p的靜態(tài)類型為Parent,所以它所調(diào)用的方法也在編譯期和Parent的say()方法綁定。
《Think In Java》8.2小節(jié)也有類似的栗子,其結(jié)論是“靜態(tài)方法不具有多態(tài)性”。
Demo3來自一個有趣的問題(java靜態(tài)字段)
class TestMethodA { static String name = "rebey.cn"; } class TestMethodB { static final String name = "rebey.cn"; }
論述的問題大致是說以上兩個類中各有幾個方法?本質(zhì)其實就是有無final時的區(qū)別。怎樣,心中有答案了嗎?
說點什么/** * 修飾 * 屬性 * 方法 * 對象 */ /** * 類加載時,實例化前加載一次;; * 可通過類名直接調(diào)用或?qū)嵗{(diào)用,且所有實例共享; * * 此外,靜態(tài)方法中不能用this和super關(guān)鍵字, * 不能直接訪問所屬類的實例變量和實例方法 (就是不帶static的成員變量和成員成員方法), * 只能訪問所屬類的靜態(tài)成員變量和成員方法; * */還有什么玩法
靜態(tài)導包;
本文不定期更新中...
更多有意思的內(nèi)容,歡迎訪問rebey.cn
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67443.html
摘要:希望大家在這浮夸的前端圈里,保持冷靜,堅持每天花分鐘來學習與思考。 今天的React題沒有太多的故事…… 半個月前出了248個Vue的知識點,受到很多朋友的關(guān)注,都強烈要求再出多些React相前的面試題,受到大家的邀請,我又找了20多個React的使用者,他們給出了328道React的面試題,由我整理好發(fā)給大家,同時發(fā)布在了前端面試每日3+1的React專題,希望對大家有所幫助,同時大...
摘要:要招一個會的開發(fā)者作為面試官的你,你還會每次都只是問這些老土的問題嗎你對的理解是什么你知道什么是雙向綁定嗎你了解它的原理嗎說說的生命周期有哪些組件通訊有哪些你用過嗎作為面試者的你,在網(wǎng)上搜索下面試題及答案,看完后你是不是覺得自己掌握了武林秘 showImg(https://segmentfault.com/img/bVburrG?w=533&h=300); 要招一個會vue的開發(fā)者: ...
摘要:如果你有一臺云主機,你會用來做什么呢已經(jīng)有一個個人使用的云主機。這臺云主機安裝的是系統(tǒng)。通過云主機的公網(wǎng)可以家庭網(wǎng)絡(luò)的公用映射。云幫手面板是啥可以管理云主機嗎云幫手是一款集中化管理云主機的軟件?;旧厢槍υ浦鳈C,云幫手的功能是十分齊全的了。如果你有一臺云主機,你會用來做什么呢?已經(jīng)有一個個人使用的云主機。這臺云主機安裝的是centos系統(tǒng)。使用docker裝了幾個網(wǎng)站。使用nodejs通過m...
摘要:所以,剛開始我并沒有直接就投遞阿里,畢竟心里還是有一點點小害怕的。操作系統(tǒng)的內(nèi)存管理機制進程和線程的區(qū)別說下你對線程安全的理解有什么作用,和有什么區(qū)別實現(xiàn)原理用過么什么場景下用的底層原理。 作者:ppxyn。本文來自讀者投稿。該文已加入筆主的開源項目——JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識的文檔類項目),地址:https://github.com/Sna...
摘要:但是,不要高興的太早。。。。。,看看頁面上并不是顯示的我們傳過來的值。?!,F(xiàn)將兩個頁面的部分代碼做如下修改部分代碼部分代碼不知道你們了解這個的使用姿勢了嗎反正作為菜鳥的我是又學到了,歡迎留言說說你們在開發(fā)中遇到的一些值得卸載小本本上的問題唄 本文首發(fā)在個人的博客上,地址:重慶崽兒Brand,歡迎訪問~~~~ 最近做公司項目遇到這樣一個需求: 從一個頁面跳轉(zhuǎn)到另一個頁面去選擇一些信息,選...
閱讀 2562·2023-04-26 00:56
閱讀 2011·2021-10-25 09:46
閱讀 1248·2019-10-29 15:13
閱讀 820·2019-08-30 15:54
閱讀 2202·2019-08-29 17:10
閱讀 2623·2019-08-29 15:43
閱讀 505·2019-08-29 15:28
閱讀 3036·2019-08-29 13:24