局部变量也叫自动变量,它声明在函数快内,作用范围也在函数快内,不能同一源文件的其它函数使用,也不能其他文件中的函数使用,局部变量存储在栈中。无论局部变量显示初始化,或者未初始化,都只有当定义它们的程序快被调用时(及执行时),才分配空间,声明或定义时并不分配,局部变量不是可执行每模块的一部分!!除非显示地局部变量进行初始化,否则,它们的初始值是不确定的。
全局变量没有声明在任何一个函数内,作用范围在程序运行始终存在,能被同一原文件的任何函数使用,
也能被其他文件中的函数使用,但是使用extern关键字。方法执行完后,随之销毁结束。
全局变量存储在数据段中。
静态局部变量用来表示不能被其它文件访问全局变量和函数。为了限制全局变量/ 函数的作用域,函数或变量前加static使得函数称为静态函数。但此处“static”的含义不是指存储方式,而是只对函数的作用域仅局限于本文件(所以又称内部函数)。 注意:对于外部(全局)变量,不论是否有static限制,它的存储区都是在静态存储区,生存周期都是全局的。此时static只是起作用域限制作用,限定作用域在本模块内部。
如果在一个类里面,该类的方法被声明为静态的,那么该类就可以直接调用该方法,方法是:(类名).方法( ){ }
例子:
public class change{
public static void changeStr( String str){
System.out.println("a:"+str);
str="welcome";
//this.str = str;
System.out.println("first:"+str);
}
String str = "abc";
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
静态全局变量与全局变量的差别是:前者只能被同一源文件中的函数调用,其它文件中的函数不能调用静态全局变量。
实例变量是定义在类里面,方法体外边,包括垃圾回收,只对实例变量起作用。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |