static不能修饰局部变量理解
2013-05-15 23:32
471 查看
在java中,首先,被static修饰,表示是随着jvm加载类的时候就加载了。
理解一:假如,用static修饰一个变量,jvm就理解为你需要延长该字段的生命周期,既然是延长,就直接申明为全局变量就行了三,所以报错修饰局部变量,类在,static在;
理解二:假如可以用static修饰局部变量,就表示此变量在所在类被jvm加载的时候就初始化加载了。但是方法和对象相关的,而方法只有在被调用的时候才有意义,你在加载类的时候还没有调用方法,就把方法里的局部变量加载了,这就显的没有必要意义了。所以没必要修饰局部变量。
此时可能就会有异议了:为什么static可以修饰一个方法呢?
可以这样理解:
一个方法被static修饰,即表示和所在类被jvm同时加载。类被加载完成的同时,这个方法就已经准备好了,所以以后我们在调用被static修饰的方法的时候,就直接用加载好的类名直接调用已经加载好的方法就可以了。当然你也可以申明一个该类的对象来调用次方法。
理解一:假如,用static修饰一个变量,jvm就理解为你需要延长该字段的生命周期,既然是延长,就直接申明为全局变量就行了三,所以报错修饰局部变量,类在,static在;
理解二:假如可以用static修饰局部变量,就表示此变量在所在类被jvm加载的时候就初始化加载了。但是方法和对象相关的,而方法只有在被调用的时候才有意义,你在加载类的时候还没有调用方法,就把方法里的局部变量加载了,这就显的没有必要意义了。所以没必要修饰局部变量。
此时可能就会有异议了:为什么static可以修饰一个方法呢?
可以这样理解:
一个方法被static修饰,即表示和所在类被jvm同时加载。类被加载完成的同时,这个方法就已经准备好了,所以以后我们在调用被static修饰的方法的时候,就直接用加载好的类名直接调用已经加载好的方法就可以了。当然你也可以申明一个该类的对象来调用次方法。
相关文章推荐
- 简述static关键字的作用?(备注:在什么条件下使用static修饰局部变量、全局变量、函数)
- 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?(个人理解)
- static--修饰(局部变量、全局变量、函数)
- JavaSE8基础 final 修饰引用类型的局部变量 地址值不能变
- 4000 黑马程序员—C学习笔记—static和const修饰的全局与局部变量
- static作用(修饰函数、局部变量、…
- 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
- static作用(修饰函数、局部变量、全局变量)
- final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
- static全局变量与普通的全局变量、static局部变量和普通局部变量、static函数与普通函数的区别
- 高薪就业必备10】final修饰的变量,是引用不能变,还是对像..
- IOS 成员变量,全局变量,局部变量定义,static与extern的区别
- 请解释局部内部类和成员内部类都可以被static修饰吗,原因是什么?
- Java中的static修饰变量只占一份内存空间
- Static成员函数不能修饰const
- 了解临时对象的来源 (深刻理解为什么不能返回一个临时变量的引用)
- final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
- operator*( )的重载(对于const修饰的成员变量的理解)
- 静态(static)全局变量与全局变量,静态局部变量与局部变量,内部(static)函数与普通函数
- java序列化(transient和static修饰的变量的序列化实现)