Variables and Datatypes

Declaring Variables

In Java all variables must first be declared before they can be used. This involves stating the variable's datatype and the name you wish to assign to the variable:

int studentNum = 1234;

The above statement tells your program that a field named "studentNum" exists, holds numerical data, and has an initial value of "1234". In this case, int (short for integer) is the data type and studentNum is the name we have assigned for our new variable. There are 8 'Primitive' data types available in Java (listed below). A variable's data type determines the values it may contain, plus the operations that may be performed on it. A primitive data type in Java is named by a reserved keyword (e.g. 'int').

Primitive Data Types

byte: The byte data type is an 8-bit signed two's complement integer. It has a minimum value of -128 and a maximum value of 127 (inclusive). The byte data type can be useful for saving memory in large arrays, where the memory savings actually matters.

short: The short data type is a 16-bit signed two's complement integer. It has a minimum value of -32,768 and a maximum value of 32,767 (inclusive). As with byte, you can use a short to save memory in large arrays.

int: The int data type is a 32-bit signed two's complement integer. It has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive). For integral values, this data type is generally the default choice unless there is a reason (like the above) to choose something else. This data type will most likely be large enough for the numbers your program will use, but if you need a wider range of values, use long instead.

long: The long data type is a 64-bit signed two's complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive). Use this data type when you need a range of values wider than those provided by int.

float: The float data type is a single-precision 32-bit IEEE 754 floating point. As with the recommendations for byte and short, use a float (instead of double) if you need to save memory in large arrays of floating point numbers. This data type should never be used for precise values, such as currency. For that, you will need to use the java.math.BigDecimal class instead.

double: The double data type is a double-precision 64-bit IEEE 754 floating point. For decimal values, this data type is generally the default choice. As mentioned above, this data type should never be used for precise values, such as currency.

boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined.

char: The char data type is a single 16-bit Unicode character. Use a single quotes when assigning a value to a char (e.g. char char1 = 'a';)

String

Character Strings are not one of the 8 primitive data types but Java does provide special support for character strings via the java.lang.String class. Enclosing your character string within double quotes will automatically create a new String object (e.g. String newString = "I am a new string!";). The String class is not technically a primitive data type, but is almost considered to be one because of how frequently it is used.

Example

class DeclaringVariablesExample{

         public static void main (String args[]){

                 //let's use some primitive data types

                 short studentAge = 19;
                 char studentSex = 'm';
                 long studentNumber = 100073718282823;
                 boolean currentlyEnrolledThisYear = true;
                 float averageGrade = 64.4;
                 double hisFavouriteNumber = 66.6666666666666666;

                 //but how do we store a String of letters like a name???
                 //we use the string class, its not a primitive date type but it almost is
                 //note the capital 'S' in String - this is an indication  that we are dealing with a class and not a primitive

                 String studentFirstName = "Bryan"

                 //Below, the use of the new keyword shows us using the String class' constructor (a special method which builds an Object)
                 //this is the usual method of declaring an Object (an Object is an instance of a Class!) and is proof that we are dealing with a class

                 String studentSecondName = new String("Jones");
         }

}

Video Tutorial