package com.shao.Arrays; public class arrayDemo01 { public static void main(String[] args) { int[] nums;//数组的声明 nums = new int[5];//数组的创建,分配内存 nums[0]=0; nums[1]=1; nums[2]=2; nums[3]=3; nums[4]=4; //计算所有元素之和 int sum = 0; for (int i = 0; i < nums.length; i++) { sum+=nums[i]; } System.out.println(sum); } }
三种初始化:
静态初始化
动态初始化
默认初始化:数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
package com.shao.Arrays; public class ArrayDemo02 { public static void main(String[] args) { //静态初始化,创建+赋值 int[] a = {1,2,3,4,5}; System.out.println(a[4]); //动态初始化,包含默认初始化 int[] b =new int[10]; System.out.println(b[4]); } }
Java内存:
堆:存放new的对象和数组
可以被所有线程共享,不会存放别的对象引用
栈:存放基本变量类型(会包含这个基本类型的具体数值)
引用对象的变量(会存放这个引用在堆里面的具体地址)
方法区:可以被所有线程共享
包含了所有的class和static变量
数组下标的合法区间:[0,length-1],如果越界就会报错
数组是相同数据类型(可以为任意一种类型)的有序集合
数组也是对象,数组元素相当于对象的成员变量
数组长度是确定的,不可变的,如果越界,则报异常:ArrayIndexOutOfBoundsException