????????????δ???
????public class LinkTest {
????public static void main(String[] args) {
????ToBeLinked toBeLinked = null;
????System.out.println("Test link.");
????}
????}
?????? LinkTest????????ToBeLinked???????????????????????????????????????????д?????????????????????е???????????????ToBeLinked??Java??????????????????LinkTest??????????????????????ToBeLinked????б????????????????????ToBeLinked???????????????????ToBeLinked??Java??????????????????????????????ToBeLinked toBeLinked = new ToBeLinked();???????????????????У????????????????????ToBeLinked??????????????????????????????
????????Java???????
???????? Java ????????????????????????????????г??????????????????????????????????????
???????????????????????????α????????(active use)??JVM ?????????
?????????Java?????α??????????????JVM????и???????????????????????????????????о???????????????????????????????????????????????????????????????????????????????????丸???????????????????????????????д?????μ??????????о?????????????????
????public class StaticTest {
????public static int X = 10;
????public static void main(String[] args) {
????System.out.println(Y); //???60
????}
????static {
????X = 30;
????}
????public static int Y = X * 2;
????}
???????????????У??????????????????????????????????л?????????????С???????X?????????????10??????????????30????????Y????????????60??
???????????????????
????1.?????????б?????????????????
????2.???????????????????????
?????????????? Java ??????????????????????????????? static ?????????????????????<clinit>?????С????????????????????????????static final ????????????????г????????????????????? constant ?????????<clinit>???????????????????<clinit>?????? 1 ?????????????????????ó???????????? Jvm ?????????????
????Java????????????????????????????????Щ?????????
???????????Java??????????
????MyClass obj = new MyClass()
???????????Java???е???????????
????MyClass.sayHello()
??????Java??????????????????????
????MyClass.value = 10
????????Java????????????????????????????????????
????int value = MyClass.value
?????????Java???????assert???
???????Java????API???????????????????????????????????????Java??????е????????????????????????????????????????????????????
class B {
static int value = 100;
static {
System.out.println("Class B is initialized."); //???
}
}
class A extends B {
static {
System.out.println("Class A is initialized."); //???????
}
}
public class InitTest {
public static void main(String[] args) {
System.out.println(A.value); //???100
}
}
???????????????У???InitTest???A.value????????B????????????value??????value??????B??????????????B?????????????A???????????