Top Banner
1 Java Advanced Features Trenton Computer Festival March 15, 2014 Michael P. Redlich @mpredli about.me/mpredli/ Sunday, March 16, 14
44

Java Advanced Features (TCF 2014)

Nov 18, 2014

Download

Technology

Michael Redlich

Advanced features of Java are reviewed:
* Java Beans
* Exception Handling
* Generics
* JDBC
* Java Collections
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Java Advanced Features (TCF 2014)

1

Java AdvancedFeatures

Trenton Computer FestivalMarch 15, 2014

Michael P. Redlich@mpredli

about.me/mpredli/

Sunday, March 16, 14

Page 2: Java Advanced Features (TCF 2014)

Who’s Mike?

• BS in CS from

• “Petrochemical Research Organization”

• Ai-Logix, Inc. (now AudioCodes)

• Amateur Computer Group of New Jersey

• Publications

• Presentations

2

Sunday, March 16, 14

Page 3: Java Advanced Features (TCF 2014)

Objectives (1)

• Java Beans

• Exception Handling

• Generics

• Java Database Connectivity

• Java Collections Framework

3

Sunday, March 16, 14

Page 4: Java Advanced Features (TCF 2014)

Java Beans

4

Sunday, March 16, 14

Page 5: Java Advanced Features (TCF 2014)

What are Java Beans?

• A method for developing reusable Java components

• Also known as POJOs (Plain Old Java Objects)

• Easily store and retrieve information

5

Sunday, March 16, 14

Page 6: Java Advanced Features (TCF 2014)

Java Beans (1)

• A Java class is considered a bean when it:

• implements interface Serializable

• defines a default constructor

• defines properly named getter/setter methods

6

Sunday, March 16, 14

Page 7: Java Advanced Features (TCF 2014)

Java Beans (2)

• Getter/Setter methods:

• return (get) and assign (set) a bean’s data members

• Specified naming convention:

• getMember

• setMember

• isValid

7

Sunday, March 16, 14

Page 8: Java Advanced Features (TCF 2014)

8

// PersonBean class (partial listing)

public class PersonBean implements Serializable {private static final long serialVersionUID = 7526472295622776147L;private String lastName;private String firstName;private boolean valid;

public PersonBean() {}

public String getLastName() {return lastName;}

public void setLastName(String lastName) {this.lastName = lastName;}

// getter/setter for firstName

public boolean isValid() {return valid;}

}

Sunday, March 16, 14

Page 9: Java Advanced Features (TCF 2014)

Exception Handling

9

Sunday, March 16, 14

Page 10: Java Advanced Features (TCF 2014)

What is Exception Handling?

• A more robust method for handling errors than fastidiously checking for error codes

• error code checking is tedious and can obscure program logic

10

Sunday, March 16, 14

Page 11: Java Advanced Features (TCF 2014)

Exception Handling (1)

• Throw Expression:

• raises the exception

• Try Block:

• contains a throw expression or a method that throws an exception

11

Sunday, March 16, 14

Page 12: Java Advanced Features (TCF 2014)

Exception Handling (2)

• Catch Clause(s):

• handles the exception

• defined immediately after the try block

• Finally Clause:

• always gets called regardless of where exception is caught

• sets something back to its original state

12

Sunday, March 16, 14

Page 13: Java Advanced Features (TCF 2014)

Java Exception Model (1)

• Checked Exceptions

• enforced by the compiler

• Unchecked Exceptions

• recommended, but not enforced by the compiler

13

Sunday, March 16, 14

Page 14: Java Advanced Features (TCF 2014)

Java Exception Model (2)

• Exception Specification

• specify what type of exception(s) a method will throw

• Termination vs. Resumption semantics

14

Sunday, March 16, 14

Page 15: Java Advanced Features (TCF 2014)

15

// ExceptionDemo class

