Java中static关键字的作用及用法
1.static的概述
在Java中static是静态修饰符,表示静态的意思,用来修饰变量和方法
2.static的作用
- 随着类的加载而加载
-
//比如说我创建一个类,里面有一个静态方法,一个非静态 public class Animal { public void Dog() { } public static void Cat() { } //然后在main方法中分别使用这两个类,对非静态和静态方法的引用方式是不同的,如下:public static void main(String[] args) { Animal animal = new Animal(); animal.Dog(); //没有加static修饰的方法 必须通过对象来调用
Cat(); //类一出现,用static修饰的变量和方法随着类一块就出现了,可以在直接用 }
-
- 优先于对象存在
- static修饰的东西被类的所有对象共享
-
public class Animal { //姓名设置初始值并且是静态的 public static String name="小猫咪"; public String getname() { return this.name; } public void setname(String name) { this.name=name; } } //在test new Animal这个类然后输出,输出的结果会是姓名的初始值 public class Test { public static void main(String[] args) { Animal aaa = new Animal(); System.out.println(aaa.getname()); Animal bbb = new Animal(); System.out.println(bbb.getname()); } } //但如果通过aaa将初始值改成小狗,bbb输出的也会是小狗 public class Test { public static void main(String[] args) { Animal aaa = new Animal(); aaa.setname("小狗"); System.out.println(aaa.getname()); Animal bbb = new Animal(); System.out.println(bbb.getname()); } }
-
- 可以通过类名调用
这里注意!!!!
- 在静态方法中不可以使用this关键字
- 静态方法只能访问静态的成员变量和静态的成员方法
3.静态变量和成员变量的区别
这里我们来解释一下
-
-
静态变量属于类,所以也称为类变量
-
成员变量属于对象,所以也称为实例变量(对象变量)
-
-
内存中位置不同
-
静态变量存储于方法区的静态区
-
成员变量存储于堆内存
-
-
内存出现的时间不同
-
静态变量随着类的加载而加载,随着类的消失而消失
-
成员变量随着对象的创建而存在,随着对象的消失而消失
-
-
调用不同
-
静态变量可以通过类名调用,也可以通过对象调用
-
成员变量只能通过对象名调用
4.使用案例
- 创建工具方法
- 只需加载一次或者执行一次
5.代码块
- 定义:在Java中,使用{}括起来的代码被称为代码块,根据位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块。
- (思考代码块的执行顺序哦)
public class Student { static { System.out.println("Student 静态代码块"); } { System.out.println("Student 代码块"); } public Student() { System.out.println("Student 构造方法"); } } public class StudentTest { static { System.out.println("北大吴彦祖"); } public static void main(String[] args) { System.out.println("我是main方法"); Student s1 = new Student(); Student s2 = new student(); } }

浙公网安备 33010602011771号