Monday, September 21, 2015

Object initialization in Java



http://www.thejavageek.com/2013/07/21/initialization-blocks-constructors-and-their-order-of-execution/
Initialization blocks are places whereyou can perform operations like initialization of variables or execution of some statements. There are two kinds of initialization blocks
  • static initialization blocks
  • instance initialization blocks.
As their names suggest,
  • static initialization blocks are static and hence they belong to a particular class and not to the instances of class. They are defined as static { //some statements here }
  • Instance initialization blocks do not belong to a class and they are executed every time a new instance of the class is created. They are defined as {//some statements here}
There are certain rules regarding order of execution of initialization blocks and constructor. Let us list them down first and verify by writing a simple program.
  • Initialization blocks run in the order they appear in the program.
  • Static initialization blocks run when the class is first loaded into JVM
  • Instance initialization blocks run whenever a new instance of class is created.
  • Instance initialization blocks run AFTER the super constructor has completed executing and BEFORE current class constructor.
  • They can be used to perform operations those are common to constructors
http://www.danielschneller.com/2010/07/java-object-initialization-order-know.html

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts