Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland,...
-
date post
20-Jan-2016 -
Category
Documents
-
view
217 -
download
0
Transcript of Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland,...
![Page 1: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/1.jpg)
Java Review
Nelson Padua-Perez
Chau-Wen Tseng
Department of Computer Science
University of Maryland, College Park
![Page 2: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/2.jpg)
Java Topics
Running Java programs
Stream I/O
Collections framework
Java 1.5
![Page 3: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/3.jpg)
Running Java Programs
Java Virtual Machine (JVM)Program running on computer
Simulates a virtual computer running Java
JVM loads classes dynamically Upon first reference to class in program
Looks at directory / jar files in CLASSPATH
CLASSPATHColon separated list of names
Example
CLASSPATH = . : $HOME/Java
![Page 4: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/4.jpg)
Jar Files
Zip file containing 1 or more .class files
Useful for bundling many Java files
Treated by JVM as an entire directory
Create usingjar cf [filename] [files / directories to put in jar]
![Page 5: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/5.jpg)
Static Variable Initialization
Initialization Order1. Static initializations
2. Initialization block
3. Constructor
Example
class Foo {
static Integer A = new Integer (1); // static init
{ A = new Integer (2); } // init block
public Foo( ) { A = new Integer (3); } // constructor
}
![Page 6: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/6.jpg)
Static Variable Initialization Example
class Foo {
static Integer A = new Integer (1); // 1) static init
{ A = new Integer (2); } // 2) init block
public Foo( ) { A = new Integer (3); } // 3) constructor
public static void main (String args[]) {
System.out.print("A="+A+"\n"); // prints A=1
Foo f = new Foo();
System.out.print("A="+A+"\n"); // prints A=3
}
![Page 7: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/7.jpg)
Java Topics
Running Java programs
Stream I/O
Collections framework
Java 1.5
![Page 8: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/8.jpg)
Stream Input/Output
StreamA connection carrying a sequence of data
Bytes InputStream, OutputStream
Characters FileReader, PrintWriter
From a source to a destination
Keyboard
File
Network
Memory
Basis for modern I/O
![Page 9: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/9.jpg)
Using Streams
Opening a stream Connects program to external data
Location of stream specified at opening
Only need to refer to stream
Usage1. import java.io.* ;
2. Open stream connection
3. Use stream read and / or write
Catch exceptions if needed
4. Close stream
![Page 10: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/10.jpg)
Using Streams – Example
Reading a fileFileReader
Stream used to connect to a file
FileReader myFile new FileReader(fileName);
fileName where (external) file is to be found
Never use fileName again, use myFile instead
![Page 11: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/11.jpg)
Standard Input/Output
Standard I/O Provided in System class in java.lang
System.in
An instance of InputStream
System.out
An instance of PrintStream
System.err
An instance of PrintStream
![Page 12: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/12.jpg)
Simple Keyboard Input
import java.io.* ;
class BufferedReaderTest {
public static void main(String [] args) throws IOException {
// Create a BufferedReader wrapping standard input:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) ;
String s ; s = in.readLine() ; // Reads any string terminated by \n
System.out.println("s = " + s) ; // Print what was read }}
![Page 13: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/13.jpg)
Java Topics
Running Java programs
Stream I/O
Collections framework
Java 1.5
![Page 14: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/14.jpg)
Java Collections Framework
CollectionObject that groups multiple elements into one unit
Also called container
Collection framework consists ofInterfaces
Abstract data type
Implementations
Reusable data structures
Algorithms
Reusable functionality
![Page 15: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/15.jpg)
Java Collections Framework
GoalsReduce programming effort
Make APIs easier to learn
Make APIs easier to design and implement
Reuse software
Increase performance
![Page 16: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/16.jpg)
Core Collection Interfaces
CollectionGroup of elements
SetNo duplicate elements
ListOrdered collection
MapMaps keys to elements
SortedSet, SortedMapSorted ordering of elements
![Page 17: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/17.jpg)
Core Collection Hierarchy
![Page 18: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/18.jpg)
Collections Interface Implementations
General implementationsPrimary public implementation
Example
List – ArrayList, LinkedList
Set – TreeSet, HashSet
Map – TreeMap, HashMap
Wrapper implementationsCombined with other interfaces
Example
synchronizedArrayList, unmodifiableHashMap
![Page 19: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/19.jpg)
Collections Interface Methods
boolean add(Object o)Add specified element
boolean contains(Object o)True if collection contains specified element
boolean remove(Object o)Removes specified element from collection
boolean equals(Object o)Compares object with collection for equality
Iterator iterator()Returns an iterator over the elements in collection
![Page 20: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/20.jpg)
Collections Interface Methods
boolean addAll(Collection c)Adds all elements in specified collection
boolean containsAll(Collection c)True if collection contains all elements in collection
boolean removeAll(Collection c)Removes all elements in specified collection
boolean retainAll(Collection c)Retains only elements contained in specified collection
![Page 21: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/21.jpg)
Collections Interface Methods
void clear()Removes all elements from collection
boolean isEmpty()True if collection contains no elements
int size() Returns number of elements in collection
Object[] toArray()Returns array containing all elements in collection
![Page 22: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/22.jpg)
Collections Interface Methods
void shuffle(List list, Random rnd)Randomly permute list using rnd
void sort(List list, Comparator c)Sorts list into ascending order
According Comparator ordering of elements
![Page 23: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/23.jpg)
Iterator Interface
IteratorCommon interface for all Collection classes
Used to examine all elements in collection
PropertiesOrder of elements is unspecified (may change)
Can remove current element during iteration
Works for any collection
![Page 24: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/24.jpg)
Iterator Interface
Interface public interface Iterator {
boolean hasNext();
Object next();
void remove(); // optional, called once per next()
}
Example usageIterator i = myCollection.iterator();
while (i.hasNext()) {
myCollectionElem x = (myCollectionElem) i.next();
}
![Page 25: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/25.jpg)
Java Topics
Running Java programs
Stream I/O
Collections framework
Java 1.5
![Page 26: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/26.jpg)
Java 1.5 (Tiger)
DescriptionReleased September 2004
Largest revision to Java so far
GoalsLess code complexity
Better readability
More compile-time type safety
Some new functionality (generics, scanner)
![Page 27: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/27.jpg)
New Features in Java 1.5
Enhanced for loop
Enumerated types
Autoboxing & unboxing
Generic types
Scanner
Variable number of arguments (varargs)
Static imports
Annotations
![Page 28: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/28.jpg)
Enhanced For Loop
For loop handles Iterator automaticallyTest hasNext(), then get & cast next()
ExampleIterator it = myL.iterator(); // old usage of Iteratorwhile (it.hasNext()) { Integer num = (Integer) it.next(); // do something with num...}for (Integer num : myL) { // new enhanced for loop // do something with num...}
![Page 29: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/29.jpg)
Enumerated Types
New type of variable with set of fixed valuesEstablishes all possible values by listing them
Supports values(), valueOf(), name(), compareTo()…
Examplepublic Class Color { // old approach to enumeration private int c; public static final Color Black = new Color(1); public static final Color White = new Color(2);}public enum Color { Black, White } // new enumerationColor myC = Color.Black;for (Color c : Color.values()) System.out.println(c);
![Page 30: Java Review Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.](https://reader035.fdocuments.net/reader035/viewer/2022062806/56649d6a5503460f94a48b79/html5/thumbnails/30.jpg)
Autoboxing & Unboxing
Automatically convert primitive data typesData value Object (of matching class)
Data types & classes converted
Boolean, Byte, Double, Short, Integer, Long, Float
ExampleArrayList myL = new ArrayList();
myL.add(1); // previously myL.add(new Integer(1));
Integer X = new Integer(2);
int y = X; // previously int y = X.intValue();