Primitive Data Types
E N D
Presentation Transcript
Primitive Data Types • There are a number of common objects we encounter and are treated specially by almost any programming language • These are called basic (primitive) objects, such as integers etc • E.g., Java predefines classes for such basic types • for example, one predefined class is Integer: To create an Integer (object):Integer wagePerHour = new Integer(10); System.out.println( wagePerHour );
Primitive Data Types • Although in pure object-oriented languages (such as Smalltalk and Ruby), we can consider everything as objects and defines everything as class, for efficiency, some languages like C++ and Java treat common objects such as numbers, characters, and logical values specially, and introduces them into the language as primitive data types • Note: this division between primitive types and objects is disliked by some programmers familiar with languages such as Smalltalk and Ruby where everything is an object
Primitive Data Types • There are exactly eight primitive data types • four of them represent integers: • byte, short, int, long • two of them represent floating point numbers • float, double • one of them represents characters: • char • and one of them represents boolean (logical) values: • boolean
Numeric Primitive Data Types • byte, short, int, long, float, and double are numeric data types • The difference among the various numeric primitive types is their storage sizes and representations, and therefore the ranges and precision of the values they can store • To understand this, we need to have a rough understanding of computer memory storage
Each memory cell has a set number of bits (usually 8 bits, or one byte); a bit can represent 2 values) 10011010 A computer can use more cells to store data, e.g., 2 bytes Memory Primary storage area for programs and data Also called RAM RAM is divided into many cells; each cell can be identified by a numeric address Main Memory 9278 9279 9280 9281 9282 9283 9284 9285 9286 - how many values can a byte represent? - how many values can 2 bytes represent?
Type byte short int long float double Storage 8 bits 16 bits 32 bits 64 bits 32 bits 64 bits Min Value -128 -32,768 -2,147,483,648 < -9 x 1018 +/- 3.4 x 1038 with 7 significant digits +/- 1.7 x 10308 with 15 significant digits Max Value 127 32,767 2,147,483,647 > 9 x 1018 Numeric Primitive Data • “Objects” of different numeric data types occupy different number of cells IEEE 754format
Characters • A char is a single character from a character set • A character set is an ordered list of characters; each character is given a unique number • Character literals are represented in a program by delimiting with single quotes: 'a‘ 'X‘ '7' '$‘ ',' '\n'
uppercase letters lowercase letters punctuation digits special symbols control characters A, B, C, … a, b, c, … period, semi-colon, … 0, 1, 2, … &, |, \, … carriage return, tab, ... Character Sets • The ASCII character set is quite popular. It includes:
Boolean • A boolean value represents logical value: true or false • The reserved words true and false are the only valid values for a boolean type • A boolean can also be used to represent any two states, such as a light bulb being on or off
data type variable name int total; int count, temp, result; Multiple variables can be created in one declaration Variables: Revisited • We already know that a variable must be declared, specifying the variable's name and the type of information that will be held in it • As of now, think of a variable as a name for a location in memory cell (we will revisit the concept later)
Variables • A variable can be given an initial value in the declaration int sum = 0; int base = 32, max = 149; String msg1 = new String( “Hello” ); String msg2 = “Hello” ; • When a variable is referenced in a program, its current value is used
total = 55; Change the Value of a Variable: Assignment Statement • An assignment statement changes the value of a variable • The assignment operator is the = sign • The expression on the right is evaluated and the result is stored in the variable on the left • The value that was in total is overwritten • Remember: you can only assign a value to a variable that is consistent with the variable's declared type
Constants • A “constant variable” is an identifier that is similar to a variable except that it holds one value for its entire existence • Why constants: • give names to otherwise unclear literal values • facilitate changes to the code • prevent inadvertent errors • The compiler will issue an error if you try to assign value to a constant variable after its declaration
Arithmetic Expressions • An expression is a combination of operators and operands • Arithmetic expressions (we will see logical expressions later) are essentially special methods applied to numerical data objects: compute numeric results and make use of the arithmetic operators: Addition + Subtraction - Multiplication * Division / Remainder %
Division and Remainder • If both operands to the division operator (/) are integers, the result is an integer (the fractional part is discarded) 14 / 3 equals? 8 / 12 equals? • The remainder operator (%) returns the remainder after dividing the second operand into the first 14 % 3 equals? 8 % 12 equals?