本文目录一览:
什么叫java作用域变量
在Java中,方法内的一个变量的作用域(包括方法参数)是从它定义的地方开始,直到它所在的作用域的结束位置。
比如,在方法开始定义了变量i,那么直到方法结束都不能再定义另一个i了。再比如在一个for语句中定义了变量i,那么在这个for循环内不能再有同名变量,但出了for循环之后,是可以再次定义的。这就是作用域不能嵌套的意思。
在c/c++中,作用域可以嵌套,比如:
int i;
{
int i;
{
......可以无限制地嵌套下去,这里每对大括号之间就是一个独立的作用域
}
}
再深入一点,在Java中,类与方法之间作用域是可以嵌套的,把类看做一个大的作用域,它定义的字段(或叫域)可以被方法中的同名字段所屏蔽,其行为类似于上面将的c/c++的作用域嵌套。
为什么JAVA要区分局部变量和全局变量?
变量有作用域和生命周期,局部变量和全局变量的作用域和生命周期都不同。局部变量的作用域小,生命周期相对较短。在内存管理方面有优势。但全局变量也不可缺,实际应用中有不少地方是需要变量在很大的作用域中有效,这就要用到全局变量。区分局部变量和全局变量,就是要使程序代码更简明、高效。
java全局变量和局部变量的区别
全局变量和局部变量的主要的区别在于 作用的范围不同
比如
class A{
int x1;// 这是全局变量 整个范围都可以使用
public void fun(){
int x2;//这是局部变量 只在方法中有效
}
}
java中变量的生命周期是怎样的?
这个要从作用域开始说起。
像局部变量的作用域就是他的生命周期。
比如if ,for ,switch等等这些。
出了这个结构就销毁了。
方法里的局部变量,在方法调用完就销毁。
如果是类的成员变量,在类的相应的对象销毁的时候销毁。
上面说的是普通变量,如果是静态变量的时候,从程序开始,到程序结束。
变量的生命周期要看你把这个变量声明在哪个语句模块中,如果是类的成员变量,则其声明周期贯穿整个其对象的生命周期,如果是方法内的变量(局部变量),则仅仅在该方法内有效,出了方法体则无效,失去意义;static是修饰静态代码块或者成员变量或者方法的,其方法或者代码块的生命周期横跨整个应用的生命周期。final修饰的变量只是作为一个常量(定义的标准)来用而已,其生命周期同一般变量,当然接口中的变量默认都是final的。