0% found this document useful (0 votes)
151 views

Basic Java Syntax

Servlets, JSP, JSF 1.x and JSF 2.0, Struts Classic and Struts 2, Ajax, GWT, Spring, Hibernate / JPA, java 5 and 6. Developed and taught by the author of Core Servlets and JSP and this tutorial.

Uploaded by

free my mind
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
151 views

Basic Java Syntax

Servlets, JSP, JSF 1.x and JSF 2.0, Struts Classic and Struts 2, Ajax, GWT, Spring, Hibernate / JPA, java 5 and 6. Developed and taught by the author of Core Servlets and JSP and this tutorial.

Uploaded by

free my mind
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

© 2009 Marty Hall

Basic Java Syntax


Originals of Slides and Source Code for Examples:
http://courses coreservlets com/Course-Materials/java5 html
http://courses.coreservlets.com/Course-Materials/java5.html

Customized Java EE Training: http://courses.coreservlets.com/


Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
2 Developed and taught by well-known author and developer. At public venues or onsite at your location.

© 2009 Marty Hall

For live Java training, please see training courses at


http://courses.coreservlets.com/. Servlets, JSP, Struts
Classic, Struts 2, JSF 1.x, JSF 2.0, Ajax (with jQuery,
Dojo, Prototype, Ext, etc.), GWT, Java 5, Java 6, Spring,
Hibernate/JPA and customized combinations of topics
Hibernate/JPA, topics.
Taught by the author of Core Servlets and JSP, More
Servlets and JSP, JSP and this tutorial. tutorial Available at public
venues,Customized
or customized versions
Java EE Training: can be held on-site at your
http://courses.coreservlets.com/
organization. Contact hall@coreservlets.com for details.
Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Agenda
• Basics
– Creating,
C ti compiling,
ili andd executing
ti simple
i l Java
J programs
• Accessing arrays
• Looping
p g
• Indenting Code
• Using if statements
• C
Comparing
i strings
ti
• Building arrays
– One-step process
– Two-step process
– Using multidimensional arrays
• Performing
P f i basic
b i mathematical
th ti l operations
ti
• Reading command-line input
4

Eclipse: Making Projects


• Creating new project
– File  New  Project 
Java  Java Project
• Pick any name
• To simplify applets later,
choose Sources/Classes
in same folder
• Creating new class
– R-click  New  Class
• You can choose to have
Eclipse make “main”
automatically
– You can also copy/paste
existing class then
give it new name
Getting Started: Syntax
• Example
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world.");
}
}

• Details
– Processing starts in main
• Eclipse will create main automatically
– When creatingg class,, choose main as option
p
– Eclipse shortcut later: type “main” then hit Control-space
• Routines usually called “methods,” not “functions.”
– Printing is done with System.out.print...
System out print
• System.out.println, System.out.print, System.out.printf
6
• Eclipse shortcut: type “sysout” then hit Control-space

Getting Started: Execution


• File: HelloWorld.java
public
bli class
l H ll W ld {
HelloWorld
public static void main(String[] args) {
System.out.println("Hello, world.");
}
}
• Compiling
– Eclipse: just save file
DOS> javac
H ll W ld j
HelloWorld.java
• Executing
– Eclipse: R
R-click,
click, Run As
DOS> java HelloWorld
Hello, world.
7
More Basics
• Use + for string concatenation
• Arrays
A are accessedd with
ith [ ]
– Array indices are zero-based
– The argument
g to main is an array
y of strings
g that
correspond to the command line arguments
• args[0] returns first command-line argument
• args[1] returns second command-line argument
• Et
Etc.
• Error if you try to access more args than were supplied
• The length field gives the number of
elements
l t in
i an array
– Thus, args.length gives the number of command-
line arguments
– Unlike in C/C++, the name of the program is not inserted
into the command-line arguments
8

Example
• File: ShowTwoArgs.java

