AnyCompiler

Variables aur Types

Java ke primitive types mein int, double, boolean, aur char shaamil hain — har variable ka ek declared type hota hai, aur ek baar declare hone ke baad woh type fixed ho jaata hai. Dhyan do ki yeh primitives hain, objects nahi: ek boolean true ya false word ke roop mein print hota hai, 0 ya 1 nahi.

public class Main {
    public static void main(String[] args) {
        int age = 30;
        double price = 19.99;
        boolean isStudent = false;
        char grade = 'A';
        System.out.println(age + " " + price + " " + isStudent + " " + grade);
    }
}
Output
30 19.99 false A

var type inference

var compiler ko ek variable ka type uske initializer se infer karne deta hai, jo Java 10 mein introduce hua tha — useful hai jab type obvious ya verbose ho. Yeh phir bhi compile time par ek fixed, fully static type produce karta hai; yeh dynamic type nahi hai jaisa shayad ek scripting language mein ho sakta hai.

public class Main {
    public static void main(String[] args) {
        var count = 42; // inferred as int
        var pi = 3.14159; // inferred as double
        System.out.println(count + " " + pi);
    }
}
Output
42 3.14159

Ek real type-mismatch error kaisa dikhta hai

Java ka compiler check karta hai ki har assignment ke types actually line up hote hain — jahan int expect kiya gaya hai wahan String assign karna ek compile error hai, koi aisi cheez nahi jo baad mein runtime par pakdi jaaye. Yeh genuinely woh hai jo javac report karta hai — ek real run se capture kiya gaya hai, plausible dikhne ke liye likha nahi gaya:

public class Main {
    public static void main(String[] args) {
        int age = "thirty";
        System.out.println(age);
    }
}
Output
Main.java:3: error: incompatible types: String cannot be converted to int
        int age = "thirty";
                  ^
1 error

Kuch bhi run nahi hota — koi output nahi, bas error. Ise runtime ke bajaye compile time par pakadna Java ki static typing ke main benefits mein se ek hai.

Aage: operators aur control flow — if/else, for, while, aur switch.

Practice exercise

Ek variable temperature, type double ka, 72.5 par set karo aur ek variable isSunny, type boolean ka, true par set karo. Dono ko ek space se separate karke saath mein print karo.