KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Our application is using initialization code that depends on the order static code is executed and I'm wondering if this order will be consistent across all JVMs. Here is a sample of what I mean: public class Main { static String staticVar = "init_value"; public static void main(String[] args) { System.out.println(A.staticVar); staticVar = "mainValue"; System.out.println(A.staticVar); } } public class A { static String staticVar = Main.staticVar; } will give: init_value init_value and public class Main { static String staticVar = "init_value"; public static void main(String[] args) { // System.out.println(A.staticVar); staticVar = "mainValue"; System.out.println(A.staticVar); } } public class A { static String staticVar = Main.staticVar; } will give (on my environment): mainValue To summarize, across all JVMs, is static code always executed when we use a class for the first time?
Tags (comma-separated)
Save Edits
Cancel