亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java?JDK內置常用接口和深淺拷貝

 更新時間:2022年06月22日 14:36:20   作者:蘿詩粉  
這篇文章主要介紹了Java?JDK內置常用接口和深淺拷貝,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

前言

在Java中,我們使用接口優(yōu)先原則,當一個場景可以使用抽象類也可以使用接口定義時,優(yōu)先考慮使用接口,因為接口更靈活,使用抽象類必須滿足is a 的繼承樹關系,而且是單繼承,接口相比于抽象類更加的靈活,本篇我們就一起看看JDK中的常用內置接口。

一、comparable接口

java.lang.Comperable:

當一個類實現(xiàn)了Comperable接口,就表示該類具備了可比較的能力!

此時定義了一個Person類型的數(shù)組:

由于Person這個類型是自定義的類型,對于編譯器來說,不像int類型一樣大小關系一目了然;
對于編譯器來說,到底哪個Person對象大,哪個Person對象小,編譯器就無從得知了,此時就要讓Person這個類型具備可比較的能力,也就是要讓JDK知道Person對象“誰大誰小”,就需要讓Person這個類實現(xiàn)Comperable接口,覆寫抽象方法compereTo。
此時覆寫的方法返回值是int,傳入的參數(shù)是任意類型,因為不知道要比較的是什么類型

int返回值 >0 =0 <0 表示當前對象this > 傳入對象o 表示當前對象this = 傳入對象o 表示當前對象this < 傳入對象o

覆寫comperTo方法:

當Person類實現(xiàn)了Comperable接口,覆寫了compereTo方法之后,就可以把Person 類的對象進行大小排序了,可以按年齡大小進行比較,也可以按照姓名大小比較

此時是默認按照年齡的升序排序的,如果想要按照年齡的降序排序,該怎么辦?該如何調整compereTo方法呢?

此時只需要將返回值取反,讓傳入的年齡減去當前對象的年齡,讓JDK誤認為年齡越小的反而越“大”。

二、Cloneable接口

java.lang.Cloneable

首先了解一下什么是克隆,就是原對象和新產(chǎn)生對象是兩個獨立的對象,新產(chǎn)生的對象是通過原對象“拷貝”而來的,屬性值和原對象完全一致。
要想讓一個類具備可復制的能力,就讓該類實現(xiàn)Cloneable接口,覆寫clone方法

這里Animal實現(xiàn)了Cloneable接口,但是沒有覆寫任何方法,但是這里沒有報錯,這是因為Cloneable接口里本來什么都沒有,但是這并不是一個空接口

類似Cloneable接口,把這種接口稱之為“標記”接口,這個接口本身內部沒有任何抽象方法,只有打上這個“標記”的子類才具備可克隆的能力
JVM在運行時會檢查所有實現(xiàn)了Cloneable接口的子類,然后賦予其可以克隆的能力
就像現(xiàn)在的一碼通,根據(jù)一碼通的顏色,把不同的人劃分為不同的類,只有檢測為綠碼的人,才能通過。

animal1 是通過 animal 克隆來的,但是此時使用“ == ”比較他們兩個的地址返回的還是false,說明克隆是產(chǎn)生了新的對象,只是新對象和原來的對象的屬性值完全相同
此時在產(chǎn)生一個對象animal2

Animal animal2 = new Animal();
animal1和animal2的區(qū)別:
animal1是依賴于animal產(chǎn)生的;
animal2的產(chǎn)生和animal完全沒有任何關系。

調用clone方法產(chǎn)生的對象不會調用構造方法:

在Java中產(chǎn)生對象一共有兩種方式:

  • 1.最普遍的通過構造方法產(chǎn)生對象,當有new關鍵字,就在堆上開辟該類相應屬性的空間,給屬性賦默認值。
  • 2.通過clone()產(chǎn)生對象,調用clone方法時,JVM會開辟與原對象內存大小完全相同的新空間,并將對象的屬性值從原對象中復制一份(不推薦,Java都不推薦使用這種方式產(chǎn)生對象)

