DATA TYPES AND OPERATORS
AND STATEMENTS
Data types
Prof. Ashish Bhatia
2
Byte Ordering
Prof. Ashish Bhatia
3
JAVA
x86 and
x64
Floating Points - float
Prof. Ashish Bhatia
4
Float [ 8byte = 64 bits]
123.45 ? What is exponent and Significand
31 – Sign Bit [ 1 bit ]
23-30 – Exponent Field [ 8 bit ]
0-22 - Significand [23 bit]
Floating Points
Prof. Ashish Bhatia
5
Float [ 4byte = 32 bits]
Bits 30-23
Exponent
Bits 0-22 Significand
0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bits 30-23
Exponent
Bits 0-22 Significand
1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bits 30-23
Exponent
Bits 0-22 Significand
1 1 1 1 1 1 1 1 1 Any Non – zero value
Floating Points - double
Prof. Ashish Bhatia
6
Bits 62-52
Exponent
Bits 51-0 Significand
0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bits 62-52
Exponent
Bits 51-0 Significand
1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bits 62-52
Exponent
Bits 51-0 Significand
1 1 1 1 1 1 1 1 1 Any non-zero value
Super Type and Sub Type Relations
Prof. Ashish Bhatia
7
double
float
long
int
short
byte
char
Using Literals
Prof. Ashish Bhatia
8
Use l or L for long values else everything is int.
Use f or F for Float values else everything is double.
For Octal use 0
For Hex use 0x or 0X
\ used for special characters
‘\n’ = New Line
‘\t’ = Tab
‘\017’ = Character constant
Legal Identifiers
Prof. Ashish Bhatia
9
Must start with a letter, a currency character ($), or a connecting character such as the underscore ( _ ). Identifiers cannot start with a number!
After the first character, identifiers can contain any combination of letters, currency characters, connecting characters, or numbers.
In practice, there is no limit to the number of characters an identifier can contain.
Identifiers in Java are case-sensitive; foo and FOO are two different identifiers.
Example
Prof. Ashish Bhatia
10
int _a;
int $c;
int ______2_w;
int _$;
int this_is_a_very_detailed_name_for_an_;
int :b;
int -d;
int e#;
int .f;
int 7g;
Unicode Escape in Java
Prof. Ashish Bhatia
11
\ufour hex number
\u0A85
Reference Datatypes
Prof. Ashish Bhatia
12
Arrays
Classes
Interface
Enum
Annotation
Operators
Prof. Ashish Bhatia
13
Arithmetic Operators
+ - * / %
Conversion
Widening
Sub type to super type
Narrowing
Super Type to sub type
Mixed Conversion
Operators
Prof. Ashish Bhatia
14
Unary + and –
String Concatenation
Operator
Prof. Ashish Bhatia
15
Relational Operator
< > <= >= == !=
Logical Operator
& | ^ ! && ||
Bitwise Operator
& | ^ ~ << >> >>>
Increment and Decrement Operator [ ++ , -- ]
Conditional Operator (? : )
Assignment Operator
instanceof
new
Example
Prof. Ashish Bhatia
16
int a = 60; /* 60 = 0011 1100 */
int c = a << 2; /* 240 = 1111 0000 */
int c = a >> 2; /* 15 = 1111 */
int c = a >>> 2; /* 215 = 0000 1111 */
What is int a = -60?
Statements
Prof. Ashish Bhatia
17
Conditional
if, if-else, switch-case
Loop
for, while, do-while
break, continue, return
Labeled break and continue
Brain Teasing Exercise
Prof. Ashish Bhatia
18
x*=2+5
boolean b = 100 > 99;
5.0 == 5L
if(x=0) {}
if(b){}
if(5 && 6) {}
int x = 1; int y=++x; // x++ System.out.println(y);
Output
Prof. Ashish Bhatia
19
class Test{
public static void main(String[] args) {
int i = 42;
String s = (i<40)?"life":(i>50)?"universe":"everything";
System.out.println(s);
}
}
Output
Prof. Ashish Bhatia
20
String s = "";
boolean b1 = true;
boolean b2 = false;
if((b2 = false) | (21%5) > 2) s += "x";
if(b1 || (b2 = true)) s += "y";
if(b2 == true) s += "z";
System.out.println(s);
More on Arrays
Prof. Ashish Bhatia
21
int [] array; // recommended
int array[];
int [5] array; // ERROR
Declaring an Array
Constructing an Array
int array[] = new Array[]
int array[] = {1,2,3}
int z[] = new int[] {1,2,3}
int z[] = new int[3] {1,2,3}
Getting user input
Prof. Ashish Bhatia
22
import java.util.Scanner;
class Scan
{
public static void main(String args[])
{
Scanner s = new Scanner(System.in);
int x = s.nextInt();
System.out.println(x);
x = s.nextInt();
System.out.println(x);
}
}