java关键字static和final的使用

static 关键字 用于修饰成员(成员变量和成员方法)
特点:
1.随着类的加载而加载
2.只加载一次,就会一直存在,知道类消失就一起消失了
3.优先于对象加载,被所有的对象共享
4.可以直接被类名调用

//测试static关键字
public class Test4_Ststic {
	public static void main(String[] args) {
		//静态资源优先于对象加载(没创建对象也能用静态的)
		//可以通过类名直接调用
		System.out.println(Student.name);
		//只加载一次
		Student s=new Student();
		s.name="jack";
		Student s1=new Student();
		//如果只加载一次应该内存地址都一样
		System.out.println(s1.name);
		
		
	}
}

//创建类
class Student{
	//用ststic关键字属性变成静态的
	static String name;
	int age;
	
	public void eat() {
		System.out.println("chichichi");
	}
	//静态方法
	public static void sleep() {
		 System.out.println("睡觉");
	}
	
}

java关键字static和final的使用_第1张图片
栈:先进后出 常用于存变量
堆:常用于存对象
方法区:分为静态区和非静态区 常用于存常量、静态变量、方法

java关键字static和final的使用_第2张图片

静态资源不能调用非静态资源
静态资源能调用静态资源

即静态只能调静态
非静态啥都可以调

静态代码块
随着类的加载而加载,并且只被加载一次,一般用于项目的初始化
static{

}

final关键字

final是最终的意思,可以修饰类,方法,成员变量
特点:
1.被final修饰的类,不能被继承
2.被final修饰的方法,不能被重写
2.被final修饰的变量是个常量,不能被改变
4.常量的定义形式:final 数据类型 常量名 = 值

你可能感兴趣的:(java)