精华内容
下载资源
问答
  • 初始化:在定义变量以后,系统为变量分配空间内存储值是不确定,所以需要对这个空间进行初始化,以确保程序安全性确定性,给变量赋默认值。 赋值:变量在分配空间之后某个时间里,对变量值进行刷新...

    声明:告诉编译器或解析器该变量存在,这个行为并不分配内存空间。

    定义:为变量分配内存空间。在C语言中,一般声明就包含定义,比如:int a;。但在Javascript中,var a;这种形式只是声明。

    初始化:在定义变量以后,系统为变量分配的空间内存储的值是不确定的,所以需要对这个空间进行初始化,以确保程序的安全性和确定性,给变量赋默认值。

    赋值:变量在分配空间之后的某个时间里,对变量的值进行刷新操作,即修改存储空间内的数据。

    展开全文
  • 我算是刚入门的菜鸟,今天说下声明初始化和实例化的区别和使用,如有不对的地方欢迎各位指正。 声明是指使用一个对象的时候,先定义属于哪个类型并,比如string _str; _str是声明(定义)了一个string类型的...

    我算是刚入门的菜鸟,今天说下声明、初始化和实例化的区别和使用,如有不对的地方欢迎各位指正。

     

    声明是指使用一个对象的时候,先定义属于哪个类型并,比如string _str;

    _str是声明(定义)了一个string类型的对象。

    初始化可以理解为给声明的对象赋值的过程。string _str ="hello";

    _str现在已经被初始化了,实例化后它具有“hello”这个值。

    实例化是类用到的,A a = new A();当new的时候为对象分配内存,这个过程是对象的实例化。

     

    总结:

    声明,只生成对象不赋值的过程。

    初始化,是给对象赋值的过程。

    实例化,是使用new为对象分配内存的过程。

     

    int i;//没有默认值

    int j=i+2; 这样编译不通过,使用了未赋值的i。
     
     

    static int i;//static时才有默认值

    int j=i+2; //j = 2
     
    当static int i;为静态的时候i才会被赋默认值。
     

     

    转载于:https://www.cnblogs.com/xjt927/archive/2013/01/30/2882644.html

    展开全文
  • 构造方法初始化可以单独为每一个对象赋不同值 执行顺序: 执行父类静态代码,执行子类静态代码 初始化父类成员变量(我们常说赋值语句) 初始化父类构造函数 初始化子类成员变量 初始化子类构造函数 ...

    声明时为成员变量赋值,那么你一创建对象,这个赋值就进行,而且先于构造器执行。
    而且你每次创建这个类的对象,都是同一个值。
    构造方法初始化可以单独为每一个对象赋不同的值
    执行顺序:
    执行父类静态代码,执行子类静态代码
    初始化父类成员变量(我们常说的赋值语句)
    初始化父类构造函数
    初始化子类成员变量
    初始化子类构造函数
     

    展开全文
  • zhangleispirit@gmail.comJava赋值和初始化包括很多容易被忽视地方,在此分类总结如下:1.赋值相关:基本类型赋值运算需要注意是赋值时类型转换问题,什么时候可以自动转换,什么时候需要强制类型转换是...

    zhangleispirit@gmail.com

    Java的赋值和初始化包括很多容易被忽视的地方,在此分类总结如下:

    1.和赋值相关:

    基本类型的赋值运算需要注意的是赋值时的类型转换问题,什么时候可以自动转换,什么时候需要强制类型转换是需要弄清楚的。

    首先记住两个约定:

    (1)所有的字面整数都是int型的。

    (2)所有的字面浮点数都是double型的,因此声明一个float 型的浮点数,必须做类型转换,或者声明时加上f。float ads=3.13f。

    第一条:一个占用int或更短长度的表达式的结果总是一个int,也就是两个byte型的结果加到一起,结果是int。举个例子,下面的代码是会出编译错误的:

    byte b=3;

    byte c=8;

    byte d=b+c;

    b+c的结果是一个int型的值,而d是一个byte型的值,转换时向着范围比较小进行转换,编译器是会报错的,如果显示的强制类型转换,则不会出问题。

    从小范围到大范围的转换是不需要显示强制转换的,包括从long型向float和double型的。

    当编译器知道过大而无法被变量保存的字面值赋给变量,将会得到编译错误。

    byte a=128;

    注意有几个运算符在类型转换的特殊地方。

    +=,-=,*=,/=这几个运算符都将使用隐式的强制类型转换。

    byte b=3;

    b+=7;//这时是正确的。

    2和初始化有关:

    (1)对于实例变量,都会初始化成默认值。对于对象引用类型的实例变量,其初始值是null。

    (2)数组对象比较特殊,数组是一个对象,数组元素总是被赋予默认值,不论数组实在哪里声明和实例化,即使该数组是局部变量都是如此。如果数组元素是对象的引用,则默认值为null,如果数组元素是基本类型,则默认值是基本类型的默认值。

    (3)局部变量是没有默认值的,不论是基本类型,还是对象的引用,因此,任何局部变量在使用之前都必须显式的作初始化,否则会出现编译错误。

    (4)对象的引用相互赋值,并不修改对象本身(String对象除外)。

    (5)对于String对象,要记住这样几点,String对象的值是不可以改变的,因此,下面的例子看起来似乎很矛盾:String str="zhanglei";

    String str2=str;

    str=str+" ,how are you?";

    语句的详细解释如下:

    首先在堆中创建一个String对象“zhanglei”,然后让对象引用str指向这个对象,第二条语句将对象引用str赋给str2对象引用。第三条语句将对象“zhanglei”和对象“how are you ?”做连接操作,生成一个新的对象,然后把这个对象的引用赋给str。因此,此时如果打印str2的内容还是“zhanglei”。

    (6)初始化块:初始化块分为两种:静态初始化块和实例初始化块;

    静态初始化块用来初始化类中的static属性成员,实例初始化块用来初始化实例属性成员。

    第一次加载类时,会运行静态初始化块,没创建一个新的实例,就会运行一次实例初始化块。实例初始化块的运行是在所有的超类构造函数运行之后。静态初始化块是在所有超类构造函数之前运行。多个初始化块并存时,运行的顺序即他们在类文件中出现的顺序。

    展开全文
  • 有三个与此主题相关术语:声明,初始化和实例化.从后到前工作.实例化这是为对象分配内存时候.这就是新关键字正在做事情.从new关键字返回对创建对象引用.初始化这是将值放入已分配内存中时间.这是使用...
  • [size=medium]成员变量的声明时初始化和构造方法中初始化的区别 1.成员变量在声明的时候就进行初始化; 2.成员变量在构造方法中再进行初始化; 区别: 1)考虑到构造方法的重载,“声明时初始化”对于所有...
  • 声明时为成员变量赋值...执行顺序:执行父类静态代码执行子类静态代码初始化父类成员变量(我们常说赋值语句)初始化父类构造函数初始化子类成员变量初始化子类构造函数 转载于:https://www.cnblogs.com/linjian/p...
  • 变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。 变量声明:用于向程序表明变量类型名字。...定义完之后才能初始化,所以初始化的时候已经分配内存 ...
  • <p>What is the difference between a and b? I know that reflect.DeepEqual considers them not equal and I know that a is nil. Are there built in functions that easily show the difference?...
  • 变量声明: ...变量的初始化是指在定义同时进行赋值,而赋值是指擦除老值。 变量初始化: int a = 5;//定义同时进行赋值 变量赋值: a=10;//把变量原有值擦除,重新给出一个值 ...
  • 事实上,可以在单个代码行中执行声明并设置变量值。 此技术称为初始化变量。...可通过在声明时给变量赋值来初始化变量 从右到左进行赋值 使用单等号字符作为赋值运算符 若要从变量中检索值,只需使用变量名称 ...
  • 定义、声明初始化、赋值的区别

    千次阅读 2018-07-13 10:42:11
    变量初始化: int a = 7;//定义时给变量一个值 变量赋值: a=2;//把变量原有值擦除,重新给一个值C 中左值(Lvalues)右值(Rvalues) C 中有两种类型表达式: 左值(lvalue...
  • 初始化和赋值对内置类型的成员没有太大的区别,在成员初始化列表和构造函数体内进行,在性能和结果上都是一样的。只有一些需要注意的事项 初始化列表一般情况如下: Date(int year, int month, int day) : _year...
  • 成员变量的声明初始化和构造方法中初始化的区别是什么? 什么情况下用什么方式?
  • 只声明但没有初始化的变量声明的变量以及null/undefined的区别 1. 声明但没有初始化的变量 var aa; alert(aa); 浏览器会弹出窗口显示 undefined. 因为对于使用了 var 声明但没有进行初始化定义的变量, 其值默认...
  • C#本质上是一组类型声明区别于C是一组数据类型函数),类是用来创建数据结构一种模板。 类型的声明就是定义这个模板。 类型实例就是按照这个模板创建一个对象,也就是在内存堆(或栈)中为这个对象分配...
  • C语言中声明、定义和初始化的区别

    千次阅读 2015-05-02 17:03:11
    // 这两条语句定义变量spval,并为之分配存储单元,同时这两条语句还可以作为该源文件其余部分的声明。 extern int sp; extern double val[]; // 这两条语句只是做了声明,并没有分配存储空间 注意:在定义中必须...
  • 定义:声明变量并进行初始化的过程,分配存储空间。例:int a = 0;/类 对象名 = new 类(); 赋值:更改这块区域里值。 初始化:在定义变量时赋值或引用过程。 初始化局部变量全局变量: 当局部变量...
  • java 动态初始化和静态初始化的区别

    千次阅读 2014-04-11 23:18:03
    而动态话,声明时候只是给数组分配了内存大小空间,空间里除了初始值(数值类型是0,引用类型为NULL)什么也没有,实际放什么值是要由后面程序来指定,因为一开始放什么,我们也许也并不清楚
  • 先来说一下vector声明初始化 vector< int > a; //声明一个int型向量a vector< int > a(10); //声明一个初始大小为10向量 vector< int > a(10, 1); //声明一个初始大小为10且初始值都为1向量...
  • 另外:程序执行时,先执行哪一部分?   ...1楼 2010-09-09 16:33 举报 |个人企业举报垃圾信息举报 ... 首先要纠正你一个说法:不是“数据成员“,应该叫做类成员。... 在定义某变量时就赋值(初始...
  • C++中类对象的初始化与赋值的区别

    千次阅读 2012-06-08 23:05:04
    C++中类对象的初始化与赋值的区别 ...而基本类型的变量的初始化和赋值几乎没有区别的。 定义一个变量的过程:定义声明 初始化. (#之所以称之为定义声明,还有连接性性声明如extern 这种外部连接性的声明,是没有
  • 静态初始化包括静态成员变量的初始化和静态块,实际上编译时都会集中到static块中。而非静态初始化包括非静态成员变量初始化和非静态块以及构造方法,编译后都会集中到构造方法中。如果没有相互调用那么很简单,先...
  • 作者:宋桓公 ... 声明定义虽然无处不在,但是真正的想区分它们,却不是表面上那么简单。 首先,从广义的角度来讲声明中包含着定义:定义又可以...的区别,之后简称定义与声明。 1、定义时系统会为定义的变量分配空...
  • InnerClass是一个类,上述情况只是声明了arrays变量为一个长度为5类型为InnerClass数组,每个对象值都为null。 private InnerClass[] arrays = {new InnerClass(), new InnerClass(), new Inn
  • 声明,实例化与初始化一个对象有什么区别? what is the difference between Declaring Objects and Initializing an object? 与该主题相关的三种术语:声明...初始化:将实例化的对象赋值给声明的变量 ...
  • 1. 类静态成员变量不能用参数初始化初始化 (1) 如果声明了类而未定义对象,则类一般数据成员是不占内存空间,只有在定义对象时,在运行时候才为对象数据成员分配空间。但是静态数据成员不属于某一个...
  • 初始化数组:字符串储存在静态存储区。但是,程序在开始运行时才会为该数组分配内存(以上面的声明为例,数组形式ar[ ]在计算机内存中分配为一个内含6个元素数组(每一个元素对应一个字符,还加上一个末尾空...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,639
精华内容 1,055
关键字:

初始化和声明的区别