jvm八:接口初始化规则
生活随笔
收集整理的這篇文章主要介紹了
jvm八:接口初始化规则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.atChina.jvm;
import java.util.Random;/** 當一個接口在初始化時,并不要求其父接口都完成了初始化* 只有在真正使用到父接口的時候,(如引用接口中所定義的常量時),才會初始化*/
public class Test5 {public static void main(String[] args) {System.out.println(Son5.b);System.out.println(Son5.c);}
}
interface Father5{public final static int c = new Random().nextInt(11);public static final int a = 5;
}interface Son5 extends Father5{public final static int b = 10;//public final static int c = new Random().nextInt(11);
}
package com.atChina.jvm;
import java.util.Random;/** 當一個接口在初始化時,并不要求其父接口都完成了初始化* 只有在真正使用到父接口的時候,(如引用接口中所定義的常量時),才會初始化*/
public class Test5 {public static void main(String[] args) {System.out.println(Son5.b);// System.out.println(Son5.c);}
}// Father5接口的實現類Son5被初始化,并不會將Father5接口初始化,但會加載Father5接口
interface Father5{// public final static int c = new Random().nextInt(11);public static final int a = 5;public static Thread thread = new Thread(){{// 每次實例一個對象,都會執行這個代碼塊中的語句System.out.println("...Father5.......thread");}};}class Son5 implements Father5{public static int b = 10;
}class H{public H(){System.out.println("H");}{// 每次實例一個對象,都會執行這個代碼塊中的語句System.out.println("hello world");}
}
?
package com.atChina.jvm; import java.util.Random;/** 當一個接口在初始化時,并不要求其父接口都完成了初始化* 只有在真正使用到父接口的時候,(如引用接口中所定義的常量時),才會初始化*/ public class Test5 {public static void main(String[] args) {System.out.println(Son5_1.thread);} }interface Father5_1{public static Thread thread = new Thread(){{// 每次實例一個對象,都會執行這個代碼塊中的語句System.out.println("...Father5_1.......thread");}}; }interface Son5_1 extends Father5_1{public static Thread thread = new Thread(){{// 每次實例一個對象,都會執行這個代碼塊中的語句System.out.println("...Son5_1.......thread");}}; }?
總結
以上是生活随笔為你收集整理的jvm八:接口初始化规则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm七:数组创建本质
- 下一篇: mybaits二十三:二级缓存