Day08-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\array-ArrayDemo01~07

数组

  1. 首先要声明数组变量才能使用如dataType[] arrayRefVar;
  2. java语言中使用new操作来创建数组,如dataType[ ] arrayRefVar = new dataType[arraysize]
  3. 数组通过索引访问,索引从0开始

内存分析

  1. 堆:存放new的对象和数组;可以被所有的线程共享,不会存放别的对象引用

  2. 栈:存放基本变量类型(包括变量的具体数值;声明数组时先在栈中生成一个空间存放带名称的数组);引用变量的对象(会存放这个)

  3. 方法区:可以被所有的线程共享;包含了所有的class和static变量

  4. 声明数组时(int[] = array)先在栈中生成一个空间存放带名称的数组

  5. 创建数组时(array = new int[10]),栈中的数组前往堆中开辟了一个分为十小份的内存空间。

  6. 给数组中的元素赋值(num[0] =1),堆中的内存空间才被赋值

  7. 不能越界输出,数组下标越界java.lang.ArrayIndexOutOfBoundException

三种初始化

  1. 静态初始化:没有事先给定空间,赋值几个就是几个空间

int[] a = {1,2,3};

Man[] mans = {new Man(1,1),new Man(2,2)};

  1. 动态初始化:先设置了一定的空间

int[] a = new int[10];

a[0] = 1;

a[1] = 2;

数组的默认初始化:数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中每一个元素也按照实例变量同样的方式被隐式初始化,即创建int[10]时,其中int[0]到int[9],均被赋值,其值为0

数组的四个基本特点

  1. 长度确定,创建后不可更改
  2. 元素必须是相同类型
  3. 数组中元素可以是任何类型,包括基本类型int等和引用类型Man等
  4. 数组变量属于引用类型,数组也可以看成对象
  5. 数组本身就是对象,java的对象存储在堆中,因此数组无论保持原始类型还是其他对象类型,数组对象本身是在堆中的,数组元素相当于对象的成员变量
  6. 数组边界,合法区间:[0,length-1] java.lang.ArrayIndexOutOfBoundException

数组的使用

  1. For-Each循环:arrays.for
  2. 数组作方法入参
  3. 数组作返回值
  4. 普通for循环

多维数组

int[][] array = {{1,2},{2,3},{3,4},{4,5}};
     //int[4][2],四行两列
    /*
    1,2 array[0]
    2,3 array[1]
    3,4 array[2]
    4,5 array[3]
     */

冒泡排序(八大排序中最出名的)

嵌套循环中,算法的时间复杂度为O(n2)

posted @ 2025-09-25 22:07  David大胃  阅读(15)  评论(0)    收藏  举报