<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在Java中,我們使用介面優先原則,當一個場景可以使用抽象類也可以使用介面定義時,優先考慮使用介面,因為介面更靈活,使用抽象類必須滿足is a 的繼承樹關係,而且是單繼承,介面相比於抽象類更加的靈活,本篇我們就一起看看JDK中的常用內建介面。
java.lang.Comperable:
當一個類實現了Comperable介面,就表示該類具備了可比較的能力!
此時定義了一個Person型別的陣列:
由於Person這個型別是自定義的型別,對於編譯器來說,不像int型別一樣大小關係一目瞭然;
對於編譯器來說,到底哪個Person物件大,哪個Person物件小,編譯器就無從得知了,此時就要讓Person這個型別具備可比較的能力,也就是要讓JDK知道Person物件“誰大誰小”,就需要讓Person這個類實現Comperable介面,覆寫抽象方法compereTo。
此時覆寫的方法返回值是int,傳入的引數是任意型別,因為不知道要比較的是什麼型別
int返回值 >0 =0 <0 表示當前物件this > 傳入物件o 表示當前物件this = 傳入物件o 表示當前物件this < 傳入物件o
覆寫comperTo方法:
當Person類實現了Comperable介面,覆寫了compereTo方法之後,就可以把Person 類的物件進行大小排序了,可以按年齡大小進行比較,也可以按照姓名大小比較
此時是預設按照年齡的升序排序的,如果想要按照年齡的降序排序,該怎麼辦?該如何調整compereTo方法呢?
此時只需要將返回值取反,讓傳入的年齡減去當前物件的年齡,讓JDK誤認為年齡越小的反而越“大”。
java.lang.Cloneable
首先了解一下什麼是克隆,就是原物件和新產生物件是兩個獨立的物件,新產生的物件是通過原物件“拷貝”而來的,屬性值和原物件完全一致。
要想讓一個類具備可複製的能力,就讓該類實現Cloneable介面,覆寫clone方法
這裡Animal實現了Cloneable介面,但是沒有覆寫任何方法,但是這裡沒有報錯,這是因為Cloneable介面裡本來什麼都沒有,但是這並不是一個空介面
類似Cloneable介面,把這種介面稱之為“標記”介面,這個介面本身內部沒有任何抽象方法,只有打上這個“標記”的子類才具備可克隆的能力
JVM在執行時會檢查所有實現了Cloneable介面的子類,然後賦予其可以克隆的能力
就像現在的一碼通,根據一碼通的顏色,把不同的人劃分為不同的類,只有檢測為綠碼的人,才能通過。
animal1 是通過 animal 克隆來的,但是此時使用“ == ”比較他們兩個的地址返回的還是false,說明克隆是產生了新的物件,只是新物件和原來的物件的屬性值完全相同
此時在產生一個物件animal2
Animal animal2 = new Animal();
animal1和animal2的區別:
animal1是依賴於animal產生的;
animal2的產生和animal完全沒有任何關係。
呼叫clone方法產生的物件不會呼叫構造方法:
在Java中產生物件一共有兩種方式:
克隆物件和原物件的確是兩個獨立的物件,
但是b1和b2的物件內部包含了其他的參照,克隆後的b2包含的其他參照並沒有產生新的物件,b1.a 和 b2.a指向相同的A物件。
深拷貝就是克隆物件內部包含的其他參照,也產生了新的物件
b1.a 和 b2.a指向不同的A物件。
Java中深拷貝的實現方式:
到此這篇關於Java JDK內建常用介面和深淺拷貝的文章就介紹到這了,更多相關Java JDK內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45