What is static in java
Answer: Sometimes when you would like define a class member that will be used independently of any object of that class. Indeed, a class member must be accessed only in conjunction with an object of its class. However, it is possible to create a member that can be used by itself, without reference to a specific instance. To create such a member, precede its declaration with the keyword static. When a member is declared static, it can be accessed before any objects of its class are created, and without reference to any object. You can declare both methods and variables to be static. The most common example of a static member is main( ). main( ) is declared as static because it must be called before any objects exist.
Instance variables declared as static are global variables. When objects of its class are declared, no copy of a static variable is made. Instead, all instances of the class share the same static variable. Methods declared as static have several restrictions:
- They can only call other static methods.
- They must only access static data.
- They cannot refer to this or super in any way.
If you need to do computation in order to initialize your static variables, you can declare a static block that gets executed exactly once, when the class is first loaded as shown in below example:
package com.javahonk.staticTest; public class StaticTest { static int a = 3; static int b; static void methodTest(int x) { System.out.println("x = " + x); System.out.println("a = " + a); System.out.println("b = " + b); } static { System.out.println("Static block initialized."); b = a * 4; } public static void main(String args[]) { methodTest(42); } }
Output:
Static block initialized. x = 42 a = 3 b = 12