关于java static关键字的理解

  1. static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。

  2. 一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。

  3. 也就是说当声明一个对象是,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。

  4. 非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的。

  5. 对象在引用成员变量是直接通过类名.变量名调用,对象在引用实例变量时只能通过对象名.变量名调用。

  6. 在类中调用成员变量时直接调用或者以类名.变量名方式调用,实例变量则用this或者直接调用。

  7. 对象共享的代码验证:

  8. 建一个类,包含一个静态变量,一个普通变量

  9.  

     class Sta{
    	public static int a;
    	public String b;
    	public Sta(int c,String d) {
    		a=c;
    		b=d;
    	}
    }

  10. 测试代码

Sta s1=new  Sta(2,"sd");              //在一个类的对象中修改static变量时,所有类的值都会变
		System.out.println(s1.a);
		System.out.println(s1.b);
	    Sta s2=new  Sta(32,"d");
		System.out.println(s1.a);
		System.out.println(s1.b);
		System.out.println(s2.a);
		System.out.println(s2.b);
		s2.a=4;
		System.out.println(s1.a);
		System.out.println(s2.a);


结果如下:

2
sd
32
sd
32
d
4
4

发现在s2对象改变static变量a的值时,s1的值也一并改变了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值