Java is a strongly typed
language. All expressions and parameters are checked by the java compiler to
ensure that the types are compatible.
There are 8 simple datatypes defined by Java. They are byte, short, int, long, char, float, double
and boolean.
Integers:
The
datatypes byte, short, int and long is grouped under integers. All of these datatypes are signed,
positive and negative values.
Name
|
Width
|
Range
|
long
|
64
|
-9,223,372,036,854,775,808
to 9,223,372,036,854,775,807
|
int
|
32
|
-2,147,483,648
to 2,147,483,647
|
short
|
16
|
-32,768
to 32,767
|
byte
|
8
|
-128
to 127
|
Floating
point types:
When
evaluating expressions that require fractional precision then floating-point
numbers are used. There are two types of floating-point types, float and
double, which represent single- and double-precision numbers,
respectively. Their width and ranges are shown here:
Name
|
Width in
Bits
|
Approximate
Range
|
double
|
64
|
4.9e–324
to 1.8e+308
|
float
|
32
|
1.4e-045
to 3.4e+038
|
Characters:
char is the datatype used to store characters in java. In Java char
is a 16-bit type. The range of a char is 0 to 65,536. There are no
negative chars. The standard set of characters known as ASCII still
ranges from 0 to 127 as always, and the extended 8-bit character set,
ISO-Latin-1, ranges from 0 to 255. Since Java is designed to allow applets to
be written for worldwide use, it makes sense that it would use Unicode to
represent characters.
Booleans:
The simple datatype used for logical values is boolean. It can have only one of two possible values, true or
false. This is the type
returned by all relational operators, such as a < b. boolean is
also the type required by the conditional expressions that govern the
control statements such as if and for.
Arrays:
An array is a group of like-typed variables that are referred to by a
common name. Arrays of any type can be created and may have one or more
dimensions. A specific element in an array is accessed by its index. Arrays
offer a convenient means of grouping related information.
One-Dimensional Arrays
A
one-dimensional array is, essentially, a list of like-typed variables.
To create an array, you first must create an array variable of the desired
type. The general form of a one-dimensional array declaration is
type var-name[ ];
Here, type declares
the base type of the array. The base type determines the data type of each
element that comprises the array. Thus, the base type for the array determines
what type of data the array will hold.
For example, the following declares an array named month_days with the type
“array of int”:
int month_days[];
Although this declaration
establishes the fact that month_days is an array variable, no array actually
exists. In fact, the value of month_days is set to null, which represents an
array with no value. To link month_days with an actual, physical array of
integers, you must allocate one using new and assign it to month_days. new is a
special operator that allocates memory.
The general form of
new as it applies to one-dimensional arrays appears
as follows:
array-var = new type[size];
Here, type specifies
the type of data being allocated, size specifies the number of elements
in
the array, and array-var
is the array variable that is linked to the array. That is, to use new to
allocate an array, you
must specify the type and number of elements to allocate. The elements in the
array allocated by new will automatically be initialized to zero. This example
allocates a 12-element array of integers and links them to month_days.
month_days = new int[12];
After this statement
executes, month_days will refer to an array of 12 integers. Further, all
elements in the array will be initialized to zero.
Let’s review:
Obtaining an array is a two-step process. First, you must declare a variable of
the desired array type. Second, you must allocate the memory that will hold the
array, using new, and assign it to the array variable. Thus, in Java all arrays
are dynamically allocated.
Once you have allocated an array, you can access a specific element in the
array by specifying its index within square brackets. All array indexes start
at zero.
For example, this
statement assigns the value 28 to the second element of month_days.
month_days[1] = 28;
The next line displays the
value stored at index 3.
System.out.println(month_days[3]);
Putting together all the
pieces, here is a program that creates an array of the number
of days in each month.
|
// Demonstrate a one-dimensional array. class Array { public static void main(String args[]) { int month_days[]; month_days = new int[12]; month_days[0] = 31; month_days[1] = 28; month_days[2] = 31; month_days[3] = 30; month_days[4] = 31; month_days[5] = 30; month_days[6] = 31; month_days[7] = 31; month_days[8] = 30; month_days[9] = 31; month_days[10] = 30; month_days[11] = 31; System.out.println("April has " + month_days[3] + " days."); } } |
When you run this program,
it prints the number of days in April. As mentioned, Java array indexes start
with zero, so the number of days in April is month_days[3] or 30. It is
possible to combine the declaration of the array variable with the allocation
of the array itself, as shown here:
int month_days[] = new
int[12];
This is the way that you
will normally see it done in professionally written Java programs. Arrays can
be initialized when they are declared. The process is much the same as that
used to initialize the simple types. An array initializer is a list of
comma-separated expressions surrounded by curly braces. The commas separate the
values of the array elements. The array will automatically be created large
enough to hold the number of elements you specify in the array initializer.
There is no need to use new.
For example, to store the number of days in each month, the following code
creates an initialized array of integers:
|
// An improved version of the previous
program. class AutoArray { public static void main(String args[]) { int month_days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; System.out.println("April has " + month_days[3] + " days."); } } |
When you run this program,
you see the same output as that generated by the previous version. Java
strictly checks to make sure you do not accidentally try to store or reference
values outside of the range of the array. The Java run-time system will check
to be sure that all array indexes are in the correct range. For example, the
run-time system will check the value of each index into month_days to make sure
that it is between 0 and 11 inclusive. If you try to access elements outside
the range of the array (negative numbers or numbers greater than the length of
the array), you will cause a run-time error.
Here is one more example
that uses a one-dimensional array. It finds the average of a set
of numbers.
|
// Average an array of values. class Average { public static void main(String args[]) { double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5}; double result = 0; int i; for(i=0; i<5; i++) result = result + nums[i]; System.out.println("Average is " + result / 5); } } |
No comments:
Post a Comment