java基础知识-static关键字
2016-09-05 13:59
363 查看
java中关键字static,一般用来修饰类内部成员,比如修饰成员变量我们称之为静态成员,修饰的成员方法我们称之为静态方法,他们属于类而不是类的实例。
它们是随着类的加载(而不是随着对象的产生)而产生,以至于可以用类名+静态成员名(或静态方法名)直接获得。被static修饰的成员变量和成员方法是独立于该类的,它不依赖于某个特定的实例变量,也就是说它被该类的所有实例共享。所有实例的引用都指向同一个地方,任何一个实例对其的修改都会导致其他实例的变化。
static修饰的静态变量和静态方法和静态代码块介绍
ClassName.propertyName
ClassName.methodName(……)
static修饰的代码块表示静态代码块,当JVM装载类的时候,就会执行这块代码。
1static变量
static修饰的变量我们称之为静态变量,没有用static修饰的变量称之为实例变量,他们两者的区别是:
静态变量是随着类加载时被完成初始化的,它在内存中仅有一个,且JVM也只会为它分配一次内存,同时类所有的实例都共享静态变量,可以直接通过类名来访问它。
但是实例变量则不同,它是伴随着实例的,每创建一个实例就会产生一个实例变量。
所以我们一般在这两种情况下使用静态变量:对象之间共享数据、访问方便。
2static方法
static修饰的方法我们称之为静态方法,我们通过类名对其进行直接调用。由于在类加载的时候就存在了,它不依赖于任何实例,所以static方法必须实现,也就是说他不能是抽象方法abstract。
static方法是类中的一种特殊方法,我们只有在真正需要他们的时候才会将方法声明为static。如Math类的所有方法都是静态static的。
3static代码块
被static修饰的代码块,我们称之为静态代码块,静态代码块会随着类的加载一块执行,而且他可以随意放,可以存在于该了的任何地方。
static的局限:
由于static修饰的方法属于整个类,static方法内只能调用static变量和其他static方法,不能使用this,super等关键字。
static变量在定义时必须要进行初始化,且初始化时间要早于非静态变量。
静态方法效率上比实例方法效率高,静态方法的缺点是不自动进行销毁,而实例方法可以自动销毁。
它们是随着类的加载(而不是随着对象的产生)而产生,以至于可以用类名+静态成员名(或静态方法名)直接获得。被static修饰的成员变量和成员方法是独立于该类的,它不依赖于某个特定的实例变量,也就是说它被该类的所有实例共享。所有实例的引用都指向同一个地方,任何一个实例对其的修改都会导致其他实例的变化。
static修饰的静态变量和静态方法和静态代码块介绍
ClassName.propertyName
ClassName.methodName(……)
static修饰的代码块表示静态代码块,当JVM装载类的时候,就会执行这块代码。
1static变量
static修饰的变量我们称之为静态变量,没有用static修饰的变量称之为实例变量,他们两者的区别是:
静态变量是随着类加载时被完成初始化的,它在内存中仅有一个,且JVM也只会为它分配一次内存,同时类所有的实例都共享静态变量,可以直接通过类名来访问它。
但是实例变量则不同,它是伴随着实例的,每创建一个实例就会产生一个实例变量。
所以我们一般在这两种情况下使用静态变量:对象之间共享数据、访问方便。
2static方法
static修饰的方法我们称之为静态方法,我们通过类名对其进行直接调用。由于在类加载的时候就存在了,它不依赖于任何实例,所以static方法必须实现,也就是说他不能是抽象方法abstract。
static方法是类中的一种特殊方法,我们只有在真正需要他们的时候才会将方法声明为static。如Math类的所有方法都是静态static的。
3static代码块
被static修饰的代码块,我们称之为静态代码块,静态代码块会随着类的加载一块执行,而且他可以随意放,可以存在于该了的任何地方。
static的局限:
由于static修饰的方法属于整个类,static方法内只能调用static变量和其他static方法,不能使用this,super等关键字。
static变量在定义时必须要进行初始化,且初始化时间要早于非静态变量。
静态方法效率上比实例方法效率高,静态方法的缺点是不自动进行销毁,而实例方法可以自动销毁。
相关文章推荐
- Java基础知识之static关键字、静态代码块
- 【java基础知识】this 与 static 关键字
- java基础知识要点总结之几个重要关键字(关于static、this、final、)
- Java基础知识复习(static关键字)
- JAVA基础知识(2)--关键字static的使用
- Java基础知识之static关键字
- Java 7之基础 - static关键字
- 黑马程序员 Java基础 面向对象:static关键字 main函数 单例设计模式
- 第2章 Java编程基础——FAQ2.06 static关键字有什么含义?具体如何应用?能修饰构造方法吗?
- Java基础知识——super关键字
- java基础3--面向对象(上)(static关键字与main方法)
- JAVA基础--关键字 final/static/this/super
- java基础知识之静态:static
- Java基础知识——final关键字
- JAVA基础知识(static,final,abstract)浅谈
- C#基础知识——static关键字解析
- java基础----->Static 和 Final 关键字
- java基础----->Static 和 Final 关键字
- JAVA 基础之Static关键字和类加载
- Java基础知识整理(六)-final和static