【Java】数组

数组

数组的定义

  • 数组:引用类型的变量
  • 变量 : 数组类型的引用
  • 堆上 : 实际存储数组对象

定义语法

int []  a;    
int a[];   //非常不建议

赋值

int[] a={1,2,3,4,5};
int[] a=new int [5];        //默认值  0;       //0的 类型含义
int [] a=null;              //只定义了一个数组类型的引用变量
                           //没有数组对象
                          // a 没有指向任何数组

如果数组中的元素没有初始化,元素的值就是元素类型的默认值;

int[]a=new int[]{12345};

数组的操作

  1. 根据下标访问对应的元素 例如:a[index]————( 0<=index<length)
  2. 获取数组长度 --------------->a.length
  3. index 类型 int类型

理解什么是引用(变量的引用类型)

  1. 引用是用来找到实际对象的线索
  2. java 内存中有3个区域
    1)栈
    2)堆
    3)方法区
  3. 4种形式的变量
		形参        			栈                int[]a=null;  
		局部变量  			栈                int[]a={12345};
		属性           		堆                int[]b=a;
		静态属性            方法区         	 b[0]=10; a[0]=
  1. 方法调用过程中(无论是基本数据类还是引用数据类型),java都是值传递,所
    有形参的改变都不会影响实参 。
  2. 一些操作的理解
	int []a={1,2,3,4,5};
	int []b=a;          	 // b也指向a指向的数组对象  
	b=new int[]{10,11}; 	//b重新指向新的数组对象,不会影响a和a指向的对象
	b[0]=100//改变的是b指向的数组对象的内容不会影响a

引用重点:

	1.引用就是一条线索,指向存放在堆中的真实数组数据;
	2.方法调用过程中,引用也是值传递,形参的改变不会影响实参;
即:
	1.引用类型是个线索,用来找到堆中的真正数据;
	2.引用类型调用也是值传递,形参的改变不会影响实参;
public static void  method(int []a)
{
    a=new int[]{1011121314};
}
public static void main(String [] args){
    int [] a={1,2,3,4,5};
    method(a);
    //a[]={1,2,3,4,5}
}
public static void method(int []a){
    a[0]=10;
}
public static void main(String[] args){
    int []a ={12345};
    method(a);
    //a[]={10,2,3,4,5};
}

java支持的一些数组操作

//java util.Arrays 包
//先导入才能使用
import java.util.Arrays;
System.lang.System  包
//数组拷贝
System.arraycopy (源数组引用,源下标,目标数组,目标下标,长度);
Arrays.copyOf(int []a,int newlength);
Arrays.copyOfRange(int[]a,int from,int to);
//填充函数
Araays.fill(int []a,int v);
//toString:返回指定数组的内容的字符串表示形式
//a为数组,用此函数输出
Arrays.toString(a);
//数组二分查找
Arrays.binarySearch(int []a,int v);

java中垃圾回收

没有引用指向的对象(数组)
1)垃圾回收,什么是垃圾,没有引用指向对象就是垃圾(不保证会立即回收);
2)int [] a = null; a引用没有指向任何数组

数组的遍历

	int[]a={1,2,3,4,5};
	for (int i=0;i<a.length;i++)
	{
	    a[i];
	}
	for (int element:a)
	{ //foreach  形式  老版本不支持
	    element;
	}

常见的错误:

  1. Arrary index Out of Bounds Exception 下标越界;
  2. int [] a=null; a[0]=100; NullPointerException;
  3. 多维数组的了解:
    java中多维数组存的元素类型都是引用,所以可以有阶梯状数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值