精华内容
下载资源
问答
  • 数组动态初始化和静态初始化的区别 静态初始化 int [ ] num1=new int []{1,2,3}; 静态初始化:初始化时显示指定每个数组元素的初始值,由系统决定数组的长度 动态初始化 int [] num2 =new int [3]; num2[0] =1; num2...

    数组动态初始化和静态初始化的区别

    静态初始化

    int [ ] num1=new int []{1,2,3};
    静态初始化:初始化时显示指定每个数组元素的初始值,由系统决定数组的长度

    动态初始化

    int [] num2 =new int [3];
    num2[0] =1;
    num2[1]=2;
    num2[3]=3;

    动态初始化:初始化时指定数组的长度

    注:int [ ] num3=new int [3] {1,2,3};这样初始化在java中是不可以,C#里面是可以运行的
    int [ ] num4=new int [3] {1,2,3};这样初始化时错误的,java,C#中都不可以
    数组的下标第一个是0;

    展开全文
  • 1、数组的动态初始化 int buffer[] = new int[5] //动态初始化 我们知道,java里面凡是通过new关键字开辟空间都是在堆区,下面我们简单画一下它内存分布 首先,当程序执行到数组定义部分时,buffer会入栈...

    1、数组的动态初始化

    int buffer[] = new int[5] //动态初始化
    

    我们知道,java里面凡是通过new关键字开辟的空间都是在堆区,下面我们简单的画一下它的内存分布
    在这里插入图片描述
    首先,当程序执行到数组的定义部分时,buffer会入栈,然后通过new关键字在堆区开辟5个连续的空间,buffer则会指向堆区中数组的地址,在c语言中,这种称之为引用传递。

    2、数组的静态初始化

    int buffer[] = {1,2,3,4,5};
    

    与动态初始化类似,同样是栈中的变量指向了堆区中数组的地址

    3、二者的区别

    • 相同点:

      1. 一旦初始化就不能再改变长度,如果一定要改变,只能重新初始化
      2. 内存的分布相同,虽然静态没有使用new关键字,但实则它也是在堆区开辟内存的
      3. 在声明了数组变量但没有初始化的时候,它们都不能在初始化的时候进行赋值
    • 不同点:

      1. 静态初始化在初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组的长度。
      2. 动态初始化:就是在初始化的时候指定数组长度(这时已经分配内存)。
    展开全文
  • java 动态初始化和静态初始化的区别

    千次阅读 2014-04-11 23:18:03
    动态的话,声明时候只是给数组分配了内存大小空间,空间里除了初始值(数值类型是0,引用类型为NULL)什么也没有,实际放什么值是要由后面程序来指定,因为一开始放什么,我们也许也并不清楚
    

    静态是指在定义的同时就指定了值,一般存放已经知道却不改变的数据,例如性别等
    而动态的话,声明时候只是给数组分配了内存大小空间,空间里除了初始值(数值类型是0,引用类型为NULL)什么也没有,实际放什么值是要由后面的程序来指定的,因为一开始放什么,我们也许也并不清楚。


    下面附二维数组的声明、静态初始化和动态初始化


    1. 二维数组的声明


    typearrayName[ ][ ];


    type[ ][ ]arrayName;


     


    1. 二维数组的初始化
      1. 静态初始化


    int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};


    Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。


     


    例如:


            //非矩形数组的数组:


              int[][] twoDim = newint[4][];


    twoDim[0] = new int[2];  //每一维数组大小不同


    twoDim[1] = new int[4];


    twoDim[2] = new int[6];


    twoDim[3] = new int[8];


     


     


    1.  动态初始化
      1.   直接为每一维分配空间,


    arrayName= new type[arrayLength1][arrayLength2];


    inta[ ][ ] = new int[2][3];


     


    1. 从最高维开始,分别为每一维分配空间:


    arrayName= new type[arrayLength1][ ];


    arrayName[0] = new type[arrayLength20];//arrayLength20表示第二维的第一个数组


    arrayName[1]= new type[arrayLength21];


    arrayName[arrayLength1-1]= new type[arrayLength2n];


     


    int[][] twoDim = new int[][4];  // 无效的 


     


    示例:


    二维简单数据类型数组的动态初始化如下,


    inta[ ][ ] = new int[2][ ];


    a[0]= new int[3];


    a[1]= new int[5];


     


    对二维复合数据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。


    而且,必须为每个数组元素单独分配空间。


    例如:


    Strings[ ][ ] = new String[2][ ];


    s[0]=new String[2];//为最高维分配引用空间


    s[1]=new String[2]; //为最高维分配引用空间


    s[0][0]=new String("Good");// 为每个数组元素单独分配空间


    s[0][1]=new String("Luck");// 为每个数组元素单独分配空间


    s[1][0]=new String("to");// 为每个数组元素单独分配空间


    s[1][1]=new String("You");// 为每个数组元素单独分配空间


     


    1. 二维数组的内存结构


     



     


     


     


    1. 二维数组元素的引用


    对二维数组中的每个元素,引用方式为:arrayName[index1][index2]


    例如:num[1][0];


    展开全文
  • 一,java初始化 注意:java数组是静态的,必须经过初始化后才可以使用,一但初始化数组长度,长度是不可以改变的。 1.静态初始化:初始化时由程序猿显示指定每个数组元素的...其实动态初始化就是在初始化的时候指...

    一,java初始化
    注意:java数组是静态的,必须经过初始化后才可以使用,一但初始化数组长度,长度是不可以改变的。
    1.静态初始化:初始化时由程序猿显示指定每个数组元素的初始值,由系统决定数组的长度
    举个栗子:
    String[] names = new String[]{“孙猴子”,“唐僧”,“猪八戒”};
    2.动态初始化:就是与静态初始化相对的撒,23333。其实动态初始化就是在初始化的时候指定数组长度(这时已经分配内存)
    举个栗子:

    String[] names = new String[3];
    names[0]=“孙猴子”;
    names[1]=“唐僧”;
    names[2]=“猪八戒”;

    展开全文
  • 1.对象数组的动态初始化:(例子:) 结果: 2.对象数组的静态初始化:(例子:) 结果: 3.数组静态初始化:初始化时由程序员显示指定...4.动态初始化:就是在初始化的时候指定数组长度(这时已经分配内存)。 ...
  • 1.静态初始化 除了用new关键字来产生数组以外,还可以直接定义数组同时就为数组元素分配空间并赋值。 int[] a={1,2,3}; Man[] mans={new Man(1,1),new Man(2,2)} 2.动态初始化 数组定义与为数组元素分配空间...
  • 动态初始化和静态初始化区别是什么?(什么时候使用静态初始化,什么时候用动态初始化?) 1.无论是动态初始化还是静态初始化,最终内存分布都是一样 2.如果在创建数组时候,知道数组中应该存储什么数值,这个...
  • 原文地址:C语言--静态变量和动态变量初始化区别作者:1234a 补充:c里等号意义是分两种情况,一种是在表达式里, 而另一种是... 自动变量和静态变量的初始化存在一个重要差别。 在静态变量的初始化中,我们...
  • 数组概念 数组是储存同一种数据类型多个元素集合。也可以看成一个容器 数组既可以储存基本数据类型,也可以储存引用数据类型 数组定义格式: 格式一: ... 但是念法上有些小区别。推荐使用第
  • C语言动态变量和静态变量的区别

    千次阅读 2017-11-27 20:21:00
    静态变量,就是在定义时候,有static 修饰变量,形式为static TYPE ...区分定义在函数外全局变量,函数内局部变量,作用域,生命周期,及无显式初始化初始值,均有区别。1 动态全局变量:作用域为整个项
  • 主要区别如下: 1.静态方法在程序初始化后会一直贮存在内存中,不会被垃圾回收器...5.静态方法在访问本类成员时,只容许访问静态成员(即静态成员变量和静态方法),而不容许访问实例成员变量和实例方法;实例方法则
  • 目录 1、链接库概述 2、静态链接库 2.1、编辑测试文件 2.2、将.c 编译生成 .o文件 2.3、由 .o 文件创建.a静态库 ...3.3、动态的初始化和解析 1、动态构造和析构函数机制 2、全局变量初始化 4...
  • 数组的初始化

    2017-04-22 19:11:25
    * 静态初始化和动态初始化的区别: * ★注意:静态初始化的时候new String[]中括号里面"不能"填写数字 * 而动态初始化的时候new String[]中括号里面"一定要"填写数字 */ /** * 1、静态初始化。 * :把数组的...
  • 动态存储区、静态存储区、堆的区别http://blog.csdn.net/chen1083376511/article/details/54930191 C/c++程序经过编译连接后形成的二进制映像文件,这文件包含: 栈,堆,数据段(只读数据段,已经...
  • 1.静态方法在程序初始化后会一直贮存在内存中,不会被垃圾回收器回收, 非静态方法只在该类初始化后贮存在内存中,当该类调用完毕后会被垃圾回收器收集释放。
  • C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型不同特性进行比较并说明各自适用场景。 工作原理 ...声明及初始化 readonly常量只能声明为类字段,支持实...
  • 2,使用场景不同,一开始就知道数组长度使用静态初始化,反之,动态初始化。 静态数组根本不能满足我们编程实际需要,比方说我需要在程序运行过程中动态向数组中添加数据,这时我们静态数组大小是固定,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 489
精华内容 195
关键字:

动态初始化和静态初始化的区别