initialization order



initialization order

  The general order of class initialization is:

 

1 - First all static items are initialized, in their source code order..

2 - Then all member variables are initialized.

3 - Lastly the constructor is called.

 

  Below is a simple demonstration program showing class initialization order.  Its output is:

 

1a - Static class variable vstatic initialized first.

1b - Static initialization block ran.

2  - Non-static class variable vnonstatic initialized.

3  - Constructor ran.

 

public class ExecuteDemo {

        public static void main(String[ ] args) {

                        DemonstrateOrder DO = new DemonstrateOrder ( );   }

}

class DemonstrateOrder{

        static String vstatic = verify(" 1a - Static class variable vstatic initialized first." );

        String vnonstatic = verify(" 2  - Non-static class variable vnonstatic initialized." );

        static {System.out.println(" 1b - Static initialization block ran." ); }

 

        static String verify(String s) { System.out.println(s);  return s; }

 

        DemonstrateOrder ( ) {System.out.println(" 3  - Constructor ran." );  }

}

 

  The general order of initialization for classes with inheritance is:

 

First, parent static items, then child static items

Then parent member variables, followed by the parent constructor

Then child member variables, followed by the child constructor


Read full article from initialization order


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts