0% found this document useful (0 votes)
13 views

JAVA - 3 - Data Types Variables and Arrays

Uploaded by

kiranchaitanyab
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

JAVA - 3 - Data Types Variables and Arrays

Uploaded by

kiranchaitanyab
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 50

Data types, variables, and arrays

Java’s three most fundamental


elements
1. data types,
2. variables, and
3. arrays.
Java Is a Strongly Typed Language
• First, every variable has a type, every
expression has a type, and every type is
strictly defined.
• Second, all assignments, whether explicit or
via parameter passing in method calls, are
checked for type compatibility.
• There are no automatic coercions or
conversions of conflicting types as in some
languages.
Primitive Data Types

• Java defines eight primitive data types:


1)byte – 8-bit integer type
2)short – 16-bit integer type
3)int – 32-bit integer type
4)long – 64-bit integer type
5)float – 32-bit floating-point type
6)double – 64-bit floating-point type
7)char – 16 bit - symbols in a character set
8)boolean – logical values true and false
Int (Java Vs C/C++)
• Languages such as C and C++ allow the size of an integer to
vary based upon the dictates of the execution environment.
However, Java is different.
• Because of Java’s portability requirement, all data types have
a strictly defined range.
• For example, an int is always 32 bits, regardless of the
particular platform.
• This allows programs to be written that are guaranteed to run
without porting on any machine architecture.
Integers
1. Byte
2. Short
3. Int
4. Long
• All of these are signed, positive and negative values.
• Java does not support unsigned, positive-only
integers.
Integers
• byte: 8-bit integer type.
Range: -128 to 127.
Example: byte b = -15;
Usage: particularly when working with data streams.
• short: 16-bit integer type.
Range: -32768 to 32767.
Example: short c = 1000;
Usage: probably the least used simple type.
• int: 32-bit integer type.
Range: -2147483648 to 2147483647.
Example: int b = -50000;
Usage:
1) Most common integer type.
2) Typically used to control loops and to index
arrays.
3) Expressions involving the byte, short and int
values are promoted to int before calculation.
long: 64-bit integer type.
Range: -9223372036854775808 to 9223372036854775807.
Example: long l = 10000000000000000;
Usage: 1) useful when int type is not large enough to hold the desired
value
• float: also known as real numbers.
• There are two kinds of floating-point types, float and
double, which represent single- and double-precision
numbers, respectively.
1. Float is a 32-bit floating-point number.
Range: 1.4e-045 to 3.4e+038.
Example: float f = 1.5;
Usage:
1) fractional part is needed
2) large degree of precision is not required
2. double: 64-bit floating-point number.
Range: 4.9e-324 to 1.8e+308.
Example: double pi = 3.1416;
Usage:
1) accuracy over many iterative calculations
2) manipulation of large-valued numbers
Char
char: 16-bit data type used to store characters.
Range: 0 to 65536.
Example: char c = ‘a’;
Usage:
1) Represents both ASCII and Unicode character sets;
Unicode defines a character set with characters found
in (almost) all human languages.
2) Not the same as in C/C++ where char is 8-bit and
represents ASCII only.
Char (Java Vs C/C++)
• C/C++ programmers beware: char in Java is not the same as
char in C or C++. In C/C++, char is 8 bits wide.
• Java uses Unicode to represent characters.
• Unicode defines a fully international character set that can
represent all of the characters found in all human languages.
• It is a unification of dozens of character sets, such as Latin,
Greek, Arabic, Cyrillic, Hebrew, Katakana, Hangul, and many
more. For this purpose, it requires 16 bits.
• Thus, in Java char is a 16-bit type. The range of a char is 0 to
65,536. There are no negative chars.
Char
• This program displays the following output:
ch1 and ch2: X Y
• Notice that ch1 is assigned the value 88, which is the
ASCII (and Unicode) value that corresponds to the
letter X.
• As mentioned, the ASCII character set occupies the
first 127 values in the Unicode character set.
• For this reason, all the “old tricks” that you may have
used with characters in other languages will work in
Java, too.
char as int
• char can also be thought of as an integer type on which you
can perform arithmetic operations.
Boolean
• Two-valued type of logical values.
Range: values true and false.
Example: boolean b = (1<2);
Usage:
1) returned by relational operators, such as 1<2
2) required by branching expressions such as if
or for
Boolean
boolean b;
b = false;
System.out.println("b is " + b);
b = true;
System.out.println("b is " + b);
if(b) System.out.println("This is executed.");
b = false;
if(b) System.out.println("This is not executed.");
System.out.println("10 > 9 is " + (10 > 9));
Boolean
• b is false
• b is true
• This is executed.
• 10 > 9 is true
LITERALS
Integer Literals
• Decimal
• Octal - Octal values are denoted in Java by a leading zero.
• Normal decimal numbers cannot have a leading zero
• Hexadecimal - You signify a hexadecimal constant with a
leading zero-x, (0x or 0X).
• An integer literal can always be assigned to a long variable.
However, to specify a long literal, you will need to explicitly
tell the compiler that the literal value is of type long.
• You do this by appending an upper- or lowercase L to the
literal. For example, 0x7ffffffffffffffL or
9223372036854775807L
Floating-Point Literals
• Standard notation – 3.1649
• Scientific notation - uses a standard-notation,
floating-point number plus a suffix that
specifies a power of 10 by which the number
is to be multiplied.
• The exponent is indicated by an E or e
followed by a decimal number, which can be
positive or negative.
• Examples include 6.022E23, 314159E–05, and
2e+100.
Character literal
• A literal character is represented inside a pair
of single quotes.
• For octal notation, use the backslash followed
by the three-digit number.
• For example, ‘\141’ is the letter ‘a’.
• For hexadecimal, you enter a backslash-u (\u),
then exactly four hexadecimal digits.
String Literals
• String literals are specified by enclosing a
sequence of characters between a pair of
double quotes.
• Examples of string literals are
“Hello World”
“two\nlines”
“\”This is in quotes\”“
Escape sequence
Variables

