java数组理解

  数组本身是 引用数据类型 ,而数组中的元素可以是 任何数据类型 ,包括
基本数据类型和引用数据类型。
  创建数组对象会在内存中开辟一整块 连续的空间 ,而数组名中引用的是
这块连续空间的首地址。
  数组的 长度一旦确定,就不能修改
  我们可以直接通过下标 ( 或索引 ) 的方式调用指定位置的元素,速度很快。
  数组的分类:
  按照维度:一维数组、二维数组、三维数组、
  按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组 ( 即对
象数组 )
接下来我们具体看看java中数组的一些规范和操作吧:
一维数组的使用:声明

一维数组的使用:数组元素的引用
一维数组的使用:数组元素的引用

 

 

 

 要想理解数组还得是从内存层面去理解消化他们,多说无益,上解释

public class Test{
public static void main(String args[]){
int[] s;
s = new int[10];
//int[] s=new int[10];
//基本数据类型数组在显式赋值之前,
//Java会自动给他们赋默认值。
for ( int i=0; i<10; i++ ) {
s[i] =2*i+1;
System.out.println(s[i]);
} } }

在执行int[]s的时候内存解析如下:

 在执行s = new int[10]时内存解析如下:

 for循环赋值以后:

到这里我们也可以看看java程序里面的内存结构:

 我们在使用数组的时候应该注意什么:

一个比较俗的玩意是什么?就是我们每new一个东西,给一个变量,该变量就会指向新new对象的地址!!!注意java和c语言不同,c语言中的数组名是不可变的,相当于一个常量指针;而java中的数组名就相当一个可以变化的指针,如果不理解,请看以下图示:

 

 看到这里,相信你已经理解了一维数组了,那么接下来就是多维数组了

Java 语言里提供了支持多维数组的语法
对于二维数组的理解,我们可以看成是一维数组 array1又作为另一个一维数组 array2 的元素而存
在。其实, 从数组底层的运行机制来看,其实没 有多维数组。(相当于套娃,数组里面套数组)

 

 

和c语言不一样的数组不同,c语言的数组肯定是也该规则的矩阵!!

多维数组的使用

二维数组的内存解析是特别的重要的理解,理解这部分很重要!!!!

少说废话上图上代码

 

 

到这里二维数组的基本解释也差不多了,下面我们,我们再说一下数组中的易错点吧:

如下图我们定义了俩个数组,然后对arry1进行了new,而对arry2没有new,接着将arry1的值赋给了arry2,在这里我们需要的注意这里的赋值是地址赋值!!!即arry1和arry2指向了同一个空间!!!,共享内存!!!

 

 想要实现赋值的话,我们可以通过for循环一个一个的去赋值!!!

对于数组我们有工具类可以对它进行操作。

import java.util.Arrays;

public class text {
	public static void main(String[] args) {
		int a[]= {4,3,5,1};
		int b[]= {2,4,5,6};
		Arrays.sort(a);
		System.out.println(Arrays.equals(a, b));
		System.out.println(Arrays.toString(a));
		
	}
}

 最后的最后是一些数组的异常:

 (资料参考尚硅谷)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个风轻云淡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值