java中实体数组赋值,java学习-数组

数组的定义

1> 概念

同一种类型数据的集合。其实数组就是一个容器。

2> 数组的好处

可以自动给数组中的元素从0开始编号,方便操作这些元素。

3> 格式1:

元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

示例:int[] arr  = new int[5];

---new 用于创建数组的关键字,在堆里开辟空间,如果:int[] att  = arr; 那么arr  att 都指向新开辟空间,如果定义 arr=null;的话表明把数组arr与实体空间断开连接,不影响att.

格式2:

元素类型[] 数组名 =new 元素类型[]{元素,元素,……};

int[] arr = new int[]{3,5,1,7};

int[] arr = {3,5,1,7};   //既明确了元素的个数又明确了元素的内容.

//获取数组元素格式的方式. 数组名.length

System.out.println("len:"+arr.length);

数组的内存结构

java中实体数组赋值,java学习-数组_第1张图片

内存结构

Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

栈内存

1> 用于存储局部变量,当数据使用完,所占空间会自动释放。

堆内存

1> 数组和对象,通过new建立的实例都存放在堆内存中。

2> 每一个实体都有内存地址值

3> 实体中的变量都有默认初始化值,不同类型初始值不同。int  0, double 0.0,char \u000,boolean  false.

4> 实体不在被使用,会在不确定的时间内被垃圾回收器回收

方法区,本地方法区,寄存器

数组操作常见问题

1> 数组脚标越界异常(ArrayIndexOutOfBoundsException)

int[] arr = new int[2];

System.out.println(arr[3]);   //编译时没有问题,运行时才去找实体,所以运行时才会报错.

访问到了数组中的不存在的脚标时发生。

2> 空指针异常(NullPointerException)

int[] arr = null;

System.out.println(arr[0]);

arr引用没有指向实体,却在操作实体中的元素时。

数组常见操作

1> 获取最值(最大值,最小值)

2> 排序(选择排序,冒泡排序)

3> 折半查找(二分查找)

~~~~~~~~~~~~~~~~~获取最值~~~~~~~~~~~~~~~~~~~~~

class ArrayDemo3

{

public static void main(String[] args)

{

/*

常见的数组的操作:

1,获取元素。遍历。

*/

int[] arr = {34,15,617,22,19,88};

//      for (int x = 0; x

//      {

//            System.out.println("arr["+x+"] = "+arr[x]+";");//arr[0] = 34;

//       }

//  测试最大值。

int max = getMax2(arr);

System.out.println("max="+max);

}

/*

2,获取最大值。

思路:

1,定义一个变量。

2,遍历数组,让每一个元素和该变量中的数据进行比较。

3,改变量每一次记录较大的值。遍历结束,该变量中存储的就是最大值。

*/

/*

需求:定义一个获取整数数组最大值的功能。

明确1:有结果吗?有,整数。最大值。

明确2:有未知内容吗?有,数组。

*/

public static int getMax(int[] arr)

{

//1,定义变量,记录较大的值。

int max = arr[0];//初始化是数组中的任意一个元素

//2,遍历数组。

for (int x=1; x

{

//3,进行判断比较。

if(arr[x]>max)

max = arr[x];

}

return max;

}

//第二种最大值。

public static int getMax2(int[] arr)

{

int maxIndex = 0;//初始化为数组中

你可能感兴趣的:(java中实体数组赋值)