public class ShowTwoArgs {


public static void main(String[] args) {
System.out.println("First arg: " +
args[0]);
S t
System.out.println("Second
t i tl ("S d arg: " +
args[1]);
}
}

9
Example (Continued)
• Compiling
DOS> javac ShowTwoArgs.java
• Executing
DOS> j
java ShowTwoArgs
Sh T A H ll Cl
Hello Class
First args Hello
Second arg: Class

DOS> java ShowTwoArgs


[Error message]
• Eclipse
– To assign command line args: R-click, Run As,
10
Run Configurations, click on “Arguments” tab

Looping Constructs
• for/each
for(variable: collection) {
body;
}
• for
for(init; continueTest; updateOp) {
body;
}
• while
while (continueTest) {
body;
}
• do
do {
body;
} while (continueTest);

11
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

12

For Loops
public static void listNums1(int max) {
f (i t i
for(int i=0;
0 ii<max; i++) {
System.out.println("Number: " + i);
}
}

• Result
listNums1(4);
Number: 0
Number: 1
Number: 2
Number: 3

13
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);
( );
Number: 0
Number: 1
Number: 2
Number: 3
Number: 4
14

Do Loops
public static void listNums3(int max) {
i t i = 0
int 0;
do {
System.out.println("Number:
y p ( " + i);
);
i++;
} while (i < max);
// ^ Don’t
’t f
forget
t semicolon
i l
}

• Result
listNums3(3);
Number: 0
Number: 1
15 Number: 2
Defining Multiple Methods in
Single Class
public class LoopTest {
public
bli static
t ti void
id main(String[]
i (St i [] args)
) {
String[] test =
{ "This", "is", "a", "test"};
listEntries(test);
listNums1(5);
listNums2(6);
listNums3(7);
}

public static void listEntries(String[] entries) {…}


public static void listNums1(int max) {…}
public static void listNums2(int max) {…}
public static void listNums3(int max) {…}
16 }

Indentation: blocks that are nested


more should be indented more
• Yes • No

blah; blah;
blah; blah;
for(...) { for(...) {
blah; blah;
blah; blah;
for(...) { for(...) {
bl h
blah; bl h
blah;
blah; blah;
} }
} }
17
Indentation: blocks that are nested the
same should be indented the same
• Yes • No

blah; blah;
blah; blah;
for(...) { for(...) {
blah; blah;
blah; blah;
for(...) { for(...) {
bl h
blah; bl h
blah;
blah; blah;
} }
} }
18

Indentation: Number of spaces and


placement of braces is a matter of taste
• OK • OK • OK
blah; blah; blah;
blah; blah; blah;
for(
for(...)) { for(
for(...)) { for(
for(...))
blah; blah; {
blah; blah; blah;
for(...) { for(...) { blah;
blah; blah; for(...)
bl h
blah; bl h
blah; {
} } blah;
} } blah;
}
19 }
If Statements
• Single Option
if (boolean-expression) {
statement;
}

• Multiple Options
if (boolean-expression) {
statement1;
} else
l {
statement2;
}

20

Boolean Operators
• ==, !=
–E
Equality,
lit inequality.
i lit InI addition
dditi tot comparing
i primitive
i iti
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.
fields). objects
• <, <=, >, >=
– Numeric less than, less than or equal to, greater than,
greater
t than
th or equall to.
t
• &&, ||
– Logical
g AND,, OR. Both use short-circuit evaluation to
more efficiently compute the results of complicated
expressions.
• !
– Logical negation.
21
Example: If Statements

public
bli static
t ti iint
t max(int
(i t n1,
1 iint
t n2)
2) {
if (n1 >= n2) {
return(n1);
} else {
return(n2);
}
}

22

Strings
• Basics
– String is a real class in Java, not an array of characters as
in C and C++.
– Thee String
S g class
c ss hass a sshortcut
o cu method
e od too ccreate
e e a new
ew
object: just use double quotes
• This differs from normal objects, where you use the new
construct to build an object
j
• Use equals to compare strings
– Never use ==
• Many useful builtin methods
– contains, startsWith, endsWith, indexOf,
substring split
substring, split, replace
replace, replaceAll
• Note: can use regular expressions, not just static strings
23
– toUpperCase, toLowerCase, equalsIgnoreCase
Common String Error:
Comparing with ==
public static void main(String[] args) {
St i
String match
t h = "T
"Test";
t"
if (args.length == 0) {
System.out.println("No
y p args");
g
} else if (args[0] == match) {
System.out.println("Match");
} else {
System.out.println("No match");
}
}
• Prints "No match" for all inputs
– Fix:
i
if (args[0].equals(match))
24

Building Arrays:
One-Step Process
• Declare and allocate array in one fell swoop

type[] var = { val1, val2, ... , valN };

• Examples:
int[] values = { 10
10, 100
100, 1000 };
String[] names = {"Joe", "Jane", "Juan"};
Point[] points = { new Point(0, 0),
new Point(1, 2),
new Point(3, 4) };

25
Building Arrays:
Two-Step Process
• Step 1: allocate an array of references:
ttype[]
[] var = new type[size];
t [i ]
– E.g.:
int[] primes = new int[7];
String[] names = new String[someArray.length];
• Step 2: populate the array
primes[0] = 2; names[0] = "Joe";
Joe ;
primes[1] = 3; names[1] = "Jane";
primes[2] = 5; names[2] = "Juan";
primes[3] = 7; names[3] = "John";
etc.
• If you fail to populate an entry
– Default value is 0 for numeric arrays
– Default value is null for object arrays
26

Array Performance Problems


• For very large arrays, undue paging can occur
– A
Array off references
f ((pointers)
i ) allocated
ll d first
fi
– Individual objects allocated next
– Thus, for very large arrays of objects, reference and object can be on
different pages, resulting in swapping for each array reference
– Example
String[] names = new String[10000000];
for(int i=0; i<10000000; i++) {
names[i] = getNameFromSomewhere();
}
• Problem does not occur with arrays of primitives
– I.e., with arrays of int, double, and other types that start with
lowercase letter
– Because system stores values directly in arrays, rather than storing
references (pointers) to the objects
27
Multidimensional Arrays
• Multidimensional arrays
y
– Implemented as arrays of arrays
int[][]
[][] twoD = new int[64][32];
[ ][ ]

String[][] cats = {{ "Caesar", "blue-point" },


{ "Heather", "seal-point" },
{ "Ted"
Ted , "red-point"
red point }};

• Note:
– Number
N b off elements
l t in
i eachh row needd nott be
b equall
int[][] irregular = { { 1 },
{ 2
2, 3
3, 4}
4},
{ 5 },
{ 6, 7 } };
28

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.print(triangle[i][j]);
}
System.out.println();
}
}
}
29
TriangleArray: Result
> java TriangleArray

