Primitive Types and Arithmetic Operations
Download
Report
Transcript Primitive Types and Arithmetic Operations
Primitive Data Types and Arithmetic
Operations
CS0007: Introduction to Computer Programming
Review
The console or console screen is…
a screen where the input and output is simple text.
When using the console for output, it is said that you are using
the…
standard output device.
The Java Application Programmer Interface (API) is…
a standard library of prewritten classes for performing specific
operations.
print
print some text to the screen
println
print some text to the screen and add a new line character at the end (go to
the next line).
Review
print and println are contained in the…
out object
The out object is contained in the…
System class
Escape Sequences…
allow a programmer to embed control characters or reserved characters into
a string. In Java they begin with a backslash and then are followed by a
character.
A variable is…
a named storage location in the computer’s memory.
Variables have 3 characteristics:
Name – the name we use in our code to refer to the memory location.
Type – characteristic that defines what legal values the variable can hold.
Value – what is actually held inside of the memory location.
Review
The name of the variable should describe what it holds, this produces…
self-documenting programs.
A variable declaration is…
a statement that tells the compiler the variables name, and what data type it
is.
You MUST declare a variable before you can use it.
An assignment statement…
stores a value on the right side of the = to the variable on the left.
A Literal is..
a value that is explicitly written in the code of the program.
When a variable is used NOT on the left hand side of a assignment
statement, the ________________ is used.
value stored in the variable
Primitive Data Types
Data Type defines what legal values the variable can hold.
There are many types of data, you can even define your own
type.
int is known as a primitive data type.
A primitive data type is a built-in data type that is a basic
building block for all other types and DO NOT create objects.
byte, short, int, long are all integer data types.
float and double are floating-point (decimal) data
types.
Primitive Numeric Data Types
Data Type
Size
Range
byte
1 byte
Integers in the range of -128 to +128
short
2 bytes
Integers in the range of -32,768 to +32,767
int
4 bytes
Integers in the range of -2,147,483,648 to +2,147,483,647
long
8 bytes
Integers in the range of -9,223,372,036,854,775,808 to
+9,223,372,036,854,775,807
float
4 bytes
Floating-point numbers in the range of ±3.4x10-38 to
±3.4x1038 with 7 digits of accuracy
double
8 bytes
Floating-point numbers in the range of ±1.7x10-308 to
±1.7x10308 with 15 digits of accuracy
Notes on Primitive Numeric Types
You want to choose a type based on what the variable should do
Why would you not use double for a variable that counts the number of
times the user clicks on something?
Why would you not use int for a variable that calculates the exact weight a
bridge can hold?
One good thing about types in Java is that the sizes of these variables are
the same on EVERY computer.
Not the case in other languages.
Other languages allow for bigger integers or unsigned integers, but Java
does not have primitive types for this.
Instead they have a BigInteger class.
The BigInteger class allows the programmer to use all the arithmatic operations
allowed by the primitive types on integers outside of the range of the primitive types.
Similarly, there is a BigDecimal class.
Probably not needed in this class…
Integer Types Example
New Topics:
int type
byte type
short type
long type
String Concatenation Operator (+)
String Concatenation is the process of appending to the end of a string.
In Java, the concatenation operator allows you to concatenate strings with
other string or simple variables of primitive type (Lines 15-18).
L suffix
All integer literals are considered to be of type int, so you must specify that
an integer literal is of type long if it is out of the range of type int.
You can do this by putting the character “L” after the long literal (line 13).
Floating-Point Data Types
Sometimes you may need to use fractional numbers in your program. In
programming terminology, these are called floating-point numbers.
Java provides two primitive floating-point data types:
float
double
Most programmers tend to use double instead of float when
dealing with floating-point numbers, unless for some reason the
programmer needs to reduce the amount of memory a program takes
up. This is done for multiple reasons:
On some modern day processors, operations done on data of type double
is actually faster than data of type float.
Most methods that return floating-point results, return type double.
Example: Cosine
Note, for similar reasons, programmers usually use int for integer data
over the other integer types.
Floating-Point Types Example
New Topics:
float type
double type
F suffix
All floating-point literals are considered to be of type double, so you
must specify that an floating-point literal is of type float if it being
assigned to a variable of type float.
You can do this by putting the character “F” after the long literal (line
13).
Boolean Data Type
Java provides a data type that can either be one of two values:
true or false. This is called boolean.
Right, now this may not seem useful, but the boolean
type will become very important later on.
Just remember the following things about boolean:
boolean variables can only hold the values of true or
false.
You cannot copy the values of boolean variables into any
variables of other types.
Boolean Type Example
New Topics:
boolean type
true reserved word
false reserved word
Character Data Type
Java also provides a data type for holding a single character
called char.
Character literals are surrounded by single quotes (')
Characters are stored in memory as numbers, the program
only knows it is a character and not a number by the type.
Java uses Unicode, which is a standard set of numbers used as
codes to represent characters.
Each number representing a character requires two bytes, so
the char data type takes up two bytes in memory.
Most times, you simply use the character literal, and don’t
worry about the Unicode number.
Character Type Example
New Topics:
char type
Character literal
Unicode
Wrap-Up on Literals
Integer Literals
Simply the number itself
Example: 5
Assumes literal is type int, so if using a number outside the range of
int, you must add the L suffix
Example: 400000000000000L
Floating-Point Literals
Simply the number itself
Example: 5.8
Assumes literal is type double, so if you want it to be of type
float, you must add the F suffix
Example: 5.8F
You can also use E Notation
2.75649E4 = 2.75649 X 104 = 27564.9
Wrap-Up on Literals
Boolean Literals
Really are none, but there are two predefined boolean values
true or false
Character Literals
A single character surrounded in single quotes
'G'
String Literals
A series of characters surrounded in double quotes
"Banana!"
Cannot use most operators on entities of different type
Example: 3 + 4.5 is invalid!
Variables Notes
Variables only hold one value at a time:
int number;
number = 1;
System.out.println(number);
number = 2;
System.out.println(number);
This will print
1
2
After these statements, number will hold only the value of 2
and not have any data kept about the value 1.
Variable Notes
You can declare multiple variables of the same type on a
single line by separating them with a ,.
int a;
int b;
int c;
Is the same as:
int a, b, c;
Variable Notes
You can also assign a variable a value on the same line as you
declare it:
int a;
a = 2;
Is the same as:
int a = 2;
This is called initialization.
Arithmetic Operators
Java offer many operators for manipulating data.
Three types of operators:
unary – takes one operand
binar y – takes two operands
ternary – takes three operands
Operands are the elements that the operator performs an
operation on.
Example: 2 + 3
+ is the operator.
2 and 3 are the operands.
+ in this case is a binary operator because it takes two operands.
Arithmetic Operators are operators that perform basic arithmetic
on the numeric data types.
Arithmetic Operators
Operator
Meaning
Type
Example
+
Addition
Binary
a = b + c;
-
Subtraction
Binary
a = b - c;
*
Multiplication
Binary
a = b * c;
/
Division
Binary
a = b / c;
%
Modulus
Binary
a = b % c;
-
Negation
Unary
a = -b;
Arithmetic Operator Notes
Modulus returns the remainder of the division of the left
operand by the right operand.
Example 7 % 5 results in 2
The operands of arithmetic operators can be literals or
variables.
All of these operators work for both integers and floatingpoint data types, but division of integers is different than
floating-point numbers.
Integer division divides the left operand by the right operand
and discards the remainder if there is one.
Arithmetic Operator Example
New Topics:
Arithmetic Operators
Operator Precedence and Grouping
Operators have precedence just like they do in normal arithmetic:
negation has highest precedence
multiplication and division have next (left to right)
addition and subtraction have last (left to right)
Example: -a + b / c
a would be negated first
b / c would happen next
-a + the result of b / c would happen last
Also, like in normal arithmetic, you can group parts of a
mathematical expression using parentheses
Example: (-a + b) / c
a would be negated first
-a + b would happen next
The result of -a + b would then be divided by c
The Math Class
The Java API provides a class called Math.
This class provided methods to perform more advanced math
operations.
Example: Square Root
a = Math.sqrt(9.0)
a would receive the value of 3.
Example: Exponents
a = Math.pow(4.0, 2.0)
a would receive the value of 16.
Grouping and Math Class Example
New Topics:
Operator Precedence
Grouping
Math Class
sqrt method