320 likes | 490 Views
Java Primitives. The Smallest Building Blocks of the Language (corresponds with Chapter 2). Terminology. Primitive Data Type – a category of data. A description of how the computer will treat bits found in memory.
E N D
Java Primitives The Smallest Building Blocks of the Language (corresponds with Chapter 2)
Terminology • 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).
Java Primitive Data types • int -- 32-bit signed integer • long -- 64-bit signed integer • float -- 32-bit floating point number • double -- 64-bit floating point nbr • boolean -- true/false • char -- Unicode character (good for internationalization) • byte -- 8-bit signed integer • short --16-bit signed integer
Identifiers • 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 betrue, false, ornull. • An identifier can be of any length.
Declaring 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;
These expressions are all just Literals! Note: the = sign is an assignment operator. It is NOT a test for equality. Assignment 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;
declaration assignment NOTE: by default floating point literals are assumed to be doubles. If you want to assign a floating point literal to a float variable, you must append the “f” to the end of the number. Note: character literals are enclosed in single quotes Declaring and Initializingin One Step • int x = 1; • double d = 1.4; • float f = 1.4f; • char a = ‘a’;
The final modifier indicates that the identifier refers to a constant, not a variable. Constants must be initialized when declared. Constants final datatype CONSTANTNAME = VALUE; final double PI = 3.14159; final int SIZE = 3;
Numeric Literals • int i = 34; • long l = 1000000; • float f = 100.2f; orfloat f = 100.2F; • double d = 100.2d ordouble d = 100.2D;
Common Types of Operators • Assignment = • Arithmetic + - * / % • Comparison == < > <= >= != • Logical && || ! ^ modulus equals not equals Exclusive OR AND NOT OR
Modulus (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:
Common 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
Arithmetic Expressions • 1 + 1 • x * y • 5 / 2 • 5 % 2 • radius*radius*3.14159
Sample Statements with Arithmetic Expressions //Compute the first area radius = 1.0; area = radius*radius*3.14159; //Compute the second area radius = 2.0; area = radius*radius*3.14;
Arithmetic Expressions is translated to (3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y)
Shortcut Operators Operator Example Equivalent +=i+=8i = i+8 -=f-=8.0f = f-8.0 *=i*=8i = i*8 /=i/=8i = i/8 %=i%=8i = i%8
Increment 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
Integer 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.
Unicode representation Character Data Type • char letter = 'A'; • char letter = '\u00041'; • char numChar = '4'; Java uses Unicode instead of ASCII for character data representation
Character Escape Sequences Backspace \b Tab \t Linefeed \n Carriage return \r Backslash \\ Single quote \' Double quote \"
comparison expressions The boolean Data Type • boolean lightsOn = true; • boolean lightsOn = false; • boolean test = 1==1; • Returns true • boolean test = 1==2; • Returns false
Here, the + is used to concatenate strings together The + symbol as concatenation operator System.out.println("The area is " + area + " for radius " + radius); String literals are enclosed in double quotes
Boolean Operators Revisited Operator Name ! not && and || or ^ exclusive or
Numeric Type Conversion Consider the following statements: byte i = 100; long k = i * 3 + 4; double d = i * 3.1 + k / 2;
Conversion 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.
Type 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
first last Operator Precedence • Casting • ++, -- • *, /, % • +, - • <, <=, >, => • ==, !=; • && • || • =, +=, -=, *=, /=, %= Parentheses can be used to override normal precedence