数组
笔记Notes
- 数组介绍
- 数组的声明
- 数组初始化
- 数组元素默认值
- 数组复制
- 数组反转
- 数组查找:线性查找、二分查找
- 数组排序:冒泡排序
- 数组介绍
- 数组名: 创建数组内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
- 下标(或索引):从0开始
- 数组是引用数据类型, 元素相当于类的成员变量,
- 数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化
- 数组中的元素可以是基本数据类型也可以是引用数据类型
- 数组的声明
- 声明:String[] names;
- int scores[];
- 数组初始化:静态初始化、动态初始化
- 静态初始化:数组的初始化和赋值是同时进行的
- names = new String{"12","34","56","78"};
- 动态初始化:数组的初始化和赋值分开进行
- String[] names2 = new String[5];
- names2[0] = "123";
- 下面的方式数组的声明和初始化不能分开。
int[] age = { 1, 2, 3, 4, 5, 6 };
- 数组元素的默认值
- byte、short、int、long -->0
- float、double --->0.0
- bolean --> u0000
- 引用数据类型(类、数组、接口)--->null
- 一维数组内存解析
- String[] persons = new String[3];
- String[] persons2 = persons;
- //persons 和 persons2 实际上指向的是同一块内存
- 堆、栈、方法区
- 堆(heap):用来存放对象的实例,只要是new出来的都在堆里
- 栈(stack): 存储局部变量, 如基本数据类型、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)
- 方法区(Method Area):用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
总结Summary
- 静态初始化与动态初始化
- 数组反转
- 数组查找:二分查找
- 数组排序:冒泡排序