三、深淺拷貝

1.淺拷貝

克隆對象和原對象的確是兩個獨立的對象,
但是b1和b2的對象內部包含了其他的引用,克隆后的b2包含的其他引用并沒有產(chǎn)生新的對象,b1.a 和 b2.a指向相同的A對象。

2.深拷貝

深拷貝就是克隆對象內部包含的其他引用,也產(chǎn)生了新的對象
b1.a 和 b2.a指向不同的A對象。

Java中深拷貝的實現(xiàn)方式:

  • 1.遞歸的使用clone方法
  • 2.序列化(json字符串)

到此這篇關于Java JDK內置常用接口和深淺拷貝的文章就介紹到這了,更多相關Java JDK內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java?MethodHandles介紹與反射對比區(qū)別詳解

    Java?MethodHandles介紹與反射對比區(qū)別詳解

    這篇文章主要為大家介紹了Java?MethodHandles介紹與反射對比區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • SpringBoot中application.properties與application.yml區(qū)別小結

    SpringBoot中application.properties與application.yml區(qū)別小結

    本文主要介紹了SpringBoot中application.properties與application.yml區(qū)別小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-10-10
  • SpringBoot整合Minio實現(xiàn)上傳文件的完整步驟記錄

    SpringBoot整合Minio實現(xiàn)上傳文件的完整步驟記錄

    MinIO是一個基于Apache License v2.0開源協(xié)議的對象存儲服務,它兼容亞馬遜S3云存儲服務接口,非常適合于存儲大容量非結構化的數(shù)據(jù),下面這篇文章主要給大家介紹了關于SpringBoot整合Minio實現(xiàn)上傳文件的完整步驟,需要的朋友可以參考下
    2022-05-05
  • Java實現(xiàn)簡單的掃雷小程序

    Java實現(xiàn)簡單的掃雷小程序

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單的掃雷小程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 如何基于JAVA讀取yml配置文件指定key內容

    如何基于JAVA讀取yml配置文件指定key內容

    這篇文章主要介紹了如何基于JAVA讀取yml配置文件指定key內容,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • IDEA中打jar包的2種方式(Maven打jar包)

    IDEA中打jar包的2種方式(Maven打jar包)

    這篇文章主要給大家介紹了關于IDEA中打jar包的2種方式,分別是不使用Maven直接打Jar包與使用Maven打jar包的兩種方法,需要的朋友可以參考下
    2021-05-05
  • java拷貝指定目錄下所有內容到minIO代碼實例

    java拷貝指定目錄下所有內容到minIO代碼實例

    這篇文章主要介紹了java拷貝指定目錄下所有內容到minIO代碼實例,創(chuàng)建桶 直接使用工具類先判斷,再創(chuàng)建即可,創(chuàng)建文件夾,需要注意以"/"結尾,實際也是在minIO上創(chuàng)建文件,只是作為目錄的表現(xiàn)形式展示,需要的朋友可以參考下
    2024-01-01
  • Android實現(xiàn)兼容的水波紋效果

    Android實現(xiàn)兼容的水波紋效果

    Android的水波紋效果只有高版本才有,我們希望自己的應用在低版本用低版本的陰影,而高版本用水波紋,這怎么做呢?下面一起來學習學習。
    2016-08-08
  • Java源碼解析之object類

    Java源碼解析之object類

    前些天看到別人討論閱讀源碼有什么用這個問題,有一句話說的特別好:學習別人實現(xiàn)某個功能的設計思路,來提高自己的編程水平。本文主要介紹了Java源碼解析之object類,需要的朋友可以參考。
    2017-10-10
  • JDK8新特性-java.util.function-Function接口使用

    JDK8新特性-java.util.function-Function接口使用

    這篇文章主要介紹了JDK8新特性-java.util.function-Function接口使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論