• declaration – how to assign a type to a variable


• initialization – how to give an initial value to a variable
• scope – how the variable is visible to other parts of the
program
• lifetime – how the variable is created, used and destroyed
• type conversion – how Java handles automatic type
conversion
• type casting – how the type of a variable can be narrowed
down
• type promotion – how the type of a variable can be
expanded
Variables

• Java uses variables to store data.


• To allocate memory space for a variable JVM requires:
1) to specify the data type of the variable
2) to associate an identifier with the variable
3) optionally, the variable may be assigned an initial
value
• All done as part of variable declaration.
Basic Variable Declaration
• datatype identifier [=value];
• datatype must be
– A simple datatype
– User defined datatype (class type)
• Identifier is a recognizable name confirm to
identifier rules
• Value is an optional initial value.
Variable Declaration

• We can declare several variables at the same time:


type identifier [=value], identifier [=value] …;
Examples:
int a, b, c;
int d = 3, e, f = 5;
byte g = 22;
double pi = 3.14159;
char ch = 'x';
Variable Scope
• Scope determines the visibility of program elements with
respect to other program elements.
• In Java, scope is defined separately for classes and methods:
1) variables defined by a class have a global scope
2) variables defined by a method have a local scope
A scope is defined by a block:
{

}
A variable declared inside the scope is not visible outside:
{
int n;
}
n = 1;// this is illegal
Variable Lifetime
• Variables are created when their scope is entered by
control flow and destroyed when their scope is left:
• A variable declared in a method will not hold its
value between different invocations of this method.
• A variable declared in a block looses its value when
the block is left.
• Initialized in a block, a variable will be re-initialized
with every re-entry. Variables lifetime is confined to
its scope!
Type Conversion and Casting
• If the two types are compatible, then Java will
perform the conversion automatically. For
example - int value to a long variable
• Use cast to obtain a conversion between
incompatible types.
Java’s Automatic Conversions
• When one type of data is assigned to another
type of variable, an automatic type conversion
will take place if the following two conditions
are met:
1. The two types are compatible.
2. The destination type is larger than the source
type.
• When these two conditions are met, a
widening conversion takes place.
Casting Incompatible Types
• called as a narrowing conversion
• To create a conversion between two incompatible
types, you must use a cast.
• A cast is simply an explicit type conversion. It has this
general form:
(target-type) value
• Example –
int a;
byte b;
// ...
b = (byte) a;
Type conversion example
Arrays
• An array is a group of liked-typed variables
referred to by a common name, with individual
variables accessed by their index.
• Arrays are:
1) declared
2) created
3) initialized
4) used
• Also, arrays can have one or several dimensions.
Array Declaration
• Array declaration involves:
1) declaring an array identifier
2) declaring the number of dimensions
3) declaring the data type of the array elements
• Two styles of array declaration:
type array-variable[];
or
type [] array-variable;
Array Creation
• After declaration, no array actually exists.
• In order to create an array, we use the new operator:
type array-variable[];
array-variable = new type[size];
• This creates a new array to hold size elements of type
type, which reference will be kept in the variable
array-variable.
Array Indexing
• Later we can refer to the elements of this
array through their indexes:
array-variable[index]
• The array index always starts with zero!
• The Java run-time system makes sure that all
array indexes are in the correct range,
otherwise raises a run-time error.
Array Initialization