public class ExceptionDemo {public static void main(String[] args) {try {initialize();}

catch(Exception exception) {exception.printStackTrace();}

public void initialize() throws Exception {// contains code that may throw an exception of type Exception}

}

Sunday, March 16, 14

Page 16: Java Advanced Features (TCF 2014)

Generics

16

Sunday, March 16, 14

Page 17: Java Advanced Features (TCF 2014)

What are Generics?

• A mechanism to ensure type safety in Java collections

• introduced in Java 5

• Similar concept to C++ Template mechanism

17

Sunday, March 16, 14

Page 18: Java Advanced Features (TCF 2014)

Generics (1)

• Prototype:

• visibilityModifier class | interface name<Type> {}

18

Sunday, March 16, 14

Page 19: Java Advanced Features (TCF 2014)

19

// Iterator demo *without* Generics...

List list = new ArrayList();for(int i = 0;i < 10;++i) {list.add(new Integer(i));}

Iterator iterator = list.iterator();while(iterator.hasNext()) {System.out.println(“i = ” + (Integer)iterator.next());}

Sunday, March 16, 14

Page 20: Java Advanced Features (TCF 2014)

20

// Iterator demo *with* Generics...

List<Integer> list = new ArrayList<Integer>();for(int i = 0;i < 10;++i) {list.add(new Integer(i));}

Iterator<Integer> iterator = list.iterator();while(iterator.hasNext()) {System.out.println(“i = ” + iterator.next());}

Sunday, March 16, 14

Page 21: Java Advanced Features (TCF 2014)

21

// Defining Simple Generics

public interface List<E> {add(E x);}

public interface Iterator<E> {E next();boolean hasNext();}

Sunday, March 16, 14

Page 22: Java Advanced Features (TCF 2014)

Java Database Connectivity (JDBC)

22

Sunday, March 16, 14

Page 23: Java Advanced Features (TCF 2014)

What is JDBC?

• A built-in API to access data sources

• relational databases

• spreadsheets

• flat files

• The JDK includes a JDBC-ODBC bridge for use with ODBC data sources

• type 1 driver

23

Sunday, March 16, 14

Page 24: Java Advanced Features (TCF 2014)

Java Database Connectivity (1)

• Install database driver and/or ODBC driver

• Establish a connection to the database:

• Class.forName(driverName);

• Connection connection = DriverManager.getConnection();

24

Sunday, March 16, 14

Page 25: Java Advanced Features (TCF 2014)

Java Database Connectivity (2)

• Create JDBC statement:

• Statement statement = connection.createStatement();

• Obtain result set:

• Result result = statement.execute();

• Result result = statement.executeQuery();

25

Sunday, March 16, 14

Page 26: Java Advanced Features (TCF 2014)

26

// JDBC example

import java.sql.*;

public class DatabaseDemo {public static void main(String[] args) {String sql = “SELECT * FROM timeZones”;Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);Connection connection =DriverManager.getConnection(“jdbc:odbc:timezones”,””,””);

Statement statement = connection.createStatement();ResultSet result = statement.executeQuery(sql);while(result.next()) {System.out.println(result.getDouble(2) + “ “+ result.getDouble(3));

}connection.close();}

}

Sunday, March 16, 14

Page 27: Java Advanced Features (TCF 2014)

Java Collections Framework

27

Sunday, March 16, 14

Page 28: Java Advanced Features (TCF 2014)

What are Java Collections? (1)

• A single object that groups together multiple elements

• Collections are used to:

• store

• retrieve

• manipulate

28

Sunday, March 16, 14

Page 29: Java Advanced Features (TCF 2014)

What is the Java Collection Framework?• A unified architecture for collections

• All collection frameworks contain:

• interfaces

• implementations

• algorithms

• Inspired by the C++ Standard Template Library

29

Sunday, March 16, 14

Page 30: Java Advanced Features (TCF 2014)

What is a Collection?

• A single object that groups together multiple elements

• sometimes referred to as a container

• Containers before Java 2 were a disappointment:

• only four containers

• no built-in algorithms

30

Sunday, March 16, 14

Page 31: Java Advanced Features (TCF 2014)

Collections (1)

• Implement the Collection interface

• Built-in implementations:

• List

• Set

31

Sunday, March 16, 14

Page 32: Java Advanced Features (TCF 2014)

Collections (2)

• Lists

• ordered sequences that support direct indexing and bi-directional traversal

• Sets

• an unordered receptacle for elements that conform to the notion of mathematical set

32

Sunday, March 16, 14

Page 33: Java Advanced Features (TCF 2014)

33

// the Collection interface

public interface Collection<E> extends Iterable<E>{boolean add(E e);boolean addAll(Collection<? extends E> collection);void clear();boolean contains(Object object);boolean containsAll(Collection<?> collection);boolean equals(Object object);int hashCode();boolean isEmpty();Iterator<E> iterator();boolean remove(Object object);boolean removeAll(Collection<?> collection);boolean retainAll(Collection<?> collection);int size();Object[] toArray();<T> T[] toArray(T[] array);}

Sunday, March 16, 14

Page 34: Java Advanced Features (TCF 2014)

Iterators

• Used to access elements within an ordered sequence

• All collections support iterators

• Traversal depends on the collection

• All iterators are fail-fast

• if the collection is changed by something other than the iterator, the iterator becomes invalid

34

Sunday, March 16, 14

Page 35: Java Advanced Features (TCF 2014)

35

// Iterator demo

import java.util.*;

List<Integer> list = new ArrayList<Integer>();for(int i = 0;i < 9;++i) {list.add(new Integer(i));}

Iterator iterator = list.iterator();while(iterator.hasNext()) {System.out.println(iterator.next());}

0 1 2 3 4 5 6 7 8

current last

Sunday, March 16, 14

Page 36: Java Advanced Features (TCF 2014)

Live Demo!

36

Sunday, March 16, 14

Page 37: Java Advanced Features (TCF 2014)

Java IDEs (1)

• IntelliJ

• jetbrains.com/idea

• Eclipse

• eclipse.org

37

Sunday, March 16, 14

Page 38: Java Advanced Features (TCF 2014)

Java IDEs (2)

• NetBeans

• netbeans.org

• JBuilder

• embarcadero.com/products/jbuilder

38

Sunday, March 16, 14

Page 39: Java Advanced Features (TCF 2014)

Local Java User Groups (1)

• ACGNJ Java Users Group

• facilitated by Mike Redlich

• javasig.org

• Princeton Java Users Group

• facilitated by Yakov Fain

• meetup.com/NJFlex

39

Sunday, March 16, 14

Page 40: Java Advanced Features (TCF 2014)

Local Java User Groups (2)

• New York Java SIG

• facilitated by Frank Greco

• javasig.com

• Capital District Java Developers Network

• facilitated by Dan Patsey

• cdjdn.com

40

Sunday, March 16, 14

Page 41: Java Advanced Features (TCF 2014)

Further Reading

41

Sunday, March 16, 14

Page 42: Java Advanced Features (TCF 2014)

Upcoming Events (1)

• Trenton Computer Festival

• March 14-15, 2014

• tcf-nj.org

• Emerging Technologies for the Enterprise

• April 22-23, 2014

• phillyemergingtech.com

42

Sunday, March 16, 14

Page 43: Java Advanced Features (TCF 2014)

43

Upcoming Events (2)

Sunday, March 16, 14

Page 44: Java Advanced Features (TCF 2014)

44

Thanks!

[email protected]

@mpredli

javasig.org

Sunday, March 16, 14