`
katouhei
  • 浏览: 11262 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

关于两个数组的疑问

 
阅读更多
首先是有一个数组初始化了
int []intt = new int[]{1,2,3,4,5,6,7,8,9};
定义一个数组等于前面初始化的数组变量
int []arrint = intt;
修改后一个数组的元素值
arrint[arrint.length - 1] = 0;
打印前一个数组的元素
System.out.println(intt[intt.length - 1]);
出来的结果是0.
而对象
String str = new String();
str = "abc";
String str1 = str;
System.out.println("str1:"+str1);
System.out.println("str:"+str);
str1 = "修改";
System.out.println("str1:"+str1);
System.out.println("str:"+str);
这个改变了就不会影响原来的值。
这两个都是对象,只不过一个是数组,而另一个是不是数组,后来想想可能和他们的存储方式有关系,数组是链式存储,如果改一个值的话,而不影响之前的变量,那么就要把数组中所有的元素的地址重新分配,要不能就会出现一个地址后面连着两个地址,这应该是不允许的,所以就只能是改变一个而另一个也被改变了,而String对象只是一个地址,当你重新赋值给他时,就等于是给了他一个新的地址,而改变这个有不会影响到其他,所以不会对赋予他值的对象有影响。不知这样理解是否正确???
分享到:
评论

相关推荐

    数组简单讲解

    此外,Java提供了一些内置的数组方法,如`Arrays.sort()`用于对数组进行排序,`Arrays.equals()`比较两个数组是否相等,以及`Arrays.copyOf()`用于复制数组。这些工具函数极大地简化了数组的处理。 数组是编程基础...

    C++二维数组中数组元素存储地址的计算疑问讲解

    第一张图在讲原理,是我们在人脑里面要以“字节”为单位计算,p为首地址,单位是字节,再往后多少个字节,必须考虑到在整型数组中每个数组元素占4个字节,从首地址到a[i][j]有(i*col+j)个元素,计算其字节地址时,乘...

    程序设计-二维数组.pptx

    ` 这里只初始化了第一个子数组的前两个元素和第二个子数组的第一个元素,其余元素自动赋值为0。 - `int a[ ][5]={1,2,3,4,5,6,7,8,9,10};` 这种情况,数组的行数没有指定,但列数是5,数组会根据提供的元素自动调整...

    js代码-数组内两数相加等于某值

    这个问题的基本需求是找到一个数组中的两个元素,使得它们的和等于一个特定的目标值。以下是对这个主题的详细解释: 首先,我们需要理解数组的概念。在JavaScript中,数组是一种数据结构,它可以存储一系列的值,...

    js代码-力扣53-给定一个数组,找到具有最大和的连续子数组

    综上所述,`js代码-力扣53-给定一个数组,找到具有最大和的连续子数组` 这个问题主要涉及动态规划和 Kadane's Algorithm 的应用,通过 JavaScript 实现,可以高效地找出给定数组中最大连续子数组的和。`main.js` ...

    实例讲解易语言复制数组

    在示例中,我们定义了两个数组:`a` 和 `b`。定义数组的语法通常是这样的: ```易语言 .整数数组 a, 10 // 定义一个包含10个整数元素的数组a .字符串数组 b, 5 // 定义一个包含5个字符串元素的数组b ``` 这里...

    php compact 通过变量创建数组

    下面给出的两个实例展示了`compact`函数的用法: ```php $city = "San Francisco"; $state = "CA"; $event = "SIGGRAPH"; $location_vars = array( "city", "state"); $result = compact("event", "nothing_here",...

    PHP 根据key 给二维数组分组

    要根据type字段对这个二维数组进行分组,可以编写一个名为array_group_by的函数,该函数接收两个参数:$arr(二维数组)和$key(需要进行分组的键)。 具体到代码实现,array_group_by函数首先创建一个空数组$...

    Go语言深度探索:切片与数组的奥秘

    本文将深入探讨Go语言中的两个核心数据结构——切片(Slice)和数组(Array)。我们将从定义、特点、区别以及应用场景等方面进行全面分析,并通过具体的代码示例加深理解。 #### 一、Go语言的数据结构:切片与数组 ...

    C++中用new创建二维数组和指针数组实例代码

    然而,由于C++不支持直接动态分配多维数组,我们通常需要通过两个步骤来实现。以下是两种等价的方法: **方法一:使用指向数组的指针** ```cpp int (*p)[10] = new int[5][10]; ``` 在这个例子中,`p`是一个指向...

    Javascript从数组中随机取出不同元素的两种方法

    `shuffle`函数接受一个数组参数,不传入元素数量参数,而是直接对整个数组进行随机排序,适用于需要对整个数组进行随机化的场景。之后可以通过`slice`等方法获取特定的随机子数组。 洗牌算法是亲测有效的方法,尤其...

    多线性代数 vibhor bhardwaj:考虑两个任意数组 ax 和 by 以及由任意乘积产生的数组 cz。-matlab开发

    如果两个数组具有相同的尺寸,它们的操作会对应元素进行。例如,`ax + by` 将对 `ax` 和 `by` 的对应元素进行相加。 - **矩阵乘法**:用 `*` 表示,要求一个矩阵的列数与另一个矩阵的行数相同,其结果是新的矩阵,...

    数据导入与预处理-jupyter练习题一numpy

    比如,如果你有两个形状相同的二维数组`array_2d1`和`array_2d2`,可以进行加减乘除等基本运算,如`array_2d1 + array_2d2`。这将对应元素相加。 布尔索引在数组操作中也非常有用,例如,你可以找到大于某个值的...

    Java中数组的创建与传参方法(学习小结)

    数组的创建分为两个步骤:声明和分配内存空间。声明数组时,我们需要指定数组的类型和变量名。例如: ```java int score[] = null; // 声明一个int类型的数组score,初始值为null ``` 接着,我们需要为数组分配...

    PHP中用hash实现的数组

    关于函数中的两个疑问: 1. `hash = 5381`设置的理由:这个初始值的选择是为了提高哈希函数的散列质量,使得哈希值分布更加均匀,从而减少哈希冲突。 2. `step=8`的循环方式是为了效率:是的,这种做法提高了计算...

    php数组(array)输出的三种形式详解

    这两种写法都能达到相同的效果,通过each()函数逐个获取数组元素,并输出键和值。 ### 第三种形式:直接访问数组元素输出 在PHP中,可以直接通过指定数组索引来访问数组元素,前提是数组索引有效。对于关联数组...

    c++创建二维动态数组与内存释放问题

    在上面的实例代码中,我们首先创建了一个 5x8 的二维动态数组,然后我们使用两个 for 循环来给数组赋值。接着,我们使用另一个 for 循环来输出数组的元素。最后,我们释放了数组所占用的内存。 四、总结 本文主要...

    中英代码理解数组的二叉查找法

    易语言代码的运行结果表明,当查找数值9时,返回的下标为4,这是因为数组下标从1开始,实际上9位于数组的第五个位置。Java代码的`binarySearch`函数给出了相同的逻辑,注释清晰地解释了每一步的操作。 为了更好地...

    在其他数都出现偶数次的数组中找到出现奇数次的数

    首先,我们对数组进行整体异或,得到的结果`res`是这两个数的异或。然后,我们找到`res`中最右边的1,这一步可以通过`res ^ (~res + 1)`来完成。接下来,我们可以遍历数组,用这个1作为标准,筛选出与之异或结果为0...

    JS中的数组转变成JSON格式字符串的方法

    1. 准备原始数组:首先需要有一个JavaScript数组,这个数组可以包含基本数据类型,也可以包含复杂的数据类型,如对象等。 2. 构建中间对象数组:由于JSON格式中数组可以包含对象,所以我们需要遍历原始数组,为数组...

Global site tag (gtag.js) - Google Analytics