Java Variables (with examples)
You use a variable when you need to store a value and refer to it elsewhere in the code.
In the example below, the two variables are highlighted.
String username = enterUsername();
String password = enterPassword();
if (login(username, password)) {
System.out.println("Welcome " + username + "!");
} else {
System.out.println("Invalid username/password");
}
Declaring
To use a variable you must first declare it. When you declare a variable you specify
- the type of data you will store in it,
- its name (or identifier), and,
- optionally, an initial value.
This code
int maxLength = 100;
…means:
From here on, let maxLength
represent an integer (int
). Initialize it with value 100
.
If you try to use a variable that hasn't been declared (e.g. if you misspell a variable name) the compiler will complain and say something like "Identifier amxLength not found."
Multiple variables
You can declare multiple variables at once with the same type:
int i, j, l;
boolean y = true, n = false;
Most style guides however, recommend against this.
Variable names…
- …are case sensitive.
- …may include any unicode letter or digit
- …must not start with a digit
- …must not be spelled the same way as a keyword,
true
,false
ornull
- …should by convention start with a lower case letter and be written in camelCase
Types
You must choose a type for each variable. There's no such thing as an untyped variable in Java. The type must be respected throughout the code. This code would give you a compiler error:
int i;
i = true; // Can't store a boolean value in an integer variable
Types come in two shapes:
- Primitive types --- simple types used to hold numbers, characters, etc
- Reference types --- used to store references to objects, such as
Person
,Car
, etc
See Java: Primitives vs Objects and References for further details.
Here are some examples, including all 8 primitive types:
byte b; // integers, −128–127
short s; // integers, ±32 thousand
int i; // integers, ±2 billion
long l; // integers, ±9 quintillion
float f; // reals, ~6 digits precision
double d; // reals, ~15 digits precision
boolean z; // true or false
char c; // character
Person p; // References to a Person objects
Car v; // References to a Car objects
Which numeric type to choose?
For integers, use int
unless you have reasons to use something else. Common exceptions: Unix timestamps and database IDs typically require long
.
For reals, use double
unless you have reasons to use something else. Common exceptions: Use BigDecimal
if you want to avoid rounding errors, for instance when dealing with currency.
Arrays
If you need to store, say 10 integers (but don't want to create 10 variables) you can use an array, or list. See Java Arrays (with examples) and Java: Array vs ArrayList (and other Lists).
Scope
If you for instance declare a variable in one method, you can't access that same variable in another method. Each variable has a scope; a section of code where it's accessible.
The scope is delimited by {
and }
.
void method() {
double d;
…
if (…) {
int i;
…
} else {
String s;
…
}
…
i = 17; // Error: i is out of scope
}