Java基础 static关键字

鳄鱼君

发表文章数:642

热门标签

, ,

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Java » Java基础 static关键字

在一个类中定义的变量叫做实例变量,定义多个类就有多个变量。现在有一种情况,每个类都具有一个相同的实例变量,例如,一个游戏角色类,都有生命值这个变量,现在需要100个角色,呢么就需要new100个角色,每个对象里面都保存一份实例属性,显然浪费内存,这时候就需要使用静态变量。

静态变量在类加载的时候初始化,不需要创建对象,内存就开辟了,它存储在方法区内存当中,而不是想实例变量那样存储在每个对象里面!

public class Role {
	// 静态变量
	static int live = 100;
	
	String name;
	
	// 构造方法
	public Role() {
		
	}
	
	public Role(String name) {
		this.name = name;
	}
	
}
public class StaticTest {
	public static void main(String[] args){
		Role r = new Role("鳄鱼君");
		
		System.out.println("角色生命值:" + Role.live + "角色名称:" + r.name);
		
	}

}

static关键字

什么时候成员变量声明为实例变量?
所有对象都有这个属性,但是这个属性的值会随着对象的变化而变化(不同对象的这个属性具体的值不同)
什么时候实例变量声明为静态变量?
所有对象都有这个属性,但是所有对象的这个属性的值是一样的,可以定义为静态变量,节省内存开销
java语言中的static关键字

  1. static翻译为静态
  2. static修饰的方法是静态方法
  3. static修饰的变量是静态变量
  4. 所有static修饰的元素都成为静态的,都可以使用“类名.”方式范围跟,当然也可以用“引用.”方式访问,但是这种方式就属于脱裤子放屁,多此一举!

静态代码块

可以使用static关键字来定义“静态代码块”,语法格式:

static {
    java语句;
}

静态代码块在类加载的时候执行,并且只执行一次,在一个类中可以编写多个:

public class StaticTest {
	static {
		System.out.println("1------》");
	}
	static {
		System.out.println("2------》");
	}
	static {
		System.out.println("3------》");
	}
	public static void main(String[] args){
		System.out.println("main begin");
		
	}

}

实例语句块

实例语句块/代码快,可以编写多个,遵循自上而下的顺序依次执行,在构造方法之前执行,构造方法依次执行。

public class StaticTest {
	// 构造方法
	public StaticTest(){
		System.out.println("缺省构造器");
	}
	
	// 实例代码块
	{
		System.out.println("1------》");
	}
	{
		System.out.println("2------》");
	}
	{
		System.out.println("3------》");
	}
	
	public static void main(String[] args){
		new StaticTest();
		System.out.println("main begin");
		new StaticTest();
	}

}

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Java基础 static关键字》 发布于2020-08-09

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

7 + 5 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册