鱼C论坛

 找回密码
 立即注册
查看: 2934|回复: 7

一个java的问题,求解惑

[复制链接]
发表于 2013-5-3 21:10:33 | 显示全部楼层 |阅读模式
10鱼币
public class Arraytest
{
        public static void main( String[] args)
        {
                String[] str1 = new String[3];
                str1[0] = new String("tian");
                str1[1] = new String("kong");
                str1[2] = new String("nan");

                String[] str2 = new String[3];
                System.arraycopy( str1, 0, str2, 0, str1.length);               
               
                str2[2] = "fengyun";  //这一行
                System.out.println(str1[2]);
                System.out.println(str2[2]);
        }
}

刚学java, 学到了数组
这个程序我是这样理解的, 见图


QQ截图20130503210316.png

那么我觉得复制了之后str1[2]和str2[2]应该指向同一个位子nan那里呀,
为什么改变了 str2[2]的值,str1[1]的值没有变呢 ,帮忙解解惑,


最佳答案

查看完整内容

这样希望能看明白。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-5-3 21:10:34 | 显示全部楼层
2013-06-20 14-16-47.png
这样希望能看明白。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-15 17:42:45 | 显示全部楼层
每次赋值都会生成一个一个新的对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-20 13:50:52 | 显示全部楼层
public static void main(String[] args) {
                String[] str1 = new String[3];
        str1[0] = new String("tian");
        str1[1] = new String("kong");
        str1[2] = new String("nan");

        String[] str2 = new String[3];
        System.arraycopy( str1, 0, str2, 0, str1.length);               
        
        str2[2] = "fengyun";  //这一行
        System.out.println(str1[2]);
        System.out.println(str2[2]);
///////////////////////////////////////////////////////////
        String[] str3 = new String[3];
        str1[0] = new String("tian");
        str1[1] = new String("kong");
        str1[2] = new String("nan");

        String[] str4 = new String[3];
        str4 = str3;               
        
        str4[2] = "fengyun";
        System.out.println(str3[2]);
        System.out.println(str4[2]);
        }
你比较这两段看看,这里面涉及到一个引用类型和值类型之间的操作。第一种操作,是把值分辨赋给数组二;而第二种则是将数组4指向数组3的地址,对3和4的值进行操作,实际上是对相同的数据在进行操作。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-3 22:51:17 | 显示全部楼层
看看,学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-4 13:33:06 | 显示全部楼层
再学习学习,温故而知新
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-4 19:35:02 | 显示全部楼层
再看看,温故而知新
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-4 21:46:42 | 显示全部楼层
看看看,学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 00:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表