类初始化时静态代码块的加载

class superclass{    static {        System.out.println("superclass init");    }    public static int value = 123;}class subclass extends superclass{    static {        System.out.println("subclass init");    }}class outputrestult{    public static void main(String[] args){        System.out.println(subclass.value);        //这里只会输出superclass init 和123,而不会输出subclass init        //对于静态字段,只有直接定义这个字段的类才会被初始化,因此通过其子类来引用        //父类中定义的静态字段,只会触发父类的初始化字段而不会触发子类的初始化    }}
时间: 2024-08-05 10:34:17

类初始化时静态代码块的加载的相关文章

JavaEE初始化时静态代码块加载问题

1.使用java.exe命令运行某个类的时java.exe Person2.创建一个类的对象时Person p=new Person();3.访问类中的静态成员变量(赋值/获取值)System.out.println(Person.className);4.访问了类中的静态成员方法Person.method();5.创建类的子类对象的时候Student s=new Student();6.使用反射方式来强制创建某个类或接口对应的java.lang.Class对象System.out.printl

JavaSE8基础 父子类中都有静态代码块与构造代码块,执行顺序的简单示例

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: //父类 class Father { //静态代码块 static { System.out.println("父类的静态代码块"); } //构造代码块 { System.out.println("父类的构造代码块"); } public Father() { System.

一道面试题:静态代码块的执行顺序

先来看一道最常见的面试题:静态代码块的执行顺序? 看一下实际运行: class A{ static { System.out.println("A的静态代码块"); } { System.out.println("A的构造代码块/非静态代码块"); } public A() { System.out.println("A的构造函数"); } } class B extends A{ static { System.out.println(&quo

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

Java中初始化对象的顺序,静态代码块的用法以及Static的用法详解

(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用 比如main方法就必须是静态的 这是程序入口 两者的区别就是:静态代码块是自动执行的; 静态方法是被调用的时候才执行的. 静态方法 (1)在Java里,可以定义一个不需要创建对象的方法,

java中静态代码块(static{...}),局部代码块(方法中{...}),构造代码块(类中{...})区别。

1.局部代码块: 格式:在方法中{局部代码块执行语句} 局部代码块,又叫普通代码块.它是作用在方法中的代码块. 作用:是控制变量的生命周期. 在程序中当我们定义完成一个局部变量x之后,并且在接下来的代码中,不想再用到它时,那么就没必要让x在内存中继续占用空间.因此就有了局部代码块. 2.构造代码块: 格式:在类中{构造代码块执行语句} 作用:就是给所有对象进行初始化. 注意几点: 1)每次创建对象他都会执行. 2)构造代码快是优于构造函数执行. 3)构造代码块与构造函数的区别是:构造代码块是给所

静态代码块 和 main 函数 谁先加载???

学习编程中,当我们遇到问题的时候,如何解决我们的问题? 动手编程,编一个小程序 就很容易 看见自己想要的结果和答案! 今天学习了 static {}  静态代码块,但是 搞不清楚 他和static main() 函数 谁先加载? 于是: 自己编写了一个小段代码: 代码如下: package stu.love.a; public class StaticDemo1 { static { System.out.println("a"); } /** * @param args */ pub

JavaSE8基础 声明一个类的引用时,不触发静态代码块

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) 代码: class Test { //静态代码块 static { System.out.println("静态代码块"); } } class Demo { public static void main(String[] args) { System.out.println("main方法");

java中静态代码块的用法—— static用法详解

(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的. 静态方法(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就