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

Primitive Data Types: 15-110 Summer 2010 Margaret Reid-Miller

This document discusses Java's primitive data types. It notes there are 8 primitive types: byte, short, int, long, float, double, char, and boolean. A variable is a name for a memory location that can store a value of a specified data type. Variables must be declared before use and can be initialized during declaration. Expressions produce a value and have a type. Type casting and conversions may occur during operations between variables of different types.

Uploaded by

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

Primitive Data Types: 15-110 Summer 2010 Margaret Reid-Miller

This document discusses Java's primitive data types. It notes there are 8 primitive types: byte, short, int, long, float, double, char, and boolean. A variable is a name for a memory location that can store a value of a specified data type. Variables must be declared before use and can be initialized during declaration. Expressions produce a value and have a type. Type casting and conversions may occur during operations between variables of different types.

Uploaded by

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

Primitive Data Types

15-110 Summer 2010


Margaret Reid-Miller
Data Types
•  Data stored in memory is a string of bits (0 or 1).
•  What does 1000010 mean?
66?
'B'?
9.2E-44?
•  How the computer interprets the string of bits
depends on the context.
•  In Java, we must make the context explicit by
specifying the type of the data.

Summer 2010 15-110 (Reid-Miller) 2


Primitive Data Types
•  Java has two categories of data:
•  primitive data (e.g., number, character)
•  object data (programmer created types)

•  There are 8 primitive data types:


byte, short, int, long, float, double,
char, boolean

•  Primitive data are only single values; they


have no special capabilities.

Summer 2010 15-110 (Reid-Miller) 3


Common Primitive Types

Type Description Example of Literals

integers (whole
int 42, 60634, -8, 0
numbers)

double real numbers 0.039, -10.2, 4.2E+72

char single characters 'a', 'B', '&', '6'

boolean logical values true, false

Summer 2010 15-110 (Reid-Miller) 4


Numbers

Type Storage Range of Values

byte 8 bits -128 to 127

short 16 bits -32,768 to 32,727

int 32 bits -2,147,483,648 to 2,147,483,647

long 64 bits -9x1018 to 9x1018

float 32 bits ±10-45 to ±1038, 7 significant digits

double 64 bits ±10-324 to ±10308, 15 significant digits

Summer 2010 15-110 (Reid-Miller) 5


Variables
•  A variable is a name for a location in memory
used to store a data value.
•  We use variables to save and restore values or
the results of calculations.
•  The programmer has to tell Java what type of
data will be store in the variable’s memory
location. Its type cannot change.
•  During the program execution the data saved in
the memory location can change; hence the term
“variable”.
Summer 2010 15-110 (Reid-Miller) 6
Variable Declaration
•  Before you can use a variable, you must
declare its type and name.
•  You can declare a variable only once in a
method.
•  Examples:
int numDimes;
double length;
char courseSection;
boolean done;
String lastName;

Summer 2010 15-110 (Reid-Miller) 7


Declaring Variables
•  Declaring a variable instructs the compiler to set
aside a portion of memory large enough to hold data
of that type.
int count;
double length;

count length

•  No value has be put in memory yet. That is, the


variable is undefined.

Summer 2010 15-110 (Reid-Miller) 8


Assignment Statements
•  An assignment statement stores a value into a
variable's memory location:
<variable> = <expression>;
•  An expression is anything that has a value: a literal
value, a variable, or a more complex calculation.
•  The result of the expression is assigned to the variable.
count = 3; count 3
length = 72.3 + 2.0; length
74.3

•  The first assignment to a variable initializes it.


Summer 2010 15-110 (Reid-Miller) 9
Re-Assigning Variables
•  A variable must be declared exactly once.
•  A variable can be assigned and re-assigned values
many times after it is declared.

Example:
int x;
x = 4;
System.out.println(x); // prints 4
x = x + 1;
System.out.println(x); // prints 5

Summer 2010 15-110 (Reid-Miller) 10


Declaration/Initialization
•  Variables can be declared and initialized in
one statement:

Examples:
int numDimes = 4;
double length = 52.3;
char courseSection = 'J';
boolean done = true;
String lastName = "Reid-Miller";
int count = 3 + 2;

Summer 2010 15-110 (Reid-Miller) 11


Expressions
•  An expression is anything that result in a value.
•  It must have a type. Why?
Example: (2 + 3) * 4
Arithmetic operators:
Operator Meaning Example Result
+ addition 1+3 4
- subtraction 12 - 4 8
* multiplication 3*4 12
/ division 2.2 / 1.1 2.0
% modulo (remainder) 14 % 4 2

Summer 2010 15-110 (Reid-Miller) 12


Division and Modulo
int a = 40; double x = 40.0;
int b = 6; double y = 6.0;
int c; double z;
c = a / b; 6 c = a % b; 4    
z = x / y; 6.66666667 c = b % a;     6    
c = b / a; 0 c = 0 % a;     0    
z = y / x; 0.15 c = b % 0;  error   
c = 0 / a; 6
c = a / 0; error

Summer 2010 15-110 (Reid-Miller) 13


Operator Precedence
•  The operators *, /, % are evaluated before the
operators +, - because *, /, % have higher
precedence than +, -.

Example: 2 + 4 * 5
2 + 20

22
•  To change the order use parentheses:
Example: (2 + 4) * 5 evaluates to ______

Summer 2010 15-110 (Reid-Miller) 14


Evaluating expressions
•  When an expression contains more than one
operator with the same level of precedence, they are
evaluated from left to right.
•  2 + 2 + 3 - 1 is (((2 + 2) + 3) - 1) which is 6
•  2 * 4 % 5 is ((2 * 4) % 5) which is 3

•  2 * 3 - 2 + 7 / 4
6 - 2 + 7 / 4
6 - 2 + 1
4 + 1
5
Summer 2010 15-110 (Reid-Miller) 15
Other operators
•  Assignment operators: =, +=, -=, *=, /=, %=

Example:
•  Shortcut for x = x + 2; is x += 2;
(“add 2 to x”)
•  Shortcut for y = y * 3; is y *= 3;
(“multiply y by 3”)

•  Increment / Decrement operators: ++, --


•  Shortcut for x = x + 1; is x++; (“increment x”)
•  Shortcut for y = y - 1; is y--; (“decrement y”)
Summer 2010 15-110 (Reid-Miller) 16
Data Conversion
•  Widening conversions convert data to another type
that has the same or more bits of storage. E.g.,
•  short to int, long (safe)
•  int to long (safe)
•  int to float, double (magnitude the same
but can lose precision)

•  Narrowing conversions convert data to another


type that has the fewer bits of storage and/or can
lose information. E.g.,
•  double or float to any integer type
•  double to float

Summer 2010 15-110 (Reid-Miller) 17


Mixing Types
•  When a Java operator is applied to operands of
different types, Java does a widening conversion
automatically, known as a promotion.
•  Example:
•  2.2 * 2 evaluates to 4.4
•  1.0 / 2 evaluates to 0.5
•  double x = 2; assigns 2.0 to x
•  "count = " + 4 evaluates to "count = 4"

string concatenation

Summer 2010 15-110 (Reid-Miller) 18


Mixing Types
•  Conversions are done on one operator at a time in
the order the operators are evaluated.

3 / 2 * 3.0 + 8 / 3     5.0     

2.0 * 4 / 5 + 6 / 4.0     3.2     

Summer 2010 15-110 (Reid-Miller) 19


Mixing Types
•  String concatenation has the same precedence as + -
and is evaluated left to right.
1 + "x" + 4 "1x4"    
"2+3=" + 2 + 3 "2+3=23” 
1 + 2 + "3" "33”     
"2*3=" + 2 * 3 "2*3=6"
4 - 1 + "x" "3x"     
"x" + 4 - 1 error

Summer 2010 15-110 (Reid-Miller) 20


Type Casting
•  Type casting tells Java to convert one type to
another.
Uses:
•  Convert an int to a double to force floating-point
division.
•  Truncate a double to an int.

Examples:
•  double average = (double) 12 / 5
•  int feet = (int) (28.3 / 12.0)

Summer 2010 15-110 (Reid-Miller) 21


Type casting
•  Because type casting has high precedence, it casts
the operand immediately to its right only.

Example:
double s = (double) 2 + 3 / 2;    3.0  
double s2 = (double) (2 + 3) / 2;    2.5  
double average = (double) 22 / 4;    5.5  
double average2 = 22 / (double) 4;   5.5  
double wrong = (double) (22 / 4);    5.0  

Summer 2010 15-110 (Reid-Miller) 22


char data type
•  A variable of type char holds exactly one (Unicode)
character/symbol.
•  Every character has a corresponding integer value.
•  The digit characters '0'… '9' have consecutive integer
values, as do the letters 'A'… 'Z' and 'a'… 'z'. We can
use this ordering to sort alphabetically.
•  Conversions:
String letter = "" + 'M'; // evaluates to "M"
int aAsInt = 'a'; // evaluates to 97
'a' + 2; // evaluates to 99
char c = (char)('a' + 2); // evaluates to 'c'

Summer 2010 15-110 (Reid-Miller) 23


Operator Precedence

Operator type Operator Associates


grouping (expression) Left to right
unary ++, --, +, - Right to left
cast (type) Right to left
multiplicative *, /, % Left to right
additive +, - Left to right
assignment =, +=, -=, *=, /=, %= Right to left

Summer 2010 15-110 (Reid-Miller) 24

You might also like