本文目录一览:
- 1、昆明Java培训:为什么Java中的局部变量必须要初始化?
- 2、JAVA中局部变量和成员变量的区别
- 3、在Java中,为什么类变量不能是局部变量?
- 4、java什么是成员变量和局部变量
- 5、Java中什么是局部变量,什么是类变量,怎么用this
- 6、什么是java的局部变量、成员变量和全局变量?
昆明Java培训:为什么Java中的局部变量必须要初始化?
现在假如你是java语言的开发者,你已经将对象保存在了堆内存中,而将局部变量保存在了栈内存中,你会怎么做呢?Java中的变量分为类变量,成员变量和局部变量,分别位于JVM的方法区、堆内存和栈内存中。
类变量和成员变量都可以在类首次加载和类初始化时,给出默认值,但是局部变量就必须要在使用前赋值。
实际上,Java完全可以设计成局部变量不需要初始化,只要作者们高兴。
事实上,就有这样的语言,比如C++。
当然,C++不强制必须初始化,不代表就不用初始化,实际上,C++开发者也都是建议对局部变量初始化,以防止出现野指针这类事情。
其实,不管是局部变量还是成员变量,都是必须要初始化的,那为什么成员变量会自动初始化?其实正是因为成员变量属于对象,而对象是保存在堆中的,所以jvm就在初始化类的时候把成员变量初始化呢,而如果我们在调用方法的时候,还要jvm去将局部变量也进行初始化,是不是对会影响到性能呢?因此,直接强制局部变量必须要初始化反而更好。
JAVA中局部变量和成员变量的区别
根据定义变量位置的不同,可以将变量分为成员变量和局部变量
成员变量是在类范围内定义的变量
局部变量是在一个方法内定义的变量
成员变量可以分为:
实例属性 (不用static修饰):随着实例属性的存在而存在
类属性 (static修饰):随着类的存在而存在
成员变量无需显式初始化,系统会自动对其进行默认初始化
局部变量可分为:
形参(形式参数): 在整个方法内有效
方法局部变量 (方法内定义):从定义这个变量开始到方法结束这一段时间内有效
代码块局部变量 (代码块内定义):从定义这个变量开始到代码块结束这一段时间内有效
局部变量除了形参外,都必须显示初始化,也就是要指定一个初始值,否则不能访问。
还有,在内存中的位置也不一样。成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中。
在Java中,为什么类变量不能是局部变量?
Java中类可以是局部变量。
以下是局部变量的定义:
指在程序中,只在特定过程或函数中可以访问的变量,是相对与全局变量而言的。全局变量也称外部变量,是在函数外部定义的,作用域为从变量定义处开始,到本程序文件的末尾。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。由于Java是面向对象语言,所有变量都是类成员,所以Java只有局部变量,没有全局变量。同样地,在C++、C#、Ruby这些面向对象语言中,一般也只使用局部变量。面向对象编程是现在普遍采用的软件开发方法,因此现在已无需考虑是局部还是全局变量,说到变量,往往都是局部变量。
java什么是成员变量和局部变量
本文介绍成员变量和局部变量的区别
1、成员变量是独立于方法外的变量,局部变量是类的方法中的变量
1)、成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。
2)、局部变量:包括形参,方法局部变量,代码块局部变量,存在于方法的参数列表和方法定义中以及代码块中。
2、成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及 static修饰;两者都可以定义成final型。
3、成员变量存储在堆,局部变量存储在栈。局部变量的作用域仅限于定义它的方法,在该方法的外部无法访问它。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它。如果访问权限允许,还可以在类的外部使用成员变量。
4、局部变量的生存周期与方法的执行期相同。当方法执行到定义局部变量的语句时,局部变量被创建;执行到它所在的作用域的最后一条语句时,局部变量被销毁。类的成员变量,如果是实例成员变量,它和对象的生存期相同。而静态成员变量的生存期是整个程序运行期。
5、成员变量在累加载或实例被创建时,系统自动分配内存空间,并在分配空间后自动为成员变量指定初始化值,初始化值为默认值,基本类型的默认值为0,复合类型的默认值为null。(被final修饰且没有static的必须显式赋值),局部变量在定义后必须经过显式初始化后才能使用,系统不会为局部变量执行初始化。
6、局部变量可以和成员变量 同名,且在使用时,局部变量具有更高的优先级,直接使用同名访问,访问的是局部变量,如需要访问成员变量可以用this.变量名访问
顶
Java中什么是局部变量,什么是类变量,怎么用this
局部变量是相对于全局而言的。
类变量应该就是类的成员变量吧,也可以说是类的属性。
成员变量相对于,类的方法里的局部变量而言就是相当于是全局变量的。
this就是当前这个类,你可以this.成员变量在方法中使用这个“全局变量”当然是this.也是可以省略的,如果变量同名,可以加this.来区分。
什么是java的局部变量、成员变量和全局变量?
1、局部变量:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放。
2、成员变量:在类体的变量部分中定义的变量,也称为字段。
3、全局变量:全局变量,又称“外部变量”,它不是属于哪个方法,作用域从定义的地址开始到源文件结束。
4、局部变量和成员变量主要是他们作用域的区别:
成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置)。
成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。
在内存中的位置也不一样。成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中。