Identifiers are user-defined names for Java programming entities—variables, methods, classes, interfaces, enums, and annotations. Choosing clear, standards-compliant names improves readability, maintenance, and interview appeal.
1️⃣ What Is an Identifier?
class Student {
public static void main(String[] args) {
int sNo; // identifier
String studentName; // identifier
}
}
In the snippet above, Student, main, args, sNo, and studentName are identifiers.
2️⃣ Rules for Creating Identifiers
Rule | Example | Valid? |
---|---|---|
Can use letters (A–Z , a–z ), digits (0–9 ), _ , $ |
myVar1 , _count , $cache |
✔ |
Must not start with a digit | 2ndItem |
❌ |
No spaces or special symbols (+ , & , @ ) |
my Variable |
❌ |
Cannot be a Java keyword | class , if |
❌ |
true , false , null are reserved literals (not keywords) |
true |
❌ |
Java is case-sensitive | rate vs Rate |
different |
✅ Valid Identifiers
i
, Number
, variable
, NUMBER
, _variable
, $number
, _50cent
, LongDescriptiveName
❌ Invalid Identifiers
50cent
, My Number
, a+b
, Mc’rib
, something_&_else
3️⃣ Naming Conventions (Oracle-Recommended)
Entity | Convention | Example |
---|---|---|
Class / Interface / Enum / Annotation | PascalCase, start with uppercase | Student , OrderService , MyAnnotation |
Method / Variable / Object | camelCase, start with lowercase | getStudentName() , studentAge |
Constant (static final) | UPPER_SNAKE_CASE | MAX_VALUE , DEFAULT_TIMEOUT |
Why follow conventions? Consistency lowers cognitive load for teams and boosts code quality scores in reviews and automated linters.
4️⃣ Real-World Anti-Patterns and Fixes
Anti-Pattern | Problem | Fix |
---|---|---|
String str; |
Vague name | String customerEmail; |
double PI = 3.14; (not final ) |
Constant not immutable | static final double PI = 3.14159265; |
int Class = 5; |
Keyword misuse | Rename to classCount |
5️⃣ Performance & Memory?
Identifier choice does not affect runtime performance—only readability and maintainability.
6️⃣ Interview Nuggets
-
Q: Can
enum
be used as a variable name?
A: No, it’s a keyword. -
Q: Are
true
,false
, andnull
keywords?
A: They’re reserved literals—still disallowed as identifiers.
🧭 Java Version Relevance
No Java version has changed identifier rules since Java 1.0. Only new keywords (e.g., enum
, assert
, pattern-matching instanceof
) occasionally reduce the pool of valid names.
📝 Summary
- Follow identifier rules to avoid compilation errors.
- Apply naming conventions (PascalCase, camelCase, UPPER_SNAKE_CASE).
- Clear names improve readability, maintenance, and team onboarding.
Practice: Refactor a legacy codebase by renaming ambiguous variables to descriptive identifiers.