javase_数组详细版

数组详解

```java`/*
数组:[–>代表对象是数组类型

	   I-->代表当前区域对象身上代表的元素类型(元素类型是int类型)
	   @-->代表的是后面是具体的地址
	   659e0bfd-->哈希码值十六进制的表现形式
	 综合在一起  [I@659e0bfd-->整数数组的内存地址值--在内存中唯一确定的值
	 
	 索引:Java为了保证数组中的元素的唯一性,自动进行标号(编号或者索引index-->从零开始)Java为了保证数组中的元素的唯一性
	唯一确定数组中的元素方式--->数组的内存地址+元素的下标--》数组名[下标]
		
数组的定义:	
	数组类型[] 数组名=new 数据类型[]{元素值1,元素值2.....};	
		
		
		int []arr=new int[]{1,2,3};-->数组的元素值确定了数组额长度
			防止钻空子[]中什么值都不能进行
			
	new关键字:
		int []arr1[];arr1={3,4,5};-->进行报错,没有开辟内存空间,无法元素
		作用:在内存中开辟内存空间进行存储,在堆里面进行开辟空间
		int []arr={1,2,3};底层默认开辟空间
	系统默认初始值:系统默认初始值优先于程序初始值
	
		基本数据类型:
			/*(byte、short、int-->0)、(char--'\u0000' \u-->代表以u16进行的编码)
			(long-->0L)、(float--0.0F)、(double--0.0)、(boolean-->false)*/
		/*引用数据类型:Java中的所有引用数据类型系统默认值都是null
		
	java内存:
		栈:存储的是局部变量,当存储内容使用完毕会被立即清除,存储的java的计算过程
		堆:存储的是对象,当存储内容使用完毕之后等到某个时刻进行回收
		方法区:(静态资源,类的信息,方法,属性)
		本地方法栈(不讲)
		寄存器(程序计算器)(不讲)
	
	三个数组的共享:
	
		两个引用指向同一个堆内存--》共享
		int[] arr2=arr1;
	
		
		
		*/

class ArrayDemo1{

public static void main(String[] args){
	
	/**int [] arr=new int[3];
	arr[0]=10;
	//声明
	int []arr1;
	//初始化
	arr1=new int[5];
	System.out.println(arr);
	System.out.println(arr[0]);
	System.out.println("---------------------")
	*///方式1
	//int []arr=new int[]{1,2,3};
	//方式2
	//int []arr=new int[5];
	//声明
	//int []arr;
	//初始化
	//arr=new int[]{1,2,3};
	//方式3
	//int arr[]={1,2,3};
	//char[] arr=new char[4];
	System.out.println(arr[0]);
	
	//三个数组的共享效果
	
	int[]arr1=new int[3];
	arr1[1]=10;
	int[]arr2=arr1;
	arr2[1]=8;
	System.out.println(arr1[1]);
	System.out.println(arr2[1]);
}	

}`



**数组之间的复制:**

    1. 使用System.arraycopeof(arr,0,arr1,srclength,length)---->效率最高,使用系统的复制方式
    2. 使用Arrays.copeOf(arr,newlength)---->复制的是新的数组,基于第一种方式,但是缺点在于只能从头开始复制
    3. clone()对象的克隆性质,效率最低
    4. for循环,跟第二中差不多,效率不高


**数组的空间问题:****挖坑专用**

	1. 数组没有开辟空间就不能进行存储数据;没有空间的制约就没有内存分配;
	2. arr[2]={3,4,5};//没有开辟空间无法存储数据---二维数组的情况下
	3. new---关键字用于开辟空间资源,在堆中进行开辟
	4. int []arr={1,2,3};底层默认开辟空间


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值