This document provides an introduction to Java programming through a series of Java 101 tutorials. It discusses setting up a Java development environment, provides an overview of the Java language, and demonstrates how to write a first Java program. It also covers built-in Java data types like String, int, double, and boolean, and control structures like conditionals and loops. The document concludes with exercises for readers to practice working with command line arguments, operators, arrays, and random number generation in Java.
2. Introduction
• Your Name: Manuela Grindei
• Your day job: Software Developer @ Gamesys
• Your last holiday destination: Dublin
3. Java 101
• Java Fundamentals
– Setting up your development environment
– Language Overview
– How Java Works
– Writing your first program
– Built-in Data Types
– Conditionals and Loops
4. Java 102
• Object-oriented Programming
– Classes and Objects
– Polymorphism, Inheritance and Encapsulation
– Functions and Libraries
7. Installing Java Development Kit
• Download latest Java SE 8 JDK (not JRE) from
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-
downloads-2133151.html
• For Windows,
– download the X86 version, double click the .exe file and follow the
instructions, accepting all default
• For MACs,
– check if java already installed (javac –version) and if not, download the
JDK dmg file, run it and follow the instructions.
• After installation is complete, type javac –version in the Command
window (Terminal window on MAC OS)-
– The reported version should be 1.8....
– If not, you may need to modify the system variable PATH to include the
bin directory of JDK
8. What is an IDE?
• IDE = Integrated Development Environment
• Makes you more productive
• Includes text editor, compiler, debugger,
context- sensitive help, works with different
Java SDKs
• Eclipse is the most widely used IDE
• Alternatives:
– IntelliJ IDEA (JetBrains)
– NetBeans (Oracle)
9. Installing Eclipse
• Download and install the latest Eclipse for Java
EE (32 Bit version) from
http://www.eclipse.org/downloads
• Unzip the content of the archive file you
downloaded
• To start Eclipse
– On PC, double-click on Eclipse.exe
– On Mac, double click Eclipse.app in Application
folder
14. Java Editions
• Java SE: Java Standard Edition
• Java EE: Java Enterprise Edition (a.k.a. J2EE)
– includes a set of technologies built on top of Java
SE: Servlets, JSP, JSF, EJB, JMS, et al.
• Java ME: Java Micro Edition
• Java Card for Smart Cards
• All Java programs run inside the Java Virtual
Machine (JVM)
15. JDK vs. JRE
• Java Development Kit (JDK) is required to
develop and compile programs
• Java Runtime Environment (JRE) is required to
run programs
• Users must have JRE installed
• Developers must have the JDK installed
• JDK includes the JRE
20. Writing Your First Java Program
• Create a new project in your IDE named Java101
• Create a HelloWorld class in the src folder inside the Java101
project as illustrated below.
21. Anatomy of a Java Application
Comments Class Name
Access
modifier
Function/static
method
Arguments
22. Compiling Your First Java Program
• Save the HelloWorld class in the IDE
• Run your program: right-clicking and selecting Run
As>Java Application
• This automatically compiles the HelloWorld.java file into
into a HelloWorld.class file
• Go to the folder you created the Java101 project on your
hard disk and open the src(eclipse) or out (Intelli j)folder.
• What do you see?
25. Built-in Data Types
• Data types are sets of values and operations
defined on those values
26. Basic Definitions
• Variable - a name that refers to a value.
• Assignment statement - associates a value
with a variable.
27. String Data Type
Data Type Attributes
Values sequence of characters
Typical literals “Hello”, “1 “, “*”
Operation Concatenate
Operator +
• Useful for program input and output.
32. Exercise: Command Line Arguments
• Create the Java program below that takes a name as
command-line argument and prints “Hi <name>,
How are you?”
33. Integer Data Type
Data Type Attributes
Values Integers between -2^31 to +2^31-1
Typical literals 1234, -99 , 99, 0, 1000000
Operation Add subtract multiply divide remainder
Operator + - * / %
• Useful for expressing algorithms.
34. Integer Data Type
Expression Value Comment
5 + 3 8
5 – 3 2
5 * 3 15
5 / 3 1 no fractional part
5 % 3 2 remainder
1 / 0 run-time error
3 * 5 - 2 13 * has precedence
3 + 5 / 2 5 / has precedence
3 – 5 - 2 -4 left associative
(3-5) - 2 -4 better style
3 – (5-2) 0 unambiguous
35. Double Data Type
• Useful in scientific applications and floating-
point arithmetic
Data Type Attributes
Values Real numbers specified by the IEEE 754 standard
Typical literals 3.14159 6.022e23 -3.0 2.0 1.41421356237209
Operation Add subtract multiply divide
Operator + - * /
39. Exercise: Integer Operations
• Create a Java class named IntOps in the Java101
project that performs integer operations on a pair of
integers from the command line and prints the results.
41. Boolean Data Type
• Useful to control logic and flow of a program.
Data Type Attributes
Values true or false
Typical literals true false
Operation and or not
Operator && || !
43. Logical operators
• & (AND): Only TRUE if both operands are TRUE
• | (OR): Only FALSE if both operands are FALSE
• ^ (EXCLUSIVE OR): Only TRUE if both operands are
DIFFERENT
44. Conditional & Negation operators
a !a a b a && b a || b
True False False False False False
False True False True False True
True false False True
True True true True
45. Boolean Comparisons
• Take operands of one type and produce an
operand of type boolean.
operation meaning true false
== equals 2 == 2 2 == 3
!= Not equals 3 != 2 2 != 2
< Less than 2 < 13 2 < 2
<= Less than or equal 2 <= 2 3 <= 2
> Greater than 13 > 2 2 > 13
>= Greater than or
equal
3 >= 2 2 >= 3
46. Type Conversion
• Convert from one type of data to another.
• Implicit
– no loss of precision
– with strings
• Explicit:
– cast
– method.
47. Type Conversion Examples
expression Expression type Expression value
“1234” + 99 String “123499”
Integer.parseInt(“123”) int 123
(int) 2.71828 int 2
Math.round(2.71828) long 3
(int) Math.round(2.71828) int 3
(int) Math.round(3.14159) int 3
11 * 0.3 double 3.3
(int) 11 * 0.3 double 3.3
11 * (int) 0.3 int 0
(int) (11 * 0.3) int 3
49. Exercise: Leap Year Finder
• A year is a leap year if it is either divisible by 400
or divisible by 4 but not 100.
• Write a java class named LeapYear in the Java101
project that takes a numeric year as command
line argument and prints true if it’s a leap year
and false if not
51. Data Types Summary
• A data type is a set of values and operations on those
values.
– String for text processing
– double, int for mathematical calculation
– boolean for decision making
• In Java, you must:
– Declare type of values.
– Convert between types when necessary
• Why do we need types?
– Type conversion must be done at some level.
– Compiler can help do it correctly.
– Example: in 1996, Ariane 5 rocket exploded after takeoff
because of bad type conversion.
53. Conditionals and Loops
• Sequence of statements that are actually
executed in a program.
• Enable us to choreograph control flow.
54. Conditionals
• The if statement is a common branching structure.
– Evaluate a boolean expression.
• If true, execute some statements.
• If false, execute other statements.
57. While Loop
• A common repetition structure.
– Evaluate a boolean expression.
– If true, execute some statements.
– Repeat.
58. For Loop
• Another common repetition structure.
– Execute initialization statement.
– Evaluate a boolean expression.
• If true, execute some statements.
– And then the increment statement.
– Repeat.
63. Exercise: Powers of Two
• Create a new Java project in Eclipse named Pow2
• Write a java class named PowerOfTwo to print powers of 2 that are
<= 2N where N is a number passed as an argument to the program.
– Increment i from 0 to N.
– Double v each time
65. Control Flow Summary
• Sequence of statements that are actually
executed in a program.
• Conditionals and loops enable us to choreograph
the control flow.
Control flow Description Example
Straight line
programs
all statements are executed in the
order given
Conditionals certain statements are executed
depending on the values of certain
variables
If
If-else
Loops certain statements are executed
repeatedly until certain conditions
are met
while
for
do-while
68. Exercise: Random Number Generator
• Write a java class named RandomInt to generate a
pseudo-random number between 0 and N-1 where N is
a number passed as an argument to the program
71. Exercise: Array of Days
• Create a java class named DayPrinter that
prints out names of the days in a week from an
array using a for-loop.
72. Solution: Arrays of Days
public class DayPrinter {
public static void main(String[] args) {
//initialize the array with the names of days of the
week
String[] daysOfTheWeek =
{"Sunday","Monday","Tuesday","Wednesday",
"Thuesday","Friday”,"Saturday"};
//loop through the array and print their elements to
//stdout
for (int i= 0;i < daysOfTheWeek.length;i++ ){
System.out.println(daysOfTheWeek[i]);
}
}
}
% javac DayPrinter.java
% java DayPrinter
Sunday
Monday
Tuesday
Wednesday
Thuesday
Friday
Saturday
74. Exercise: Print Personal Details
• Write a program that will print your name and
address to the console, for example:
Alex Johnson
23 Main Street
New York, NY 10001 USA
76. Exercise: Sales Discount
• Create a new project in Eclipse named Sale
• Create, compile, and run the FriendsAndFamily class as illustrated below
• Debug this program in your IDE to find out how it works
77. Further Reading
• Java Tutorials - https://docs.oracle.com/javase/tutorial/
• Java Language Basics -
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html
• Eclipse IDE Workbench User Guide -
http://help.eclipse.org/kepler/index.jsp
• Intelli J IDE User Guide - https://www.jetbrains.com/idea/documentation/
• Eclipse Tutorial - http://www.vogella.com/tutorials/Eclipse/article.html
Editor's Notes
System is a final class from java.lang package.out is the reference of PrintStream class and a static member of System class.println is a method of PrintStream class.
System is a built-in class...
System is a final class from java.lang package.out is the reference of PrintStream class and a static member of System class.println is a method of PrintStream class.
Variables hold the state of the program, and methods operate on that state. If the change is important to remember, a variable stores that change. That’s all classes really do.
Java calls a word with special meaning a keyword
It probably comes as no surprise that Java has precise rules about identifier names. Luckily, the same rules for identifiers apply to anything you are free to name, including variables, methods, classes, and fields.
There are only three rules to remember for legal identifiers: The name must begin with a letter or the symbol $ or _. Subsequent characters may also be numbers.
You cannot use the same name as a Java reserved word. As you might imagine, a reserved word is a keyword that Java has reserved so that you are not allowed to use it. Remember that Java is case sensitive, so you can use versions of the keywords that only differ in case. Please don’t, though.
The Integer class wraps a value of the primitive type int in an object. An object of type Integer contains a single field whose type is int.In addition, this class provides several methods for converting an int to a String and a String to an int, as well as other constants and methods useful when dealing with an int.
The last thing you need to know about numeric literals is a feature added in Java 7. You can have underscores in numbers to make them easier to read:
Literals are valid values assigned to data types
To sum up:
- float is represented in 32 bits, with 1 sign bit, 8 bits of exponent, and 23 bits of the mantissa (or what follows from a scientific-notation number: 2.33728*1012; 33728 is the mantissa).
- Double is represented in 64 bits, with 1 sign bit, 11 bits of exponent, and 52 bits of mantissa.
By default, Java uses double to represent its floating-point numerals (so a literal 3.14 is typed double). It's also the data type that will give you a much larger number range, so I would strongly encourage its use over float.
There may be certain libraries that actually force your usage of float, but in general - unless you can guarantee that your result will be small enough to fit in float's prescribed range, then it's best to opt with double.
& (AND): Only TRUE if both operands are TRUE
| (OR): Only FALSE if both operands are FALSE
^ (EXCLUSIVE OR): Only TRUE if both operands are DIFFERENT