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

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

时间2025-06-17 06:53:17分类IT科技浏览4951
导读: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
plendil说明书(pinia详细使用步骤(0基础)) 图例echarts(Echarts图表位置调整的图文教程)