数组——Robyn编程学习(Java)

数组

数组定义时需要注意的地方

 //1.直接定义数组(知道数组的大小容量)
int aa[] = new int[5];
//2.先声明一个空数组,此时内存中已经有一个指针指向数组地址,然后再new分配空间
int b[] = null;
b = new int[6];
//3.直接初始化,因为这个是静态初始化,数组的声明和初始化必须同步,就是不能忽视数据类型的变化,不能把null 赋成3吧
int cc[] = {3,5,6,1,3,4};

时刻要记住:数组是引用类型,只要一旦声明,就相当于创建了一个数组对象,除非用new int实例化,不能再用别的数组对象来直接赋值了。

数组属于引用类型

在方法中数组属于引用类型,也就是传递的是数组的地址,所以形参会影响实参

数组赋值机制(重点)

数组在默认情况下是引用传递,赋的值是地址,即两个数组的引用存放在栈中,都指向堆中的同一个地址

int arr1[] = {1,2,3};
int arr2[] = arr1;
arr2[2] = 19;

数组要实现完全拷贝,就得通过遍历来进行拷贝

int[] a = {1,2,2};
int[] b = {3,4,5};
a = b;

数组拷贝的常用4种方法
数组拷贝方法
//这里相当于直接丢掉了a的指针,相当于a数组被销毁了,a指向和b一样的对象。

补充:int 与 integer 的区别

1、数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型;
2、默认值不同:int 的默认值是 0,而 Integer 的默认值是 null;
3、内存中存储的方式不同:int 在内存中直接存储的是数据值,而 Integer 实际存储的是对象引用,当 new 一个 Integer 时实际上是生成一个指针指向此对象;
4、实例化方式不同:Integer 必须实例化才可以使用,而 int 不需要;
5、变量的比较方式不同:int 可以使用 == 来对比两个变量是否相等,而 Integer 一定要使用 equals 来比较两个变量是否相等。
——变量类型的比较可参考博文:

Integer与int的区别

PS:Integer 是 int 的包装类,包装类的存在就是解决基本数据类型没法做到的参数、序列化、类型转换和数据缓冲的问题(类比与流和包装流)

posted @   深海之燃  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示