java中的static关键字

本文介绍了Java中的`static`关键字的使用,包括静态变量和静态方法。静态变量在类加载时初始化,所有对象共享同一份存储,而静态方法不属于任何特定对象,而是属于类本身。通过类名可以直接访问静态成员。此外,还提到了静态代码块,它在类加载时执行一次,常用于设置日志或初始化静态变量。文章强调了将方法定义为静态的条件,即当所有对象执行相同动作时,该动作可以提升为类级别,如工具类中的方法通常为静态。
摘要由CSDN通过智能技术生成

一、static关键字修饰变量

实例变量:
当所有对象都有这个属性,但是这个属性的值会随着对象的变化而变化【不同对象的这个属性的值不同】讲变量声明为实例变量。
静态变量:
所有对象都有这个属性,并且,所有对象的这个属性值是一样的,建议定义为静态变量,节省内存开销。
用“类名.静态变量名”的方式访问。
采用引用.的方式访问的时候,即使引用是null,也不会出现空指针异常,因为访问静态的数据不需要对象的存在。
1.static为静态的。
2.static修饰的所有元素都为静态的,用“类名.静态变量名”的方式访问,也可采用引用.的方式访问的时候。
3.其修饰的都是类级别的,不需要对象的存在
例如:

package test008;
//中国人类
public class Chinese {
	 String id;
	 String name;
	 String country;
	public Chinese(String id, String name, String country) {
		this.id = id;
		this.name = name;
		this.country = country;
	}
	public Chinese() {
//		this.id = null;
//		this.name = null;
//		this.country = null;
	}
	 
}

package test008;

public class Chinesetest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Chinese zhangsan=new Chinese("1","张三","中国");
		System.out.println(zhangsan.name+","+zhangsan.id+","+zhangsan.country);
		Chinese lisi=new Chinese("1","李四","中国");
		System.out.println(lisi.name+","+lisi.id+","+lisi.country);
	}

}

在这里插入图片描述所有国籍一样,属于类级别的特征,可以提升整个模板的特征,可以在变量前面添加static关键字修饰。
静态变量在类加载的时候初始化,不需要创建对象,内存就开辟了。

package test008;

public class Chinesetest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Chinese zhangsan=new Chinese("1","张三");
		System.out.println(zhangsan.name+","+zhangsan.id+","+Chinese.country);
		Chinese lisi=new Chinese("1","李四");
		System.out.println(lisi.name+","+lisi.id+","+Chinese.country);
	}

}

package test008;
//中国人类
public class Chinese {
	 String id;
	 String name;
//所有国籍一样,属于类级别的特征,可以提升整个模板的特征,可以在变量前面添加static关键字修饰
	 //静态变量在类加载的时候初始化,不需要创建对象,内存就开辟了。
	 //静态变量存储在方法内存中
	 static String country="中国";
	public Chinese(String id, String name) {
		this.id = id;
		this.name = name;
		this.country = country;
	}
	public Chinese() {
//		this.id = null;
//		this.name = null;
//		this.country = null;
	}
	 
}

在这里插入图片描述

二、static关键字修饰方法

1.语法格式:

	static{
		java语句;

}

2.静态代码块在类加载时执行,并且只执行一次。
3.在一个类中可以编写多个,并且遵循自上而下的顺序。
4.作用:

  • 在类加载的时刻执行代码完成日志的记录
  • 静态代码块时为程序员准备的一个特殊时刻,为类加载时刻,希望在此刻执行特殊的程序,可以使用static关键字
package test010;

public class StaticTest01 {
	static {
	System.out.println("li");
}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print("main begin");
	}

}

二、方法什么时候定义为静态的

方法是描述动作的,当所有对象执行这个动作的时候,最终产生影响是一样的,那么,这个动作已经不在属于某一个对象的动作,可以将这个动作提升为类级别的动作,模板级别的动作。
大多数工具类中方法都是静态方法,工具类就是方便编程,不用创建对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值