0
00
000
0000
00000
000000
0000000
00000000
000000000
0000000000

30

Basic Mathematical Routines


• Very simplest routines use builtin operators
– +
+, -, *,
* /,
/ ^,
^ %
– Be careful with / on int and long variables
• Static methods in the Math class
– So you call Math.cos(...), Math.random(), etc.
• Most operate on double precision floating point numbers
– Simple operations: Math.pow(), etc.
• pow (xy), sqrt (√x), cbrt, exp (ex), log (loge), log10
– Trig functions: Math.sin(), etc.
• sin, cos, tan, asin, acos, atan
– Args are in radians, not degrees, (see toDegrees and toRadians)
– Rounding and comparison: Math.round(), etc.
• round/rint, floor, ceiling, abs, min, max
– Random
R d numbers:
b M
Math.random()
th d ()
• random (Math.random() returns from 0 inclusive to 1 exclusive).
• See Random class for more control over randomization.
31
More Mathematical Routines
• Special constants
– Double.POSITIVE_INFINITY
– Double.NEGATIVE_INFINITY
– Double NAN
Double.NAN
– Double.MAX_VALUE
– Double.MIN_VALUE
• Unlimited precision libraries
– BigInteger, BigDecimal
• Contain
C t i ththe b
basic
i operations,
ti plus
l BiBigInteger
I t h
has iisPrime
Pi

32

Reading Simple Input


• For simple testing, use standard input
– If you wantt strings,
ti just
j t use args[0],
[0] args[1],
[1] as before
b f
• To avoid errors, check args.length first
– Convert if you want numbers. Two main options:
• Use
U S Scanner class
l
– Note that you need import statement. See next slide!
Scanner inputScanner = new Scanner(System.in);
int i = inputScanner
inputScanner.nextInt();
nextInt();
double d = inputScanner.nextDouble();
• Convert explicitly (Integer.parseInt, Double.parseDouble)
String seven = "7";
int i = Integer.parseInt(seven);
• In real applications, use a GUI
– Collect input
p with textfields,, sliders,, combo boxes,, etc.
• Convert to numeric types with Integer.parseInt,
Double.parseDouble, etc.
33
Example: Printing Random
Numbers
import java.util.*;

public class RandomNums {


public static void main(String[] args) {
System.out.print("How many random nums? ");
S
Scanner i
inputScanner
tS = new S
Scanner(System.in);
(S t i )
int n = inputScanner.nextInt();
for(int i=0; i<n; i++) {
System.out.println("Random
System.out.println( Random num " + i +
" is " + Math.random());
}
}
}
How many random nums? 5
Random num 0 is 0.22686369670835704
Random num 1 is 0
0.0783768527137797
0783768527137797
Random num 2 is 0.17918121951887145
Random num 3 is 0.3441924454634313
34 Random num 4 is 0.6131053203170818

Summary
• Basics
–L
Loops, conditional
di i l statements, andd array access is
i similar
i il
to C and C++
• But new for loop: for(String s: someStrings) { … }
– Indent your code for readability
– String is a real class in Java
• Use equals,
q not ==, to compare
p strings
g
• Allocate arrays in one step or in two steps
– Extremely large Object arrays have bad performance
• Use
U M Math.blah()
th bl h() for
f simple
i l math
th operations
ti
• Simple input from command window
– Use command line for strings supplied at program startup
– Use Scanner to read values after prompts or to turn
simple input into numbers
35
© 2009 Marty Hall

Questions?

Customized Java EE Training: http://courses.coreservlets.com/


Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
36 Developed and taught by well-known author and developer. At public venues or onsite at your location.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy