java--static与代码块】的更多相关文章

简述 static{} 静态代码块,加载类之前执行 {} 代码块,每次new的时候都会被执行 示例 类: public class Student { int age; String name; boolean sex; public Student(){ age=10; name="Xu"; sex=false; } static{ System.out.println("This is a static block"); } { System.out.print…
假设有这样一个类: public class Utils { static { Log.i("static","isLoad!"); } public static void staticCode(){ } public int value; public void noStaticCode(){ } } 在整个程序运行起来时,何时加载这个静态代码块呢?1.当实例化该类时.列:new Utils():2.当调用该类静态方法时.列:Utils.staticCode()…
Java之static静态代码块 构造代码块 使用{}包裹的代码区域,这里的代码区域特指位于class{}下面的而不是存在于其他type method(){}这类函数下面的代码区域 public class HelloA { /** ... */ { System.out.println("I'm A construct code block"); } } 构造函数代码块 构造函数代码块指的是构造函数中所包含的代码,类似className(){}中的代码块 public class H…
类字面常量 final 静态域不会触发类的初始化操作 非 final static 静态域(以及构造器其实是一种隐式的静态方法) Class.forName():会自动的初始化: 使用 .class来创建对 class 对象的引用,不会自动地初始化该 class 对象,初始化被延迟到了对静态方法(构造器隐式的是静态的)或者非final静态域(注意final静态域不会触发初始化操作)进行首次引用时才执行. 1. static{} 静态代码块与 {} 非静态代码块 二者均是在 JVM 加载类时,且在…
Java中普通代码块,构造代码块,静态代码块区别及代码示例.Java中普通代码块,构造代码块,静态代码块区别及代码示例 执行顺序:静态代码块>静态方法(main方法)>构造代码块>构造方法. 其中静态代码块在jvm加载类的时候执行,只执行一次.构造代码块和构造方法在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” 2 public class CodeBl…
有一些情况下,有些代码需要在项目启动的时候就执行,则需要使用静态代码块,这种代码是主动执行的.Java中的静态代码块是在虚拟机加载类的时候,就执行的,而且只执行一次.如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次. 代码的执行顺序: 主调类的静态代码块 对象父类的静态代码块 对象的静态代码块 对象父类的非静态代码块 对象父类的构造函数 对象的非静态代码块 对象的构造函数 //静态代码块static{ ...;} //静态代码块{ ...;…
Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = "JD"; public class Test { public static void main(String[] args) { System.out.println(Test2.a); } } class Test2 { public static final String a = &qu…
先看一个例子: //class A package com.my.test; class A { static { System.out.println("A1:父类静态代码区域"); } { System.out.println("A2:父类非静态代码区域"); } public A() { System.out.println("A3:父类构造器"); } } //class B package com.my.test; public cla…
package com.atguigu.java; /** *//** * 使用同步代码块解决继承Thread类的方式的线程安全问题 * * 例子:创建三个窗口卖票,总票数为100张.使用继承Thread类的方式 * * 说明:在继承Thread类创建多线程的方式中,慎用this充当同步监视器,考虑使用当前类充当同步监视器. * */class Window2 extends Thread{ private static int ticket = 100; private static Obje…
静态成员变量:(static修饰变量) 如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类.多个对象共享同一份数据. 静态方法:(static修饰方法) 一旦使用static修饰成员方法,那么这就成为了静态方法.静态方法不属于对象,而是属于类的. 用法: 如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它. 如果有了static关键字,那么不需要创建对象,直接就能通过类名称来使用它. 无论是成员变量,还是成员方法.如果有了static,…