黑马程序员_数组1

来源:互联网 发布:网络用语兔子 编辑:程序博客网 时间:2024/05/16 18:24

-----------------------------------------------------------------android培训、java培训、期待与您交流! ----------------------------------------------------------------


1.内存结构

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

栈内存(栈区):用于存储局部变量,当数据使用完,所占空间会自动释放

堆内存(堆区):a.数组和对象,通过new建立的实例都存放在堆内存中。

                           b.每一个实体都有内存地址

                           c.实体中的变量都有默认初始化值

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

方法区

④本地方法区

⑤寄存器

1.1 基本数据类型在初建数组初始值

/** * 研究各个基本数据类型数组的默认值 *  */public class ArrayDemo1 {public static void main(String[] args){byte[] a = new byte[1];short[] b = new short[1];int[] c = new int[1];float[] d = new float[1];double[] e = new double[1];char[] f = new char[1];boolean[] g = new boolean[1];long[] h = new long[1];System.out.println("default_byte = "+a[0]);System.out.println("default_short = "+b[0]);System.out.println("default_int = "+c[0]);System.out.println("default_float = "+d[0]);System.out.println("default_double = "+e[0]);System.out.println("default_char = '"+f[0]+"'");System.out.println("default_boolean = "+g[0]);System.out.println("default_byte = "+h[0]);}}

运行结果:

运行结果图

2. 数组的定义和常见异常

定义1: 该定义在内存中分配了空间且有赋给数组默认值。

int[] arr = new int[3]
内存分配图:

内存分配图

定义2: 在创建数组对象的同时赋给指定的值

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


常见异常:

①数组下标越界异常

ArrayIndexOutOfBoundsException

②空指针异常

ArrayIndexOutOfBoundsException


3 数组的常见操作

3.1 遍历:即访问数组中的所有元素

class ArrayDemo2{public static void main(String[] args) {int[] arr = new int[]{9,7,2,5,3,1};printArray(arr);}//打印数组的值,元素之间用逗号隔开public static void printArray(int[] arr){System.out.print("[");for (int i=0; i<arr.length; i++) {if (i<arr.length-1) System.out.print(arr[i]+",");elseSystem.out.println(arr[i]+"]");}}}

3.2 获取数组中的最值

class ArrayDemo3{public static void main(String[] args) {int[] arr = new int[]{9,7,2,5,3,1};int maxValue = getMax(arr);int minValue = getMin(arr);int maxValue_index = getMax_index(arr);int minValue_index = getMin_index(arr);System.out.println("maxValue = "+ maxValue);System.out.println("minValue = "+ minValue);System.out.println("maxValue_index = "+ maxValue_index);System.out.println("minValue_index = "+ minValue_index);}/*方法1: 通过比较记录数组中的值方法2: 通过比较记录数组的下标 *///获取数组中最大的元素public static int getMax(int[] arr){int temp = arr[0];for (int i=1; i<arr.length; i++) {if (arr[i]>temp){temp = arr[i];}}return temp;}//获取数组中最小的元素public static int getMin(int[] arr){int temp = arr[0];for (int i=1; i<arr.length; i++) {if (arr[i]<temp){temp = arr[i];}}return temp;}//方法2获取数组中最大的元素public static int getMax_index(int[] arr){int index = 0;for (int i=1; i<arr.length; i++) {if(arr[i]>arr[index]){index = i;}}return arr[index];}//方法2 获取数组中最小的元素public static int getMin_index(int[] arr){int index = 0;for (int i=1; i<arr.length; i++) {if(arr[i]<arr[index]){index = i;}}return arr[index];}}

最后,可以通过方法的重载扩充各种基本数据类型的数组方法。



0 0
原创粉丝点击