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 }

    运行结果:

  • 相关阅读:
    Update操作一定是先Delete再Insert吗?
    asp.net中的并发控制
    asp.net2.0下利用javascript实现treeview中的checkbox全选
    Json
    SQL Server2005 事务隔离级别
    设计概念模型
    前沿视频教程
    PowerDesigner使用
    表单 数字字符验证正则
    CharIndex對比Replace
  • 原文地址:https://www.cnblogs.com/yunqing/p/4751126.html
Copyright © 2011-2022 走看看