• 数组知识点


    1. 数组变量是一种引用类型的变量数组变量并不是数组本身,它只是指向堆内存中的数组对象。

        因此,可以改变一个数组变量所引用的数组,这样可以造成数组长度可变的假象。
     
    2. 数组一定要进行初始化。(不要搅混数组变量跟数组对象!-->看第三条)
        不过可以换一个方式来初始化数组,或者说,数组无需初始化。
         就是,先初始化一个A数组,然后再把此数组赋值给另一个B数组变量,那么B数组变量就等于有了数组。也就跳过了数组初始化,例子:
          String[] A=new String[2];//静态初始化了一个长度为2 的字符串数组
          String[] B=null;//定义了一个数组变量B
          B=A;
          System.out.println(B.length);
          结果: 2
          其实本质上还是初始化了数组。只是让B变量直接指向了一个已经执行初始化的数组。
     
    3. 数组变量跟数组对象,不要被搞混了。
        数组变量只是一个引用变量(有点类似于C语言里的指针);
        而数组对象就是保存在堆内存中的连续内存空间。
        对数组执行初始化,其实并不是对数组变量执行初始化,而是在堆内存中创建数组对象——也就是为该数组对象分配一块连续的内存空间,这块连续的内存空间的长度就是数组的长度。
        对于数组变量来说,它并不需要进行所谓的初始化,只要让数组变量指向一个有效的数组对象,程序即可正常使用该数组变量。
     
    4. 不管是数组还是其它类型的变量,如果是为局部变量的话,必须由程序员自己赋初始值,即使将它赋为null也行。
     
    5. java数组的初始化方式有两种:静态初始化、动态初始化
       例子:
      动态初始化:  String[] A=new String[2];//初始化时程序员只指定数组长度,由系统为数组元素分配初始值
      静态初始化:  String[] A=new String[]{"1","2"};//初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组长度。
     
    6. 数组变量何时只是数组变量,何时代表数组对象本身?
        当数组变量引用数组对象的属性、方法的时候,就代表数组对象。
        没有引用就是数组变量。
        例子:
                   String A=new String[2];
                   System.out.println(A);//此时没有引用数组对象的属性方法,所以A是数组变量
                   System.out.println(A.length);//此时调用了数组对象的属性,所以A是数组对象
        结果:
                   [Ljava.lang.String;@533ded59   //为引用数组对象的地址
                   2                          //数组对象的长度
     
    7. 基本类型数组的初始化
        对于基本类型数组而言,数组元素的值直接存储在对应的数组元素中,因此基本类型数组的初始化比较简单:
        程序直接为数组分配内存空间,再将数组元素的值存入对应的内存里。
     
    8. 引用类型数组的初始化
        引用类型数组的数组元素依然是引用类型的,因此数组元素里存储的还是引用,它指向另一块内存,这块内存里存储了该引用变量所引用的对象(包括数组和java对象)。
     
    9. 基本类型变量的值存储在栈内存中,其实这句话是完全错误的。
       应该说:
                    所有局部变量都是放在栈内存里保存的,不管其是基本类型的变量还是引用类型的变量,都是存储在各自的方法栈区中;但引用类型变量所引用的对象(包括数组、普通java对象)则总是存储在堆内存中。
  • 相关阅读:
    mybatis
    队列
    JDK中的Timer和TimerTask详解
    NIOGoodDemo
    24-C#笔记-异常处理
    23-C#笔记-正则表达式
    22-C#笔记-预编译指令
    21-C#笔记-名称空间
    20-C#笔记-接口
    19-C#笔记-多态性
  • 原文地址:https://www.cnblogs.com/JamKong/p/4447188.html
Copyright © 2020-2023  润新知