静态static的内存图与静态代码块

静态原理图解
static 修饰的内容:
是随着类的加载而加载的,且只加载一次。
存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。
它优先于对象存在,所以,可以被所有对象共享。

 

 

 

 注意:

根据类名称访问静态成员变量的时候

全程和对象没有关系,只和类有关系

 

 
静态代码块
静态代码块:定义在成员位置,使用static修饰的代码块{ }。
位置:类中方法外。
执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。
格式:
public class ClassName{ 
static { // 执行语句 
        } 
}        
作用:给类变量进行初始化赋值。用法演示,代码如下:
public class Game {
public static int number;
public static ArrayList<String> list;
static {
// 给类变量赋值
number = 2;
list = new ArrayList<String>();
// 添加元素到集合中
list.add("张三");
list.add("李四");
}
}
小贴士:
static 关键字,可以修饰变量、方法和代码块。在使用的过程中,其主要目的还是想在不创建对象的情况
下,去调用方法。下面将介绍两个工具类,来体现static 方法的便利。
Class类
package demox.demopro;

public class Class {
    static {
        System.out.println("静态代码块执行");
    }
    public Class(){
        System.out.println("构造方法");
    }
}

Class类

package demox.demopro;
/*
静态代码块的格式是:
public class类名称{
static i
//静态代码块的内容
}
}
特点:当第一次用到本类时,静态代码块热行唯一的一次。
静态内容总是优先于非静态,所以静态代鸠块比构造方法先执行。静态代码块的典型用途:
用来一次性地对静态成员变量进行赋值。* /
 */
public class Class01 {
    public static void main(String[] args) {
        Class aClass = new Class();
        Class bClass = new Class();

    }
}

 

posted @ 2022-06-30 19:44  zj勇敢飞,xx永相随  阅读(83)  评论(0编辑  收藏  举报