400 likes | 801 Views
Java Basics. Java. High-level language More readable for humans Need to be translated to machine language for execution Compilers CPU-independent t ranslation can target different CPUs (machine languages) Designed by Sun Microsystems in 1995 Sun was bought by Oracle in 2010
E N D
Java • High-level language • More readable for humans • Need to be translated to machine language for execution • Compilers • CPU-independent • translation can target different CPUs (machine languages) • Designed by Sun Microsystems in 1995 • Sun was bought by Oracle in 2010 • Designed with internet in mind • Can run in a web browser
Storing Data • To store data • we need to allocate space in the memory • Declare (specify) • Type • what kind of data • Name • we can refer to it later • Essentially a named location in the memory
Types • int • (signed) integer • double • double-precision floating point number • boolean • true or false • char • character
Names (“Identifiers”) • Starts with a letter • After that, can include • letter • digit • Can these be names? • numberOfStudents • five5 • 55 • 5five • Case sensitive • Balance and balance are different names • Meaningful names improve readability • reduce mistakes
The Famous/Weird Semicolon • Semicolon • Is similar to a period after a sentence in English • End of one instruction • Period is used to mean something else in Java • Allocating space (“declaration”): intnumberOfStudents; double temperature, humidity, pressure; boolean sunny, hurricane; char letterGrade; • They are usually called variables similar to math • How do we vary/change the value?
Changing Values • Assignment • = • Equal sign, but doesn’t mean equal as in math • x = 97.5; • Means assign 97.5 to x (or store 97.5 in x) • Doesn’t mean we state x is equal to 97.5
Changing Values • Assignment • = • Equal sign, but doesn’t mean equal as in math • x = 97.5; • Means assign 97.5 to x (or store 97.5 in x) • Doesn’t mean we state x is equal to 97.5 • x = 97.5 + x; • Why is this impossible in math? • What does this mean in Java?
Changing boolean and char variables boolean sunny; sunny = false; char letterGrade; letterGrade = ’A’;
Initializing Variables • Combining • Declaring a variable (allocating space) and • Assigning an initial value intnumberOfStudents = 15; double gpa = 3.14; char letterGrade = ’A’; boolean sunny = true;
Manipulating Data • Operators • Arithmetic • Relational • Logical
Arithmetic Operators • + • - • * • / • % • modulo/reminder • 5 % 2 is 1 • x++ , x-- • Increment x (int) , decrement x (int) • Yields a number
Arithmetic: Division with Integers • Math: 5 / 2 is 2.5 • Java • “integer division”—both values/operands are integers • 5 / 2 has an integer value -- floor of 5/2 • 5 / 2 is 2 [sometimes this is useful] • If we want a floating point value (2.5) • 5 / 2.0 , 5.0 / 2 , or … • Be careful • int x = 5 / 2.0 ; • x has 2 because 2.5 can’t fit into an int variable
Relational Operators • < • <= • > • >= • == • != • Yields true or false value • 5 < 2 • yields false • not stating 5 is less than 2 (in math), which is impossible • x == 2 • Means what?
Logical Operators • && • and • || • or • ! • not • Yields true or false value • true && false is false • !(5 > 2) is false
Precedence/Ordering of Operators • x < y + z • (x < y)+ z • x < (y + z)
Precedence/Ordering of Operators • x < y + z • (x < y)+ z • x < (y + z) • x < y + z && y < z • x < (y + z) && y < z • ((x < (y + z))&& y)< z • (x < (y + z))&& (y < z)
Precedence/Ordering of Operators • Quite natural • Arithmetic (calculate numbers) before • Relational (compare numbers) before • Logical (combine boolean--true/false values) • If not sure, add parentheses
Comments • Ignore by the compiler • Improves readability, fewer mistakes // describe something that is not obvious /* this is a multi-line comment */
Math Constants and Functions Math.PI, Math.E Math.abs(x) Math.sqrt(x), Math.pow(x, exp) Math.log(x), Math.log10(x) Math.sin(x), Math.cos(x), Math.tan(x) // radians Math.asin(x), Math.acos(x), Math.atan(x) Math.random() // 0 <= num < 1
Input from the Keyboard We’ll usually provide templates for input Scanner keyboard = new Scanner(System.in); x = keyboard.nextInt(); y = keyboard.nextDouble();
Output to the Screen • System.out.println( … ); • Print the parameter followed by a new line • Examples: System.out.println(15); System.out.println(x); System.out.println(“Hello!”); // “string” • System.out.print( … ); • Print the parameter without a new line