最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的System.arraycopy()淺復制方法詳解

 更新時間:2023年11月18日 11:25:36   作者:五月天的尾巴  
這篇文章主要介紹了Java中的System.arraycopy()淺復制方法詳解,Java數(shù)組的復制操作可以分為深度復制和淺度復制,簡單來說深度復制,可以將對象的值和對象的內(nèi)容復制;淺復制是指對對象引用的復制,需要的朋友可以參考下

一、深度復制和淺度復制的區(qū)別

Java數(shù)組的復制操作可以分為深度復制和淺度復制

簡單來說深度復制,可以將對象的值和對象的內(nèi)容復制;淺復制是指對對象引用的復制。

二、System.arraycopy()方法實現(xiàn)復制

1、arraycopy()

System中提供了一個native靜態(tài)方法arraycopy(),可以使用這個方法來實現(xiàn)數(shù)組之間的復制。

對于一維數(shù)組來說,這種復制屬性值傳遞,修改副本不會影響原來的值。對于二維或者一維數(shù)組中存放的是對象時,復制結(jié)果是一維的引用變量傳遞給副本的一維數(shù)組,修改副本時,會影響原來的數(shù)組。

2、System.arraycopy的函數(shù)原型

public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,
                             int length)

其中:src表示源數(shù)組,srcPos表示源數(shù)組要復制的起始位置,desc表示目標數(shù)組,length表示要復制的長度。

3、示例

利用System.arraycopy實現(xiàn)數(shù)組復制

package com.shuzu;  
/*System中提供了一個native方法arraycopy()*/  
public class SsytemArrayCopy {  
    public static void main(String[] args) {  
       User [] users=new User[]{new User(1,"admin","admin@qq.com"),new User(2,"maco","maco@qq,com"),new User(3,"kitty","kitty@qq,com")};//初始化對象數(shù)組  
       User [] target=new User[users.length];//新建一個目標對象數(shù)組  
       System.arraycopy(users, 0, target, 0, users.length);//實現(xiàn)復制  
       System.out.println("源對象與目標對象的物理地址是否一樣:"+(users[0] == target[0]?"淺復制":"深復制"));  
       target[0].setEmail("admin@sina.com");  
       System.out.println("修改目標對象的屬性值后源對象users:");  
       for (User user : users){  
           System.out.println(user);  
       }           
    }  
}  
class User{  
    private Integer id;  
    private String username;  
    private String email;  
    //無參構(gòu)造函數(shù)  
    public User() { }  
    //有參的構(gòu)造函數(shù)  
    public User(Integer id, String username, String email) {  
        super();  
        this.id = id;  
        this.username = username;  
        this.email = email;  
    }  
    public Integer getId() {  
        return id;  
    }  
    public void setId(Integer id) {  
        this.id = id;  
    }  
    public String getUsername() {  
        return username;  
    }  
    public void setUsername(String username) {  
        this.username = username;  
    }  
    public String getEmail() {  
        return email;  
    }  
    public void setEmail(String email) {  
        this.email = email;  
    }  
    @Override  
    public String toString() {  
        return "User [id=" + id + ", username=" + username + ", email=" + email  
                + "]";  
    }  
}  

程序運行的結(jié)果:

在這里插入圖片描述

下圖是System.arraycopy()復制的過程:

在這里插入圖片描述

到此這篇關(guān)于Java中的System.arraycopy()淺復制方法詳解的文章就介紹到這了,更多相關(guān)System.arraycopy()淺復制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 大小寫最快轉(zhuǎn)換方式實例代碼

    Java 大小寫最快轉(zhuǎn)換方式實例代碼

    這篇文章主要介紹了Java 大小寫最快轉(zhuǎn)換方式實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Spring事件Application Event原理詳解

    Spring事件Application Event原理詳解

    這篇文章主要介紹了Spring 事件Application Event原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • 聊聊SpringBoot整合Nacos自動刷新配置的問題

    聊聊SpringBoot整合Nacos自動刷新配置的問題

    Nacos作為SpringBoot服務的注冊中心和配置中心,本例將在配置文件中配置一個?cml.age=100?的配置項,程序中編寫一個方法讀取配置文件,并通過?Get--->/test/age?接口提供給瀏覽器訪問,感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • 最新評論

    察雅县| 饶河县| 镇江市| 荔浦县| 宁国市| 盖州市| 禄丰县| 湖南省| 阿坝| 绥德县| 麻江县| 社旗县| 出国| 山东省| 太仓市| 保山市| 南昌县| 贵州省| 墨江| 宝丰县| 洛川县| 固镇县| 延庆县| 东乌珠穆沁旗| 平潭县| 乃东县| 浪卡子县| 大英县| 墨玉县| 都兰县| 克拉玛依市| 凌海市| 北宁市| 东阳市| 孟州市| 惠来县| 临颍县| 莆田市| 永康市| 辽源市| 海城市|