精华内容
下载资源
问答
  • 局部变量不像全局变量可赋初始值, 但可以通过编译指令把指定类型的常量当作变量用, 如: const {$J+} num: Integer = 1; {$J-} begin Inc(num); ShowMessage(IntToStr(num)); {2} end; //或者写作:...


    局部变量不像全局变量可赋初始值, 但可以通过编译指令把指定类型的常量当作变量用, 如:


     

    const
    {$J+}
      num: Integer = 1;
    {$J-}
    begin
      Inc(num);
      ShowMessage(IntToStr(num)); {2}
    end;
    
    //或者写作:
    const
    {$WRITEABLECONST ON}
      num: Integer = 1;
    {$WRITEABLECONST OFF}
    begin
      Inc(num);
      ShowMessage(IntToStr(num)); {2}
    end;
    

    转载于:https://www.cnblogs.com/xiongyingfeixiang/archive/2011/12/01/2270187.html

    展开全文
  • 类的成员变量有默认初始值,而方法内的局部变量却没有初始值。这个问题涉及到JVM类加载和字节码执行两个阶段,这两个阶段是依次执行的。 JVM类加载是JVM利用类加载器将class文件加载到JVM的过程,涉及“加载”、...

    最近又重新研读了《深入理解Java虚拟机》,其中一个知识点在这里记录一下。

    类的成员变量有默认初始值,而方法内的局部变量却没有初始值。这个问题涉及到JVM类加载字节码执行两个阶段,这两个阶段是依次执行的。

    JVM类加载是JVM利用类加载器将class文件加载到JVM的过程,涉及“加载”、“验证”、“”准备“、“”解析“和”初始化“。

    一、类的成员变量初始化   ---在JVM类加载阶段完成

    类的成员变量又分为静态成员变量非静态成员变量

    静态成员变量

    静态成员变量会被初始化两次,第一次在“准备”阶段,先进行一次初始化,系统附上默认值;第二次在“初始化”阶段,根据代码中的赋值情况再进行一次初始化。

    例如:

    public static int i =3 ;

    第一次初始化后i的值为0,第二次初始化后,值才为3.

    数据最终存放在方法区中。

    非静态成员变量

    仅“初始化”阶段赋值。根据代码中的赋值情况,代码不赋值直接赋默认值,有赋值则等于代码中的赋值。对象实例化后,该变量随java对象分配到java堆中。

    二、方法区的局部变量没有初始化

    而方法中的局部变量没有初始化步骤,如下图:

    需要在代码中进行初始化。

     

    原因就是类方法中的代码,实在字节码执行的时候,才会被运行到,此时局部变量是存储在虚拟机栈-栈帧中的局部变量表中。局部变量定义了但是没有赋值是不能使用的。

    展开全文
  • Java 成员变量有初始值,而局部变量没有初始值。 如下所示,代码不能编译通过 publicstaticvoidmain(String[] args){ String s; System.out.println("s="+s); } 转载于:...

    Java 成员变量有初始值,而局部变量没有初始值。

    如下所示,代码不能编译通过

    public static void main(String[] args){
        String s;
        System.out.println("s="+s);
    }

     

     

    转载于:https://www.cnblogs.com/wwb0811/p/9606369.html

    展开全文
  • c语言局部变量默认初始值

    千次阅读 多人点赞 2018-04-09 15:29:48
    C语言中,定义局部变量时如果未初始化,则是随机的,这是为什么呢?定义局部变量,其实就是在...c语言中只有局部变量在未初值时,才是随机数,全局变量和静态变量未初值时编译器会自动将其初始化为0。局部变量...

    C语言中,定义局部变量时如果未初始化,则值是随机的,这是为什么呢?

    定义局部变量,其实就是在栈中通过移动栈指针来给程序提供一个内存空间和这个局部变量名绑定。因为这段内存空间在栈上,而栈内存是反复使用的(脏的,上次用完没清零的),所以说使用栈来实现的局部变量定义时如果不显式初始化,值就是脏的。

    c语言中只有局部变量在未赋初值时,才是随机数,全局变量和静态变量未赋初值时编译器会自动将其初始化为0。局部变量是分配在堆栈上的,而全局变量和静态变量是分配在数据段中的。这个跟程序的内存分配是有关系的。

    展开全文
  • 今天看到一个面试题,关于变量赋初始是否会报错的题目,瞬间就GG了,怪基础差 import java.util.*; public class test{ public static void main (String[] args){ String str; System.out.println("str=...
  • 局部变量和成员变量的初始值问题

    千次阅读 2018-12-13 10:23:45
    局部变量必须显示给予一个初始值,否则编译无法通过。大家在学习的时候,一般是直接把这个结论直接记下,很少去考虑原因。 所以,这是为什么呢? 比如 在局部变量中,必然是先声明一个变量,再进行赋值。于是...
  • 域和局部变量初始值

    千次阅读 2012-05-17 09:22:37
    如果沒有显示给域赋初值, 那么它会被自动赋初始值, 数值为0, 布尔值为false, 对象为null. 值得注意的是我们在使用局部变量之前, 必须明确的初始化局部变量, 否则编译会报错. private byte b; private short s; ...
  • 成员变量有默认初始值,而方法内的局部变量却没有初始值。这个问题涉及到JVM类加载和字节码执行两个阶段,这两个阶段是依次执行的。 JVM类加载是JVM利用类加载器将class文件加载到JVM的过程,涉及“加载”、“验证...
  • 一个我们编写的java源码类(机器码)要想被正式运行...在这个过程中,我们会对我们定义的成员变量进行两次初始化,一次默认初值(0,boolean为false),一次我们定义的初值,如: class Test{ int a = 2; }
  • 如上图所示, 1、全局int变量(包括有static前缀的)未初始化,默认值是0。 2、局部int变量未初始化,默认值未知。...解释:局部变量是存在栈中,数据量大,且生命周期短,若为局部变量进行初始化,开销很大。 ...
  • C语言局部变量默认初始值

    千次阅读 2019-07-10 22:38:34
    c语言中只有局部变量在未初值时,才是随机数,全局变量和静态变量未初值时编译器会自动将其初始化为0。局部变量是分配在堆栈上的,而全局变量和静态变量是分配在数据段中的。这个跟程序的内存分配是有关系的。 ...
  • Java中有两种变量,局部变量和成员变量。 成员变量可以不进行初始化,虚拟机也会确保它有一个默认的局部变量不能这样做,我们必须对它进行赋值,才能使用它。
  • 请问定义个数组变量作为Java中的局部变量,没有初始化怎么可以编译通过int[]a=newint[5];...答:java里面的int数组是有初始值的 如果未对数组赋值 String数组中的每个元素的值为null int数组中的每个元素的值为0 ...
  • Java中有两种变量,局部变量和成员变量。 成员变量可以不进行初始化,虚拟机也会确保它有一个默认...局部变量不能这样做,我们必须对它进行赋值,才能使用它。 int i;//为初始化 System.out.println(i);//编译器报错
  • 关于全局变量与局部变量变量的初始化问题 局部变量 在Java的局部变量中,定义变量需要初始化,不然就会在调用的时候报错,无法被调用 // 定义变量 int a ; System.out.println(a); 他会报错变量未初始化; 虽然变量...
  • 上边是两个语句,第一个,声明一个类的成员变量,第二个,对成员变量赋值,而成员变量属于对象,对它的赋值只能由对象来操作,在类中单独对其赋值,当然要报错了。(类里面只能放成员变量和方法吧,赋值是个操作) ...
  • 1. public,private,static,protect可以修饰成员变量,不可以修饰局部变量,两者都可以使用final修饰 ...3.成员变量可以不用赋初始值局部变量必须赋初始值 4.成员变量在整个类中可见,局部变量在某个方法内可见
  • C语言赋初始值

    2016-01-14 15:02:00
    add_range局部变量i和sum没有赋初始值,那么i和sum的值具有不确定的值,所以切记要赋初始值。 转载于:https://www.cnblogs.com/agang-php/p/5130267.html
  • 基本数据类型数值6类 (long/int/short/byte)(double/float) 非数值2类(char,boolean)下面是默认值:0/0/0/0/0.0/0.0/ /false首先 Java 语言就是这么规定的。然后为什么 Java 语言要这么规定...而成员变量就是类的数...
  • 对于java虚拟机内存这块始终有点迷,今天又把深入理解jvm虚拟机拿出来翻...局部变量表所需的内存空间在编译期间完成分配,当进入一个方法时,这个方法需要在栈帧分配多大的局部变量空间是完全确定的,在方法运行期间...
  • 全局变量和局部变量初始化问题

    千次阅读 2019-08-23 16:08:42
    现在,我们要讨论的是程序猿或者程序媛需不需要给全局变量和局部变量赋初值的问题。因为全局变量的初始值是系统默认的且是可使用的,因此,全局变量一般不需要自己去赋初值,不过为了养成良好的代码习惯,最好还是赋...
  • delphi 定义变量同时赋值初始值

    千次阅读 2019-02-15 11:31:52
    只有全局变量才能在定义的时候初值,局部变量不可以! var Form1: TForm1; Present: TDateTime; year_ :string= '0'; //只有全局变量才能初值 month_ :string= '0'; day_ :string= '0'; hour_ :string= ...
  • 实在知乎上看的答案,感觉很好,就转载一下,原文地址: 为什么全局变量无须初始化,局部变量必须初始化? https://www.zhihu.com/question/30516949Intopass回答一:首先 Java 语言就是这么规定的。然后为什么 ...
  • java:局部变量初始

    千次阅读 2018-07-15 00:51:42
    类变量有两次赋初始值的过程,一次在准备阶段,赋予系统初始值(如果被final修饰,初始值可能不是0或者null,false),另外一次在初始化阶段,赋予程序员定义的初始值,但是局部变量不一样,系统不会赋予初始值,除非...
  • java类中局部变量和成员变量的区别

    千次阅读 2019-02-12 16:36:45
    局部变量必须赋初始值才能用 都存储在栈中 生命周期:定义的时候产生,当前的方法的括号,语句块的括号执行完毕就会消失 成员变量(属性): 语法:数据类型 属性名(=初始值); 属性可以没有初始值 在类里面...
  • 关于局部变量初始

    千次阅读 2018-10-26 15:22:35
    我们经常被告知:在Java语言规定,局部变量必须要先初始化,然后才能使用。为什么呢? 首先 Java 语言就是这么规定的。其实无论成员变量还是局部变量都要初始化。只是JVM帮我们初始化了成员变量。 第一种解释: ...
  • 切记:局部变量是没有缺省的,必须手动初始化! 这一缺省赋值过程是在对象的构造函数调用之前完成的,如果程序写了对instance和static变量的初值语句,且给的就是JVM默认的,那么无疑是画蛇添足,重复劳动...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,546
精华内容 28,218
关键字:

局部变量必须赋初始值