Title: Java%20Primitives
1Java Primitives
- The Smallest Building Blocks of the Language
- (corresponds with Chapter 2)
2Terminology
- Primitive Data Type a category of data. A
description of how the computer will treat bits
found in memory. - Variable a named location in memory, treated as
a particular data type, whose contents can be
changed. - Constant a named location in memory, treated as
a particular type, whose contents cannot be
changed. - Declaration the act of creating a variable or
constant and specifying its type. - Literal a hard-coded piece of data, part of the
statement and not based on a variable or constant
declaration. - Operator a symbol that describe how to
manipulate data and variables in memory - Expression a combination of operators,
variables, constants and/or literals that
produces a resulting piece of data - Assignment copying the results of an expression
into a variable. - Statement a program instruction telling the CPU
what to do. (All statements end with semicolon).
3Java Primitive Data types
- boolean -- true/false
- char -- Unicode character (good for
internationalization) - byte -- 8-bit signed integer
- short --16-bit signed integer
- int -- 32-bit signed integer
- long -- 64-bit signed integer
- float -- 32-bit floating point number
- double -- 64-bit floating point nbr
4Identifiers
- Identifier the name of a variable, constant,
class, or method - Rules for using identifiers
- An identifier must start with a letter, an
underscore, or a dollar sign. - An identifier cannot contain operators, such
as, -, and so on. - An identifier cannot be a reserved word. (See
Appendix A, Java Keywords, for a list of
reserved words). - An identifier cannot be true, false, ornull.
- An identifier can be of any length.
5Declaring Variables
- int x // declares x to be an
- // integer variable
- double radius // declares radius to
- // be a double variable
- char a // declares a to be a
- // character variable
Declaring multiple variables of the same
type datatype identifier1, identifier2,
identifier3
General format datatype identifier
6Assignment Statements
- x 1 // Assign 1 to x
- radius 1.0 // Assign 1.0 to radius
- a 'A' // Assign 'A' to a
General format VariableIdentifier expression
7Declaring and Initializingin One Step
- int x 1
- double d 1.4
- float f 1.4f
- char a a
8Constants
- final datatype CONSTANTNAME VALUE
- final double PI 3.14159
- final int SIZE 3
9Numeric Literals
- int i 34
- long l 1000000
- float f 100.2f orfloat f 100.2F
- double d 100.2d ordouble d 100.2D
10Common Types of Operators
- Assignment
- Arithmetic - /
- Comparison lt gt lt gt !
- Logical !
modulus
equals
not equals
Exclusive OR
AND
NOT
OR
11Modulus (remainder) Operator
- Modulus is very useful in programming. For
example, an even number 2 is always 0 and an
odd number 2 is always 1. So you can use this
property to determine whether a number is even or
odd. Suppose you know January 1, 2005 is
Saturday, you can find that the day for February
1, 2005 is Tuesday using the following
expression
12Common Types of Expressions
- Arithmetic
- Combine numeric data with arithmetic operators
- Return a number
- Conditional
- Combine boolean values with logical operators
- Boolean values can be derived from comparison
operators or boolean data values - Returna boolean value
13Arithmetic Expressions
- 1 1
- x y
- 5 / 2
- 5 2
- radiusradius3.14159
14Sample Statements with Arithmetic Expressions
- //Compute the first area
- radius 1.0
- area radiusradius3.14159
- //Compute the second area
- radius 2.0
- area radiusradius3.14
15Arithmetic Expressions
is translated to (34x)/5 10(y-5)(abc)/x
9(4/x (9x)/y)
16Shortcut Operators
Operator Example Equivalent i8 i
i8 - f-8.0 f f-8.0 i8 i i8 / i/8 i
i/8 i8 i i8
17Increment andDecrement Operators
- x 1
- x x
- x-- --x
- y 2 x
- y 2 x
- y 2 x--
- y 2 --x
Add 1 to x
Subtract 1 from x
X is incremented after adding to 2
X is incremented before adding to 2
X is decremented after adding to 2
X is decremented before adding to 2
18Increment andDecrement Operators, cont.
19Integer vs. Floating Point Division
- When performing operations involving two operands
of different types, Java automatically converts
the operand of a smaller range to the data type
of the larger range. - Example
- 1/2 ? this will give 0 because both operands are
integer - 1.0/2 or 1/2.0 ? this will give 0.5 because
the floating point literal is a double, so the
integer literal (long) will be converted to a
double thus floating point division will take
place.
20Character Data Type
- char letter 'A'
- char letter '\u00041'
- char numChar '4'
Java uses Unicode instead of ASCII for character
data representation
21Character Escape Sequences
Backspace \b Tab \t Linefeed \n Carriage
return \r Backslash \\ Single quote \' Double
quote \"
22The boolean Data Type
- boolean lightsOn true
- boolean lightsOn false
- boolean test 11
- Returns true
- boolean test 12
- Returns false
23The symbol as concatenation operator
- System.out.println("The area is "
- area
- " for radius "
- radius)
String literals are enclosed in double quotes
24Boolean Operators Revisited
Operator Name ! not and or exclusive
or
25Truth Table for Operator !
26Truth Table for Operator
27Truth Table for Operator
28Truth Table for Operator
29Numeric Type Conversion
- Consider the following statements
- byte i 100
- long k i 3 4
- double d i 3.1 k / 2
30Conversion Rules
- When performing a binary operation involving two
operands of different types, Java automatically
converts the operand based on the following
rules -
- 1. If one of the operands is double, the other
is converted into double. - 2. Otherwise, if one of the operands is float,
the other is converted into float. - 3. Otherwise, if one of the operands is long,
the other is converted into long. - 4. Otherwise, both operands are converted into
int.
31Type Casting
- Implicit casting
- double d 3 (type widening)
- Explicit casting
- int i (int)3.0 (type narrowing)
- int i (int)3.9 (Fraction part is truncated)
Cast operator
32Operator Precedence
- Casting
- , --
- , /,
- , -
- lt, lt, gt, gt
- , !
-
-
- , , -, , /,
Parentheses can be used to override normal
precedence