通俗说下java中的static
来源:互联网 发布:淘宝大学证书 编辑:程序博客网 时间:2024/04/29 23:58
1.static 当他是修饰的方法的时候
如:public static void person()
{
}
public void A()
{
person();//直接调用,不需要new,必须实现,但占用内存
}
2.static修饰变量时候
其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。
示例:
class Person{
//成员变量,实例变量
String name;
//静态变量,类变量
//所有对象共享的属性用static修饰
static String country = "CN";
public void show(){
System. out.println(country + ":" + name);
//等效语句:System.out.println(Person.country+ ":" + this.name);
}
}
class StaticDemo{
public static void main(String[]args){
Personp = new Person();
System. out.println(p.country);
//可以用类名直接调用
System. out.println(Person.country);
}
}
结果:
CN
CN
3.static修饰类时候
静态类主要是共享,静态类内部成员必须是静态的。静态一般在程序加载的时候被构造。我个人用静态类最多的地方的是程序配置部分,因为他的共享特性,在多个窗体中都需要调用,更主要的就是他在程序启动的时候就被初始化了。静态类可以有构造函数,但是只被调用一次。就上面说的程序配置数据部分,如果使用非静态类,那么你需要在任何有可能访问到他的代码前手动初始化他,并且还要将他赋给一个静态变量后才能使用。费事不费事另说,假若你需要在他构造前某个位置来调用它,那还需要修改你构造他的代码的位置。 非静态类使用完成后系统会自动销毁释放,所以非静态类相对来说比较安全,而静态类是在程序结束后销毁的,在销毁前一直驻留在内存中,因此出现错误的可能性会大些。建议不要过多的使用静态类,适时使用。
4.static 和final同时使用
public static final string user="china";//有静态变量的好处,同时这个变量不能修改
static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
对于方法,表示不可覆盖,并且可以通过类名直接访问
5.static修饰代码块时候
static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。例如:
public
class
Test5 {
private
static
int
a;
private
int
b;
static
{
Test5.a=
3
;
System.out.println(a);
Test5 t=
new
Test5();
t.f();
t.b=
1000
;
System.out.println(t.b);
}
static
{
Test5.a=
4
;
System.out.println(a);
}
public
static
void
main(String[] args) {
// TODO 自动生成方法存根
}
static
{
Test5.a=
5
;
System.out.println(a);
}
public
void
f(){
System.out.println(
"hhahhahah"
);
}
}
运行结果:
3
hhahhahah
1000
4
5
- 通俗说下java中的static
- java中static通俗见解
- 通俗的说下Java里面的回调机制(供学习使用-学习笔记)
- 【Rxjava】通俗说Rxjava
- static通俗演义
- Effective Java通俗理解(下)
- 总结下java中的abstract,interface,final,static
- Java中的静态static
- Java中的static关键字
- JAVA中的static关键字
- JAVA中的static用法
- Java中的static(1)
- 说说Java中的static
- 了解Java中的Static
- JAVA中的static
- java中的static
- java中的static
- Java中的static介绍
- 多线程设计模式-- Master-Worker模式
- JAVA UUID 生成
- sqlyog通过跳板机ssh连接mysql数据库
- Android源码研究
- 文章标题
- 通俗说下java中的static
- 产品经理如何做好需求过滤——三度
- POJ 3009 Curling 2.0 简单dfs
- Android Crash的log分析(Tombstone)
- poj-3461Oulipo
- 【NOIP2011模拟9.17】数字生成游戏
- 该死的美国佬!!!!
- n a^o7 !
- Android VideoView播放视频(1)