1.例子
对于的理解java分解质因数static,可以先从一个题目开头:
package com.test.thread;
public class StaticTest
{
public static void main(String[] args)
{
staticFunction();
}
static StaticTest st = new StaticTest();
static
{
System.out.println("1");
}
{
System.out.println("2");
}
StaticTest()
{
System.out.println("3");
System.out.println("a="+a+",b="+b);
}
public static void staticFunction(){
System.out.println("4");
<p>![java分解质因数static_分解因数是什么_c 分解因数递归][1]
}
int a=110;
static int b =112;
}
</p>
先不说这个答案是多少,待我们分析完下面的知识再来看这道题
jvm装载顺序
被JVM装载->执行父类的相关代码->如果有静态初始化,先执行静态初始化,且只执行一次java分解质因数static java 基本知识-之static,以后即使有该类实例化,也不会再执行->如果有静态代码块,以与静态初始化一样的方式执行->如果有new语句带来的实例化,先为成员变量分配空间,并绑定参数列表java分解质因数static,隐式或显式执行super(),即父类的构造方法,->执行非静态代码块-〉执行本类的构造函数-〉执行其他代码
基本知识点
在Java中并不存在全局变量的说法。但是可以通过来“伪造”一个全局变量。在java中 表示一个静态方法,用来修饰成员变量和方法以及代码块。
修饰变量和方法,独立于该类,不依赖特定的实例变量。
变量与实例变量
变量,即静态变量。在类加载的时候初始化。在内存中仅仅 ️一个,所有实例共享静态方法,通过类名调用。
实例变量:每创建一个实例就会定义一个变量,与该实例共生死。
2. 修饰方法
修饰方法,成为静态方法。类加载的时候创建,不依赖任何实例,不能被。
3.修饰代码块
修饰代码块,可以被放在任何位置。静态代码块随着类的加载一起加载。
与普通代码块区别,静态代码块,优先于普通代码块执行。
4.的局限性
只能调用 变量和 方法,
不能以任何形式引用this 和super
变量必须要进行初始化,并且初始化的时间要早于非静态变量。
习题答案:
经过上面的分析,习题答案如下:
参考资料:
java代码块执行顺序 - - 博客园
////
的静态代码块是否会在类被加载时自动执行? - 冬日降临 - 博客园