Static block is run immediately its loaded into memory(ie.,when class is loaded into class loader), not when class is created like a constructer. Its mostly used to initialize static variables created in a class.