• Arrays can be initialized when they are declared:


int monthDays[] =
{31,28,31,30,31,30,31,31,30,31,30,31};
• Note:
1) there is no need to use the new operator
2) the array is created large enough to hold all
specified elements
2D Arrays

• Multidimensional arrays are arrays of arrays:


1) declaration: int array[][];
2) creation: int array = new int[2][3];
3) initialization: int array[][] = { {1, 2, 3}, {4, 5, 6} };
ODA_Example_DeclarationWithout
Assignment
class Array {
month_days[7] = 31;
public static void main(String args[])
month_days[8] = 30;
{
month_days[9] = 31;
int month_days[];
month_days[10] = 30;
month_days = new int[12];
month_days[11] = 31;
month_days[0] = 31;
System.out.println("April has " +
month_days[1] = 28;
month_days[3] + " days.");
month_days[2] = 31;
}
month_days[3] = 30;
}
month_days[4] = 31;
month_days[5] = 30;
month_days[6] = 31;
ODA_Example_DeclarationWithAssign
ment
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.");
}
}
2DA_Example
• A program to number each element in the
array (dimension4 rows and 5 columns) from
left to right, top to bottom, and then displays
these values:
class TwoDArray {
public static void main(String args[]) {
int twoD[][]= new int[4][5];
int i, j, k = 0;
for(i=0; i<4; i++){
for(j=0; j<5; j++) {
twoD[i][j] = k;
k++;
}
}
for(i=0; i<4; i++) {
for(j=0; j<5; j++)
System.out.print(twoD[i][j] + " ");
System.out.println();
}
}
}
3 Dimensional Array
class ThreeDMatrix {
public static void main(String args[]) {
int threeD[][][] = new int[3][4][5];
int i, j, k;
for(i=0; i<3; i++)
for(j=0; j<4; j++)
for(k=0; k<5; k++)
threeD[i][j][k] = i * j * k;
for(i=0; i<3; i++) {
for(j=0; j<4; j++) {
for(k=0; k<5; k++)
System.out.print(threeD[i][j][k] + " ");
System.out.println();
}
System.out.println();
}
}
}
String
• It is just that Java’s string type, called String, is
not a simple type. Nor is it simply an array of
characters.
• Rather, String defines an object
String
• The String type is used to declare string variables.
You can also declare arrays of strings.
• A quoted string constant can be assigned to a String
variable.
• A variable of type String can be assigned to another
variable of type String.
• You can use an object of type String as an argument
to println( ). For example,
String str = "this is a test";
System.out.println(str);
String
• Here, str is an object of type String.
• It is assigned the string “this is a test”.
• This string is displayed by the println( ) statement.
• String objects have many special features and attributes that
make them quite powerful and easy to use.

You might also like