Java中的static关键字

一、static关键字可以修饰的种类

1.使用static关键字修饰一个属性

声明static的变量实质上就是全局变量。

2.使用static关键字修饰一个方法

在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法。

3.使用static关键字修饰一个

二、案例分析

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Role beibei = new Role("刘备");
		Role yunchang = new Role("关羽");
		Role feifei = new Role("张飞");
		
		System.out.println(beibei.getInfo());
		System.out.println(yunchang.getInfo());
		System.out.println(feifei.getInfo());
		

	}

}


class Role {

	private String name;
	private static String country = "蜀国";//静态变量(全局变量)
	
	public Role(String name) {
		this.name = name;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public static String getCountry() {
		return country;
	}

	public static void setCountry(String country) {
		Role.country = country;
	}
	
	public String getInfo() {
		return "name="+name+",country="+country;
	}
	
}

在这个案例中,我们定义了一个名为"Role"的类,其中包含了"name"和"country"两个属性。

如果按照平常的方法,即"name"和"country"都是一个普通的变量,那么物理存储结构为

很明显可以看出,三个"Role"的"country"属性都是相同的,所以其实是对存储空间的一种浪费。

而如果将"country"定义为一个静态变量的话,则"country"则会被放入静态方法区域,减少了内存的占用。

 

 其中,静态方法区存储静态变量,类信息(方法)

需要特别注意的是,如果要调用静态变量"country",应该避免直接使用对象调用,尽量用类名去调用,因为静态变量是本类所有对象共享的。

三、总结

1.静态变量或方法不属于对象,依赖类

2.静态变量是全局变量,生命周期从类被加载后一直到程序结束

3.静态变量只存一份,在静态方法区域中存放

4.静态变量是本类所有对象共享的

5.建议不要使用对象名去调用静态数据,直接使用类名调用

6.static修饰一个方法,那么该方法属于类,不属于对象,直接用类名调用

7.静态方法不能访问非静态属性和方法,只能访问静态的

(参考:Bilibili up主:千峰Java)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值