zoukankan      html  css  js  c++  java
  • 数组复制的误区

    复制一个数组元素

    int[]arr1,arr2;

    arr1=new int[]{3,5,7,9,11,13,15,17,19};

    arr2=arr1;//这样并不是复制数组

    下面是这三部操作在内存中的执行过程:

     1 package com.baidu.java;
     2 //关于数组复制的误区
     3 public class Array3 {
     4     public static void main(String[] args) {
     5         int[]arr1,arr2;//声明两个数组
     6         arr1=new int[]{3,5,7,9,11,13,15,17,19};
     7         System.out.println("打印出arr1数组的元素");
     8         for(int i=0;i<arr1.length;i++){
     9             System.out.print(arr1[i]+"	");
    10         }
    11         System.out.println();
    12         System.out.println("打印出arr1的首地址"+arr1);//[I@659e0bfd
    13         arr2=arr1;//并不是复制数组
    14         /*异常在此处,此处赋值给arr2的是arr1的首地址,并没有重新复制出一
    15         个数组,之后再进行操作arr2,也只是对arr1进行操作,因为共用了一个首地址
    16         相当于共用一个数组
    17         */
    18         System.out.println("打印出arr2的首地址"+arr2);//[I@659e0bfd
    19         //对arr2数组元素进行修改
    20         for(int i=0;i<arr2.length;i++){
    21             if(i%2==0){
    22                 arr2[i]=i;
    23             }
    24         }
    25         System.out.println("再次打印出arr1数组的元素");
    26         for(int i=0;i<arr1.length;i++){
    27             System.out.print(arr1[i]+"	");
    28         }
    29     }
    30 }

    运行结果:

  • 相关阅读:
    系统吞吐量(TPS)、用户并发量、性能测试概念和公式
    javascript 匿名函数和闭包
    构建高可扩Web架构和分布式系统实战
    Javascript prototype 的作用
    myeclipse下载地址
    tomacat7.0配置(windows)
    IEEE802.11
    C#(多态)
    C#(泛型集合的使用)
    C#(对象引用)
  • 原文地址:https://www.cnblogs.com/yunqing/p/4751126.html
Copyright © 2011-2022 走看看