02 Basic Java Syntax PDF
02 Basic Java Syntax PDF
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Courses
and taught Android,
by coreservlets.com
expertsSpring
(editedMVC,
by Marty)
Java
7, Java developed
8, JSF 2, PrimeFaces,
JSP, Ajax, jQuery,
RESTful Web Services, GWT, Hadoop.
Spring MVC, Core Spring, Hibernate/JPA, Hadoop, HTML5, RESTful Web Services
Basics
Accessing arrays
Looping
Indenting code
if statements and other conditionals
Strings
Building arrays
Performing basic mathematical operations
Reading command-line input
Converting strings to numbers
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Alternative
Can also copy/rename existing class
Details
Processing starts in main
Eclipse can create main automatically
When creating class: choose main as option
Eclipse shortcut inside class: type main then hit Control-space
Compiling
Eclipse: just save file
> javac HelloWorld.java
Executing
Eclipse: R-click, Run As, Java Application
> java HelloWorld
Hello, world.
9
Packages
Idea
Packages are subdirectories used to avoid name conflicts
Java class must have package subdirname; at the top
But Eclipse puts this in automatically when you right-click
on a package and use New Class
Naming conventions
Package names are in all lower case
Some organizations use highly nested names
com.companyname.projectname.projectcomponent
Run from Eclipse in normal manner: R-click, Run As Java Application. Running from the command line is a pain: you must go
to parent directory and do java mypackage.HelloWorld. Run from Eclipse and it is simple to use packages.
11
The + Operator,
Array Basics,
Command Line Args
Customized Java EE Training: http://courses.coreservlets.com/
Java 7, Java 8, JSF 2, PrimeFaces, Android, JSP, Ajax, jQuery, Spring MVC, RESTful Web Services, GWT, Hadoop.
12
Developed and taught by well-known author and developer. At public venues or onsite at your location.
The + Operator
Use + for addition
If both arguments are numbers, + means addition.
Example:
double result = 2.3 + 4.5;
Command-line Arguments
Are useful for learning and testing
Command-line args are helpful for beginners practice
But, programs given to end users should almost never use
command-line arguments
They should pop up a GUI to collect input
Example (Continued)
Compiling (automatic on save in Eclipse)
> javac ShowTwoArgs.java
Manual execution
> java ShowTwoArgs Hello Class
First arg: Hello
Second arg: Class
> java ShowTwoArgs
[Error message]
Loops
Customized Java EE Training: http://courses.coreservlets.com/
Java 7, Java 8, JSF 2, PrimeFaces, Android, JSP, Ajax, jQuery, Spring MVC, RESTful Web Services, GWT, Hadoop.
19
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Looping Constructs
for/each
for(variable: collection) {
body;
}
for
for(init; continueTest; updateOp) {
body;
}
while
while (continueTest) {
body;
}
do
do {
body;
} while (continueTest);
20
For/Each Loops
public static void listEntries(String[] entries) {
for(String entry: entries) {
System.out.println(entry);
}
}
Result
String[] test = {"This", "is", "a", "test"};
listEntries(test);
This
is
a
test
21
For Loops
public static void listNums1(int max) {
for(int i=0; i<max; i++) {
System.out.println("Number: " + i);
}
}
Result
listNums1(4);
Number:
Number:
Number:
Number:
0
1
2
3
22
While Loops
public static void listNums2(int max) {
int i = 0;
while (i < max) {
System.out.println("Number: " + i);
i++;
// "++" means "add one"
}
}
Result
listNums2(5);
23
Number:
Number:
Number:
Number:
Number:
0
1
2
3
4
Do Loops
public static void listNums3(int max) {
int i = 0;
do {
System.out.println("Number: " + i);
i++;
} while (i < max);
// ^ Dont forget semicolon
}
Result
24
listNums3(3);
Number: 0
Number: 1
Number: 2
Developed and taught by well-known author and developer. At public venues or onsite at your location.
public
public
public
public
static
static
static
static
void
void
void
void
listEntries(String[] entries) {}
listNums1(int max) {}
listNums2(int max) {}
listNums3(int max) {}
}
26
27
Yes
No
blah;
blah;
for(...) {
blah;
blah;
for(...) {
blah;
blah;
}
}
blah;
blah;
for(...) {
blah;
blah;
for(...) {
blah;
blah;
}
}
No
blah;
blah;
for(...) {
blah;
blah;
for(...) {
blah;
blah;
}
}
blah;
blah;
for(...) {
blah;
blah;
for(...) {
blah;
blah;
}
}
28
OK
blah;
blah;
for(...) {
blah;
blah;
for(...) {
blah;
blah;
}
}
OK
blah;
blah;
for(...)
{
blah;
blah;
for(...)
{
blah;
blah;
}
}
Conditionals
Customized Java EE Training: http://courses.coreservlets.com/
Java 7, Java 8, JSF 2, PrimeFaces, Android, JSP, Ajax, jQuery, Spring MVC, RESTful Web Services, GWT, Hadoop.
30
Developed and taught by well-known author and developer. At public venues or onsite at your location.
If Statements:
One or Two Options
Single option
if (booleanExpression) {
statement1;
...
statementN;
}
Two options
if (booleanExpression) {
...
} else {
...
}
31
If Statements:
More than Two Options
Multiple options
if (booleanExpression1) {
...
} else if (booleanExpression2) {
...
} else if (booleanExpression3) {
...
} else {
...
}
32
Switch Statements
Example
int month = ...;
String monthString;
switch(month) {
case 1: monthString = "January"; break;
case 2: monthString = "February"; break;
case 3: monthString = "March";
break;
...
default: monthString = "Invalid month"; break;
}
Boolean Operators
==, !=
Equality, inequality. In addition to comparing primitive types,
== tests if two objects are identical (the same object), not just
if they appear equal (have the same fields). More details when
we introduce objects.
&&, ||
Logical AND, OR. Both use short-circuit evaluation to more
efficiently compute the results of complicated expressions.
!
Logical negation.
34
Example: If Statements
public static int max(int n1, int n2) {
if (n1 >= n2) {
return(n1);
} else {
return(n2);
}
}
35
Strings
Customized Java EE Training: http://courses.coreservlets.com/
Java 7, Java 8, JSF 2, PrimeFaces, Android, JSP, Ajax, jQuery, Spring MVC, RESTful Web Services, GWT, Hadoop.
36
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Strings: Basics
Overview
String is a real class in Java, not an array of characters as
in C++
The String class has a shortcut method to create a new
object: just use double quotes
String s = "Hello";
Differs from normal classes, where you use new to build
an object
Strings: Methods
Methods to call on a String
contains, startsWith, endsWith, indexOf, substring, split,
replace, replaceAll, toUpperCase, toLowerCase,
equalsIgnoreCase, trim, isEmpty, etc.
For replacing, can use regular expressions, not just static strings
Example
String word = "";
if (word.contains("q")) { }
More on Arrays
Customized Java EE Training: http://courses.coreservlets.com/
Java 7, Java 8, JSF 2, PrimeFaces, Android, JSP, Ajax, jQuery, Spring MVC, RESTful Web Services, GWT, Hadoop.
41
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Building Arrays:
One-Step Process
Declare and allocate array in one fell swoop
type[] var = { val1, val2, ... , valN };
Examples:
int[] values = { 10, 100, 1000 };
String[] names = {"Joe", "Jane", "Juan"};
Point[] points = { new Point(0, 0),
new Point(1, 2),
new Point(3, 4) };
42
Building Arrays:
Two-Step Process
Step 1: allocate an array of references:
Type[] var = new Type[size];
E.g.:
int[] primes = new int[x]; // x is positive integer
String[] names = new String[someVariable]; // Positive int
names[0] = "Joe";
names[1] = "Jane";
names[2] = "Juan";
names[3] = "John";
etc. (or use a loop)
// value is 3
44
45
46
Multidimensional Arrays
Multidimensional arrays
Implemented as arrays of arrays
int[][] twoD = new int[64][32];
String[][] cats = {{ "Caesar", "blue-point" },
{ "Heather", "seal-point" },
{ "Ted",
"red-point" }};
Note:
Number of elements in each row need not be equal
int[][] irregular = { {
{
{
{
1 },
2, 3, 4},
5 },
6, 7 } };
49
TriangleArray: Example
public class TriangleArray {
public static void main(String[] args) {
int[][] triangle = new int[10][];
for(int i=0; i<triangle.length; i++) {
triangle[i] = new int[i+1];
}
for (int i=0; i<triangle.length; i++) {
for(int j=0; j<triangle[i].length; j++) {
System.out.print(triangle[i][j]);
}
System.out.println();
}
}
}
50
TriangleArray: Result
> java TriangleArray
0
00
000
0000
00000
000000
0000000
00000000
000000000
0000000000
51
Math Routines
Customized Java EE Training: http://courses.coreservlets.com/
Java 7, Java 8, JSF 2, PrimeFaces, Android, JSP, Ajax, jQuery, Spring MVC, RESTful Web Services, GWT, Hadoop.
52
Developed and taught by well-known author and developer. At public venues or onsite at your location.
num++, ++num
Means add one to (after/before returning value)
int num = 3;
num++;
// num is now 4
Usage
For brevity and tradition, but no performance benefit over
simple addition
Warning
Be careful with / on int and long variables (rounds off)
53
Examples
double eight = Math.pow(2, 3);
double almostZero = Math.sin(Math.PI);
double randomNum = Math.random();
54
55
56
Double.POSITIVE_INFINITY
Double.NEGATIVE_INFINITY
Double.NAN
Double.MAX_VALUE
Double.MIN_VALUE
57
Reading Input
Customized Java EE Training: http://courses.coreservlets.com/
Java 7, Java 8, JSF 2, PrimeFaces, Android, JSP, Ajax, jQuery, Spring MVC, RESTful Web Services, GWT, Hadoop.
58
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Reading Strings
Option 1: use command-line argument
String input = args[0];
Warning
In real life, you must check
59
To double: Double.parseDouble
String input = ...;
double num = Double.parseDouble(input);
With Scanner
Use scanner.nextInt(), scanner.nextDouble()
Warning
In real life, you must handle the case where the input is
not a legal number.
60
Command-Line Args
public class Input1 {
public static void main(String[] args) {
if (args.length > 1) {
int num = Integer.parseInt(args[0]);
System.out.println("Your number is " + num);
} else {
System.out.println("No command-line args");
}
}
}
Open command window and navigate to folder containing class
> java Input1 7
Your number is 7
61
Error Checking
(Explained in Applets Section)
public class Input1Alt {
public static void main(String[] args) {
if (args.length > 1) {
try {
int num = Integer.parseInt(args[0]);
System.out.println("Your number is " + num);
} catch(NumberFormatException e) {
System.out.println("Input is not a number");
}
} else {
System.out.println("No command-line arguments");
}
}
Open command window and navigate to folder containing class
}
62
JoptionPane
import javax.swing.*;
public class Input2 {
public static void main(String[] args) {
String input =
JOptionPane.showInputDialog("Number:");
int num = Integer.parseInt(input);
System.out.println("Your number is " + num);
}
}
Run from Eclipse (R-click, Run As Java Application),
enter 8 in popup window
Result in Eclipse Console:
Your number is 8
63
Scanner
import java.util.*;
public class Input3 {
public static void main(String[] args) {
System.out.print("Number: ");
Scanner inputScanner = new Scanner(System.in);
int num = inputScanner.nextInt();
System.out.println("Your number is " + num);
}
}
Run from Eclipse (R-click, Run As Java Application),
enter 9 after Number: prompt in Eclipse Console. Next line:
Your number is 9
64
Details: http://www.coreservlets.com/JSF-Tutorial/jsf2/
Wrap-Up
Customized Java EE Training: http://courses.coreservlets.com/
Java 7, Java 8, JSF 2, PrimeFaces, Android, JSP, Ajax, jQuery, Spring MVC, RESTful Web Services, GWT, Hadoop.
66
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Summary
Basics
Loops, conditional statements, and array access is similar to C/C++
But additional for each loop: for(String s: someStrings) { }
Questions?
More info:
http://courses.coreservlets.com/Course-Materials/java.html General Java programming tutorial
http://www.coreservlets.com/java-8-tutorial/ Java 8 tutorial
http://courses.coreservlets.com/java-training.html Customized Java training courses, at public venues or onsite at your organization
http://coreservlets.com/ JSF 2, PrimeFaces, Java 7 or 8, Ajax, jQuery, Hadoop, RESTful Web Services, Android, HTML5, Spring, Hibernate, Servlets, JSP, GWT, and other Java EE training
Many additional free tutorials at coreservlets.com (JSF, Android, Ajax, Hadoop, and lots more)
Developed and taught by well-known author and developer. At public venues or onsite at your location.