首页IT科技java入门总结([新手向]Java的一个新手天坑)

java入门总结([新手向]Java的一个新手天坑)

时间2025-09-19 13:16:53分类IT科技浏览5987
导读:Java新手天坑!...

Java新手天坑!

想写一篇新手避坑向的文章很久了               ,最近来到园子                    ,终于有机会发表这篇文章了(文笔和技术都不咋地        ,大佬见谅            ,适用于刚入坑没多久的新手群体)

在java中                    ,经过一段学习的人对数组操作应该是了如指掌了            ,但是刚刚入门的小白来说        ,数组却存在着一个隐藏的大坑                    ,我们先用Python示例一下:

#list.py arr1 = [5418,114514,666] arr2 = arr1 arr1[0] = 1 arr2[0] = 2 print(arr1[0]) print(arr2[0])

程序输出结果为:

2

2

哎?

这               ,这不对吧?arr1 和 arr2 明明是两个不一样的列表    ,怎么arr2 改到arr1里了呢?

这是新手很容易遇到的问题                     ,我们添加一行代码                  ,来验证一下猜想              。

#依旧是list.py print(arr1 is arr2)

啥意思呢,is不太常用                  ,给大家解释一下                     ,就是判断两个变量              、列表(我通常称其为实体    ,更精确一些)在内存中的地址是否相同               ,如果相同的话                    ,我们就知道问题发生的原因了                       。

程序输出如下:

2

2

True

果然        ,正是因为内存中的地址一样            ,所以更改arr2时                    ,arr1也一同更改了            ,这俩货本质上一毛一样!

可以这么理解        ,数据是内存中的文件                    ,arr1和arr2只是快捷方式      。

我们把代码在java里实现:

public class ListTest { public static void main(String[] args) { int[] a = {1,2,3}; int[] b = a; a[0] = 10; b[0] = 11; System.out.println(a[0]); System.out.println(b[0]); } }

一开始的内存如图所示:

后来arr1把114514位置的值修改为了10

最后arr1把114514位置的值修改为了11

最后二者的[0]都为11

你               ,学废了吗?

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
笔记本电池保养模式有用吗(笔记本电池保养) qq音乐直播在哪里看直播(QQ音乐能看直播吗_分享3款能看音乐直播的平台软件)