• java数组的四种拷贝方法


     1 public class ArrayCopy {
     2 
     3     public static void main(String[] args) {
     4 
     5 
     6 
     7         int[] array = {1,3,4,5};
     8         int[] arrayFor = new int[array.length];
     9 
    10         // for循环拷贝
    11         // 改变arrarFor中的值,不影响array数值的值
    12         // 速度相对较慢
    13         for(int i = 0; i < array.length; i++) {
    14             arrayFor[i] = array[i];
    15         }
    16 
    17         // System.arraycopy(src, srcPos, dest, destPos, length)
    18         // 浅拷贝
    19         // 对于非基本数据类型而言,它拷贝的是对象的引用,而不是去新建一个对象
    20         System.arraycopy(array, 0, arrayFor, 0, array.length);
    21 
    22         // Arrays.copyOf()
    23         // 浅拷贝
    24         // 因为它的底层是调用System.arraycopy(src, srcPos, dest, destPos, length)
    25 
    26         // Object.clone()
    27         // 对对象而言,它是深拷贝,对数组而言,它是浅拷贝
    28 
    29 
    30     }
    31 
    32 
    33 }

    对于Object.clone()方法说明

     1 public class Aby implements Cloneable {
     2     public int i;
     3 
     4     public Aby() {
     5         this.i = i;
     6     }
     7 
     8     @Override
     9     public Object clone() throws CloneNotSupportedException {
    10         return super().clone();
    11     }
    12 }
     1 public class Solution {
     2     public static void main(String[] args) {
     3         Aby aby1 = new Aby(1);
     4         Aby aby2 = (Aby) aby1.clone();
     5 
     6         aby1.i = 2;
     7         System.out.println(aby1.i); //2
     8         System.out.println(aby2.i); //1
     9 
    10         Aby[] arr = {aby1, aby2};
    11         Aby[] arr2 = arr.clone();
    12 
    13         arr2[0].i = 4;
    14         System.out.println(arr[0].i); // 4
    15         System.out.println(arr2[0].i); // 4
    16 
    17     }
    18 }

  • 相关阅读:
    apache安装错误error: APR not found解决办法
    (总结)Nginx配置文件nginx.conf中文详解
    多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
    x-forwarded-for的深度挖掘
    hashcode与字符串
    千万不要误用 java 中的 HashCode 方法
    浅谈Java中的hashcode方法
    MySQL中concat函数
    mysql prepare语句使用
    修改表结构
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10455463.html
Copyright © 2020-2023  润新知