public class Array01 {
public static void main(String[] args) {
//动态初始化
int[] arr01 = new int[3];
double[] arr02 = new double[10];
String[] arr03 = new String[10];
//静态初始化
int[] arr04=new int[]{1,2,2};
String[] arr05=new String[]{"hello","world","java"};
//静态初始化的省略格式
double[] arr06={1.1,1.0};
//静态初始化 动态初始化可以分步骤写
int arr07[];
arr07=new int[3];
//数组元素的获取
System.out.println(arr04);//[I@5fd0d5ae 直接打印数组名称得到的数组对应的内存地址哈希值
System.out.println(arr04[0]);// 1
int num =arr04[1];//2
//
int[] arr08=new int[3];
System.out.println(arr08); //内存地址值
System.out.println(arr08[0]);//没有赋值arr08[0]=0
System.out.println("============");
String[] arr09=new String[3];
System.out.println(arr09[0]); //null
arr08[0]=100;
System.out.println(arr08[0]);//100
1.数组是一个容器 可以同时存储多个数据值
2.数组是引用数据类型 除了四类八种都是引用
3.数组当中的数据类型要统一 比如都是int 都是double 类型统一
4.数组的长度在程序运行期间不能改变
5.基本数据类型引用数据类型都可以作为数组的数据类型
6.注意动态初始化静态初始化的区别
7.静态初始化没有直接指定长度,但是可以自动推算长度
8.如果不确定数组当中的具体内容用动态初始化 已经确定数组的具体内容用静态初始化
9. 16进制就是16进1
10.动态初始化数组 当没有赋值时 元素默认值规则
整数类型 byte short int long 默认为0
浮点类型 默认0.0
字符类型默认 'u0000' 但是打印看不到
布尔类型默认 false
引用默认 null
11.静态初始化 new int[]{1,2};过程其实也有默认值的过程,只不过系统自动把默认值替换为了大括号中的具体值
12.java中的内存划分 5个部分 栈 堆 方法区 本地方法栈 寄存器
12.1 栈 stack :存放的是方法的局部变量 (方法的参数列表和方法内部的变量是局部变量)
方法的运行一定要在栈当中 一旦超出作用域,立刻从栈内存中消失
12.2堆内存 : 凡是new 出来的都在堆当中 堆内存里面的东西都有一个16进制的地址值 堆内存里面的数据都有默认值,如果是整数(byte short int long)默认0 浮点数0.0 字符‘u0000’ boolean默认false 引用类型默认null
12.3方法区 :存储.class(.java编译之后用来运行的字节码文件 有main方法自定义方法)相关信息,包含方法的信息
12.4本地方法栈: 与操作系统相关
12.5寄存器 :与cpu相关



