global variable will be initial automatically, int -> 0 , object -> null , boolean -> false
variable in method must be initial
static block
public class StaticExample{
static {
System.out.println("This is first static block");
}
public StaticExample(){
System.out.println("This is constructor");
}
public static String staticString = "Static Variable";
static {
System.out.println("This is second static block and "
+ staticString);
}
public static void main(String[] args){
StaticExample statEx = new StaticExample();
StaticExample.staticMethod2();
}
static {
staticMethod();
System.out.println("This is third static block");
}
public static void staticMethod() {
System.out.println("This is static method");
}
public static void staticMethod2() {
System.out.println("This is static method2");
}
}
output
This is first static block
This is second static block and Static Variable
This is static method
This is third static block
This is constructor
This is static method2
test
import java.util.HashMap;
public class testLeoStatic {
int a1 = 0;
static int a2 = 0;
HashMap h1 = new HashMap();
static HashMap h2 = new HashMap();
public void fun1()
{
display();
}
public static void fun2()
{
display();
}
public static void display()
{
if(a1==0)System.out.println("t");
else System.out.println("f");
if(a2==0)System.out.println("t");
else System.out.println("f");
if(h1==null)System.out.println("t");
else System.out.println("f");
if(h2==null)System.out.println("t");
else System.out.println("f");
}
public static void main(String[] args) {
fun2();
(new testLeoStatic()).fun1();
}
}
output
test