java中,static表示“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。

1.被static所修饰的变量或者方法会储存在数据共享区;

2.被static修饰后的成员变量只有一份!

3.当成员被static修饰之后,就多了一种访问方式,除了可以被对象调用之外,还可以直接

被类名调用,(类名.静态成员);

static的特点:

1、随着类的加载而被加载;

2、优先于对象存在;

3、被所有对象共享;

4、可以通过类名调用。

注意事项 !!!

           静态方法只能访问静态的成员变量和静态的成员方法

           局部变量不能被static修饰;

           静态得方法中是不可以定义this、super关键字的,因为静态优先于对象存在,所以静态方法不可以出this;

静态变量和成员变量的区别(掌握

* 静态变量也叫类变量 成员变量也叫对象变量

A:所属不同

     * 静态变量属于类,所以也称为为类变量

     * 成员变量属于对象,所以也称为实例变量(对象变量)

 B:内存中位置不同

     * 静态变量存储于方法区的静态区

     * 成员变量存储于堆内存

 C:内存出现时间不同

     * 静态变量随着类的加载而加载,随着类的消失而消失

     * 成员变量随着对象的创建而存在,随着对象的消失而消失

 D:调用不同

     * 静态变量可以通过类名调用,也可以通过对象调用

     * 成员变量只能通过对象名调用

代码块

 

定义

 

  • 在Java中,使用{}括起来的代码被称为代码块,根据位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。

    • 局部代码块

      • 在方法中出现;限定变量生命周期,及早释放,提高内存利用率

    • 构造代码块

      • 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行

    • 静态代码块

      • 在类中方法外出现,加了static修饰在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。

 

  执行顺序:静态代码块>构造代码块>构造方法

看代码写结果(思考静态代码块,构造代码块,构造方法的执行顺序):

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();
    }
}

知道答案的小伙伴欢迎在评论区里面留言!

 

    

 

版权声明:本文为知识狼堡原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/silasiladi/p/16242929.html