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";- Variable = data के लिए एक labeled box
- Types: int, double, char, boolean, String
- Java statically typed है
Java में 8 primitive types हैं, और इन्हें दो groups में बाँट सकते हैं: numbers (byte, short, int, long, float, double), text (char), और logic (boolean)। हर type की अपनी fixed size (bits/bytes) होती है, जो decide करती है कितना बड़ा number store हो सकता है।
Whole numbers के लिए 4 types हैं — छोटे से बड़े तक byte, short, int, long। ज़्यादातर programs में int ही default choice होती है (बहुत बड़े numbers के लिए long)। Decimal numbers के लिए float और double हैं — double ज़्यादा precise है और Java में decimal literals (जैसे 3.14) by default double ही माने जाते हैं, इसीलिए float use करने के लिए 'f' suffix ज़रूरी है।
| Type | Size | Range | Default | Example |
|---|---|---|---|---|
| byte | 1 byte | -128 से 127 | 0 | byte b = 100; |
| short | 2 bytes | -32,768 से 32,767 | 0 | short s = 2000; |
| int | 4 bytes | ~-2.1B से 2.1B | 0 | int i = 50000; |
| long | 8 bytes | बहुत बड़ा | 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 से 65,535 (Unicode) | '\u0000' | char c = 'A'; |
| boolean | 1 bit (JVM-dependent) | true / false | false | boolean b = true; |
Local variable एक method/block के अंदर define होता है — सिर्फ़ वहीं तक "ज़िंदा" रहता है (जब method ख़त्म, variable भी गया)। इसे use करने से पहले initialize करना ज़रूरी है, वरना compile error आएगा — Java local variables को कोई default value नहीं देता (जान-बूझकर, ताकि ग़लती से uninitialized data use ना हो)।
Instance variable class के अंदर, method के बाहर define होता है — हर object की अपनी अलग copy होती है। ये "heap" memory में object के साथ store होती है, और automatically default value मिलती है (0, null, false) अगर explicitly initialize ना करो।
Static variable class के साथ जुड़ा होता है, किसी individual object से नहीं — सब objects इसमें एक ही copy share करते हैं। ये program शुरू होते ही (class load होते ही) बनती है और पूरे program के चलते रहती है।
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 में camelCase use होता है variables/methods के लिए (studentName, calculateTotal), और PascalCase class names के लिए (StudentRecord, BankAccount)। Constants (static final variables) SCREAMING_SNAKE_CASE में लिखे जाते हैं (MAX_SPEED, PI_VALUE) — ये conventions Java Language Specification में official नहीं हैं, लेकिन पूरी industry follow करती है, इसलिए इन्हें तोड़ना code को "unprofessional" बना देता है।
Numeric literals में Java 7+ से underscore use कर सकते हो readability के लिए — 1_000_000 पढ़ना 1000000 से कहीं आसान है। Hexadecimal 0x से शुरू होता है (0x1A = 26), octal सिर्फ़ 0 से (010 = 8 decimal में), और binary 0b से (0b1010 = 10)।
Variable names letters, digits, underscore (_), और dollar sign ($) से बन सकते हैं, लेकिन digit से शुरू नहीं हो सकते, और Java के reserved keywords (class, int, if, etc.) use नहीं कर सकते।
int million = 1_000_000;
int hex = 0x1A; // 26
int binary = 0b1010; // 10
final double MAX_SPEED = 120.0;