目录
1.静态初始化数组
1)完整定义格式
int[] arr1 = new int[]{1,2,3,4,5};
int arr2[] = new int[]{1,2,3,4,5};
2)简化定义格式
int[] arr1 = {1,2,3,4,5};
int arr2[] = {1,2,3,4,5};
注意:什么类型的数组只能存储什么类型的元素
2.数组的访问
访问数组的元素:数据名称 [索引] 索引从0开始,到最大长度减1结束
访问数组的长度:数组名称.length
int[] arr = {1,2,3,4,5}
arr[0] = 123
System.out.println(arr[0]);
System.out.println(arr.length);
3.数组的遍历
int[] arr = {10,20,30,40,50};
for(int i = 0;i<5;i++)
{
System.out.println(arr[i]);
}
4.动态初始化数组
int[] arr = new int[3];
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
注意:1)动态初始化数组不能和静态混用
2)动态初始化数组的元素有默认值
例:int / char <=> 0,double <=> 0.0,String <=> null
5.补充:Java 内存的分配与执行
Java中 java 文件编译为 class 文件后会放到 JVM虚拟机中执行
内存分配:方法区,堆,栈,本地方法栈,寄存器 (JDK8开始,将方法区替代为元空间)
1)栈:方法运行时使用的内存,如main方法运行,变量的创建
2)堆:存储对象和数组等,利用 new 关键字创建
3) 方法区:存储可以运行的 class 文件
6.案例
1)数组排序(冒泡排序)
int[] arr = {3,4,234,3241,16,38,231,1};
for(int i = 0;i<arr.length-1;i++)
{
for(int j = 0;j<arr.length-1-i;j++)
{
if(arr[j]>arr[j+1])
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i = 0;i<arr.length;i++)
{
System.out.println(arr[i]);
}
2)数组翻转(头尾指针)
int[] arr = {1,2,3,4,5,6,7,8,9};
int head = 0;
int tail = arr.length-1;
while(true)
{
if(head == arr.length/2)
{
break;
}
int temp = arr[head];
arr[head] = arr[tail];
arr[tail] = temp;
head++;
tail--;
}
for(int i = 0;i<arr.length;i++)
{
System.out.println(arr[i]);
}