03:三种初始化以及内存分析

内存分析

  • java内存分析:

    java内存分为三种:

      • 存放new的对象和数组
      • 可以被所有的线程共享,不会被存放到别的对象和引用
      • 存放基本类型(会包含这个基本类型的具体数值)
      • 引用对象的变量(会存放这个引用在堆里的具体地址)
    • 方法区
      • 可以被所有的线程共享
      • 包含了所有的class和static变量

重点:

  • 声明数值是的值存放在栈中

  • 创建数组需要new(新建)一个数组,也就符合了堆的要求,也就是说创建的数组存放堆中

  • 创建成功后栈会在堆中开拓一个空间,也就是数组数值的存放

  • 给数组赋值也就是在栈在堆中开拓的空间赋值

  • 当获取已经超过已创建的下标的元素时,将会有一个重要的报错。

    ArrayIndex0out0fBoundsExamption:下标越界!

  • 这个的原因是获取已经超过已创建的下标的元素,也就是栈在堆中开拓的空间中,没有这个数值!

三种初始化

静态初始化

  • 直接定义数组元素

    //静态初始化:创建 + 赋值
            int[] i = {1,2,3,4,5};     
    		//用花括号括起来,括号内直接赋给该数组类型的元素的数值,每个数值用逗号分隔/区分。
                                       
    									//定义之后数组内的数值就不可以改变了
            System.out.println(i[2]);   //方括号内的数字为数组的下标,对上初始化的值的第几位元素
            //这为最基本的基本数组类型
    

动态初始化

		//动态初始化:其中如果不手动赋值,将会默认为赋值的元素为0,这称为默认初始化
        //声明+初始化
        int[] j = new int[10];      
		
		//当定义一个j时,在栈会创建出一个独属于j的空间,
        //在new一个数组时,就会在对中开拓一片空间,并且根据定义的下标为多少就创建多少个元素

        j[0] = 10;                  //给下标为第0个的元素赋值

        System.out.println(j[0]);   //输出第0个元素的值

默认初始化

  • 数组时引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照示例变量同样的方式被隐式初始化。
posted @ 2022-10-21 21:56  大脑修理工  阅读(11)  评论(0)    收藏  举报