Variables और Data Types
Java में हर variable का एक type होता है — जैसे int (whole number), double (decimal number), char (single letter), boolean (true/false), और String (text)।
Java "statically typed" language है — मतलब डिब्बे का type शुरू में ही बताना पड़ता है, और उस डिब्बे में सिर्फ़ वही type की चीज़ fit होगी।
int age = 10;
double price = 99.5;
char grade = 'A';
boolean isFun = true;
String name = "Duke";Java mein 8 primitive types hain, aur inhe do groups mein baant sakte hain: numbers (byte, short, int, long, float, double), text (char), aur logic (boolean). Har type ki apni fixed size (bits/bytes) hoti hai, jo decide karti hai kitna bada number store ho sakta hai.
Whole numbers ke liye 4 types hain — chhote se bade tak byte, short, int, long. Zyadatar programs mein int hi default choice hoti hai (bahut bade numbers ke liye long). Decimal numbers ke liye float aur double hain — double zyada precise hai aur Java mein decimal literals (jaise 3.14) by default double hi maane jaate hain, isiliye float use karne ke liye 'f' suffix zaroori hai.
| Type | Size | Range | Default | Example |
|---|---|---|---|---|
| byte | 1 byte | -128 to 127 | 0 | byte b = 100; |
| short | 2 bytes | -32,768 to 32,767 | 0 | short s = 2000; |
| int | 4 bytes | ~-2.1B to 2.1B | 0 | int i = 50000; |
| long | 8 bytes | Bahut bada | 0L | long l = 100L; |
| float | 4 bytes | ~7 decimal digits precision | 0.0f | float f = 3.14f; |
| double | 8 bytes | ~15 decimal digits precision | 0.0 | double d = 3.14; |
| char | 2 bytes | 0 to 65,535 (Unicode) | '\u0000' | char c = 'A'; |
| boolean | 1 bit (JVM-dependent) | true / false | false | boolean b = true; |
Local variable ek method/block ke andar define hota hai — sirf wahi tak "zinda" rehta hai (jab method khatam, variable bhi gaya). Ise use karne se pehle initialize karna zaroori hai, warna compile error aayega — Java local variables ko koi default value nahi deta (jaanbujh kar, taaki galti se uninitialized data use na ho).
Instance variable class ke andar, method ke bahar define hota hai — har object ki apni alag copy hoti hai. Ye "heap" memory mein object ke saath store hoti hai, aur automatically default value milti hai (0, null, false) agar explicitly initialize na karo.
Static variable class ke saath juda hota hai, kisi individual object se nahi — sab objects ismein ek hi copy share karte hain. Ye program shuru hote hi (class load hote hi) banti hai aur poore program ke chalte rehti hai.
class Counter {
int id; // instance variable — har object ki apni
static int total; // static variable — sabme shared
void increment() {
int temp = 1; // local variable — sirf is method mein
total += temp;
}
}Java mein camelCase use hota hai variables/methods ke liye (studentName, calculateTotal), aur PascalCase class names ke liye (StudentRecord, BankAccount). Constants (static final variables) SCREAMING_SNAKE_CASE mein likhe jaate hain (MAX_SPEED, PI_VALUE) — ye conventions Java Language Specification mein official nahi hain, lekin poori industry follow karti hai, isliye inhe todna code ko "unprofessional" bana deta hai.
Numeric literals mein Java 7+ se underscore use kar sakte ho readability ke liye — 1_000_000 padhna 1000000 se kahin aasan hai. Hexadecimal 0x se shuru hota hai (0x1A = 26), octal sirf 0 se (010 = 8 decimal mein), aur binary 0b se (0b1010 = 10).
Variable names letters, digits, underscore (_), aur dollar sign ($) se ban sakte hain, lekin digit se shuru nahi ho sakte, aur Java ke reserved keywords (class, int, if, etc.) use nahi kar sakte.
int million = 1_000_000;
int hex = 0x1A; // 26
int binary = 0b1010; // 10
final double MAX_SPEED = 120.0;