当前位置:   article > 正文

Java基础(五):Java数组声明与初始化_java初始化一个数组

java初始化一个数组

目录

1、数组声明与定义区别

2、初始化时机

2.1、初始化方法

2.2、数组初始化方式

1、静态初始化

2、动态初始化

3、区别


1、数组声明与定义区别

        对于变量来说,java定义就是声明

       例如:  int[] a;  我们可是说它是定义也可以说它是声明

2、初始化时机

2.1、初始化方法

        初始化或者直接在声明时完成,或者放到构造函数里进行,或者用{}扩起来

没初始化时,编译器只会提示说identifier expected。

  1. public class StudentTest {
  2. private int i ;
  3. /**
  4. * Label identifier expected 缺标号标识符
  5. * Destructor Identifier expected 缺析构函数标识符
  6. * Pointe type identifier expected 缺指针类型标识符
  7. *
  8. * 编译器提示说identifier expected
  9. **/
  10. //此处若给变量赋值,会报错,JAVA所有的除定义或声明语句之外的任何语句都必须在方法内部(而方法又必须在某个类内部,不存在游离于类外部的方法或成员)
  11. // i = 2;
  12. /**
  13. * 1、声明时初始化
  14. **/
  15. private int j = 2;
  16. /**
  17. * 2、{}初始化
  18. **/
  19. {
  20. Student stu = new Student();
  21. stu.name = "dd";
  22. }
  23. /**
  24. * 3、构造器初始化
  25. **/
  26. Student stu = new Student("dd");
  27. }

  Java语言中数组必须先初始化,然后才可以使用。

   初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值

注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值:

            基本数据类型的整数类型(byte、short、int、long)默认值是0;

            基本数据类型的浮点类型(float、double)默认值是0.0;

            基本数据类型的字符类型(char)默认值是'\u0000';

            基本数据类型的布尔类型(boolean)默认值是false;

            类型的引用类型(类、数组、接口、String)默认值是null。

2.2、数组初始化方式

1、静态初始化

初始化时由程序员显式指定每个数组元素的初始值,系统决定数组的长度

    1. arrayName = new type[]{element1,element2,element3...}

       int[] arr2;
       arr2 = new int[]{1,2,3}; 

   2 简化的静态初始化方式   

       type[] arrayName = {element1,element2,element3...};

       int[] arr1 = {1,2,3};

2、动态初始化

初始化时由程序员指定数组的长度,由系统初始化每个数组元素的默认值。

    arrayName = new type[length];

   int[] arr3 = new int[3];

注意:不要同时使用静态初始化和动态初始化,也就是说,不要在进行数组初始化时,既指定数组的长度,也为每个数组元素分配初始值。

    一旦数组完成初始化,数组在内存中所占的空间将被固定下来,所以数组的长度将不可改变。

3、区别

        String[] str = {"1","2","3"}; 这种形式叫数组初始化式(ArrayInitializer),只能用在声明同时赋值的情况下。

         String[] str = new String[]{"1","2","3"}是一般形式的赋值,=号的右边叫数组字面量,数组字面量可以用在任何需要一个数组的地方。

  1. 方式一:
  2. int[] arr1 = {1,2,3};//正确
  3. int[] arr11;
  4. arr11 = {1,2,3};//错误写法 编译不同过
  5. 方式二和方式三,声明和内存分配是分开的,这一步是在栈空间分配一个引用,存放的是一个引用,null
  6. 方式二直接赋值
  7. int[] arr2;
  8. arr2 = new int[]{1,2,3};
  9. 方式三 默认初始化,基本类型是 0 布尔类型是 false 引用类型为null
  10. int[] arr3;
  11. arr3 = new int[3];
  12. 到这一步的时候jvm才开始在内存堆区域分配空间,并赋值

            

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/730648
推荐阅读
相关标签
  

闽ICP备14008679号