1. 数组声明
| |
| dataType[] arrayName; |
| |
| dataType arrayName[]; |
2. 数组创建
2.1 动态初始化
| |
| dataType[] array = new dataType[arraySize]; |
- 如果动态初始化会赋予该类型元素的默认值:0,0.0,false
- 可以指定数组长度,其中数组长度:arrayName.length;
| |
| |
| int[] a; |
| a = new int[10]; |
| System.out.println(a); |
2.2 静态初始化
| |
| dataType[] arrayName = new dataType[]{value1, value2, value3, ... }; |
| |
| dataType[] arrayName = {value1, value2, value3, ... }; |
- 静态初始化,数组大小由系统根据初始赋值数量计算自动得出
- 不能手动给arraySize,即使和赋值数量相等也不行,也就是说第二个[]内不可以有参数
- 此种方式也保留了更改数组内每个值的权利
3. 数组的存放
3.1数组内容(元素)都是存放在堆中的。
- 无论数组是动态初始化还是静态初始化都用了 new 关键字来创建空间。静态初始化简写格式实际上也 new 了。
3.2 数组名存放在堆或栈中
数组名实际上是一个引用,存放的是堆区的地址值。这个变量存放在堆区还是栈区取决于它是局部变量还是实例变量。
| public class Number { |
| int array = new int [10]; |
| |
| public void fun(){ |
| int array = new int [10]; |
| } |
| } |
3.2.1 地址扩展
| int[] a = new int[10]; |
| System.out.println(a); |
地址值的格式含义 [I@1b6d3586
[
:表示当前是一个数组
I
:表示当前数组里面的元素都是int类型的
@
:表示一个间隔符号。(固定格式)
1b6d3586
:这才是数组的地址值的有用部分(十六进制), 不是真的地址值,只是某种hash映射,不过平时我们习惯性的会把这个整体叫作数组的地址值。
4.数组的使用
| public static void main(String[] args) { |
| int[] array = new int[] {1,2,3,4,5}; |
| int count = 0; |
| |
| for (int a:array) { |
| System.out.println("array["+(count++)+"]=" + a); |
| } |
| System.out.println("-------------"); |
| |
| array[2]=4; |
| |
| |
| for (int i = 0; i < array.length; i++) { |
| System.out.println("array["+i+"]=" + array[i]); |
| } |
| } |
5.Arrays类
- Arrays类里的方法都是静态方法可以通过Arrays.方法名()直接调用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!