Java基础学习:数组03

Java基础学习:数组03

  • 三种初始化及内存分析:

    • Java内存分析:Java内存:

      • 堆:

        1. 存放new的对象和数组;

        2. 可以被所有的线程共享,不会存放别的对象引用;

      • 栈:

        1. 存放基本变量类型(会包含这个基本类型的具体数值)

        2. 引用对象的变量(会存放这个引用在堆里面的具体地址)

      • 方法区:

        1. 可以被所有的线程共享

        2. 包含了所有的class和static变量

 

  • 代码实例:数据下标越界:错误

    public class ArrayDemo02 {
       public static void main(String[] args) {
           //1
           int[] nums=new int[3];//创建一个int类型数组
           //2,给数组赋值
           nums[0]=1;
           nums[1]=2;
           nums[2]=3;

           //3,获取数组元素的值

           //ava.lang.ArrayIndexOutOfBoundsException: 数组下标越界
           System.out.println(nums[3]);//ava.lang.ArrayIndexOutOfBoundsException: 3

      }
    }
  • 三种初始化:

    • 静态初始化:

      int[] a={1,2,3};
    • 动态初始化:

      int[] a=new int[2];
      a[0]=1;
      a[1]=2;
    • 数组的默认初始化:

      //1,数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化;

    • 代码例子:

      public class ArrayDemo03 {
         public static void main(String[] args) {
             //三种初始化

             //1,静态初始化:创建+赋值
             int[] a={1,2,3};//一旦定义,不可改变

             //2,动态初始化:包含默认初始化
             int[] a1=new int[2];
             a1[0]=1;
             System.out.println(a1[0]);//

             //3,默认初始化
             int[] a2=new int[2];
             System.out.println(a2[0]);//0
        }
      }

       

  • 笔记:

    • 数组声明的时候,并不存在;只有创建的时候才会存在(内存堆中开辟内存空间);

    • 实例变量:从属于对象,不加static;

    • 类变量:从属于类,加static;

    •  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @   gzs1024  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示