* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download No Slide Title
Go (programming language) wikipedia , lookup
Falcon (programming language) wikipedia , lookup
Covariance and contravariance (computer science) wikipedia , lookup
Exception handling wikipedia , lookup
Scala (programming language) wikipedia , lookup
Abstraction (computer science) wikipedia , lookup
Design Patterns wikipedia , lookup
Thread (computing) wikipedia , lookup
Monitor (synchronization) wikipedia , lookup
Java syntax wikipedia , lookup
Name mangling wikipedia , lookup
Java (programming language) wikipedia , lookup
Object-oriented programming wikipedia , lookup
Class (computer programming) wikipedia , lookup
Java performance wikipedia , lookup
Java
Programming
Fundamentals
Lesson 1:
Java Runtime
Environment
Objectives
Identify the differences between standalone applications and applets
Describe the role of the Java Virtual
Machine
Create a simple Java program
Use Java comments
Compile and execute a Java program
Describe the differences between *.java
and *.class files
The Java
Virtual Machine
Stand-alone applications
Applets
Classes
Methods
Bytecode
Java
Development Cycle
Text
Editor
javac
*.java
java
*.class
Output
Window
Java Comments
Single-line comment
Multiline comment
Javadoc comment
Summary
Identify the differences between standalone applications and applets
Describe the role of the Java Virtual
Machine
Create a simple Java program
Use Java comments
Compile and execute a Java program
Describe the differences between *.java
and *.class files
Lesson 2:
Data Types,
Variables and Operators
Objectives
Use primitive data types
Declare a variable
Distinguish between local and class
variables
Distinguish between implicit and explicit
casting
Use the operators for primitive types
Data
Types
Primitives
- Integers
- Floating-point numbers
- Character
- Boolean
Declaring Variables
and Variable Scope
Types
- Local
- Instance
- Class
Default variable values
Variable declaration and initialization
Casting
- Implicit
- Explicit
Casting
Rules Chart
byte
short
int
char
long
float
double
Operators
Arithmetic operators
Relational operators
Logical operators
- Short-circuit
Bitwise operators
Automatic
Casting
Java automatically casts
- bytes or shorts ints
- floats doubles
Summary
Use primitive data types
Declare a variable
Distinguish between local and class
variables
Distinguish between implicit and explicit
casting
Use the operators for primitive types
Lesson 3:
Control
Statements
Objectives
Explain the block structure of Java
Use Java conditional statements
Use Java iterative statements
Code
Blocks
Used to group the contents of a class or a
method
Used to designate all conditional and
iterative statements
Used for exception handling
Conditional
Statements
if statement
switch/case statement
- break statement
Iterative
Statements (Loops)
while loop (entry condition loop)
do while loop (exit condition loop)
for loop
Nested loops (break and continue)
Summary
Explain the block structure of Java
Use Java conditional statements
Use Java iterative statements
Lesson 4:
Methods
Objectives
Create and use static methods
Return a value from a method
Explain pass by value
Describe overloading methods
Identify the method signature
Java
Methods
The executable part of a class
- Member
Return
Statement
Data types
Void
Calling
a Method
Parameters
Literals
Pass by Value
A copy of the value of the variable is
available to the method; changes to the
copy do not affect the original value
Overloading
Method signature
- Name
- Parameter list
Does not include return type
Summary
Create and use static methods
Return a value from a method
Explain pass by value
Describe overloading methods
Identify the method signature
Lesson 5:
Arrays
Objectives
Declare and initialize an array
Allocate space for a new array
Describe array indexing
Use the length property
Discuss why arrays are passed by
reference
Discuss Java’s garbage collection
mechanism
Retrieve command line parameters
What Is
an Array?
Collection of same type
Non-primitive data type
Initializing
an Array
Allocation
Reference
Index
Objects
Properties
Methods
Using
an Array
length property
Passing an Array
to a Method
MyIntArray
1
3
5
0
1
2
tmpIntArray
Garbage
Collection
Variable name reuse
Memory leak
Command Line
Parameters
Always String type data
Summary
Declare and initialize an array
Allocate space for a new array
Describe array indexing
Use the length property
Discuss why arrays are passed by
reference
Discuss Java’s garbage collection
mechanism
Retrieve command line parameters
Lesson 6:
Classes
and Objects
Objectives
Identify the parts of an object
Create and use instance members
Distinguish between instance and class
members
Define abstraction
Create object references
Object-Oriented
Programming
Refers to the creation of a number of
objects that communicate with one
another
What Is
an Object?
Instantiation
The new keyword
Instance and
Class Members
Class members
- The exception in Java
Instance members
- The rule in Java
Accessing instance members
- Dot notation
Accessing class members
Abstraction
What does the object do versus how does
it do it?
Functionality versus implementation
Object
References
tmpEmp variable
rachael
tmpEmp
name: "Rachael"
dept: "Accounting"
salary: 52000
Summary
Identify the parts of an object
Create and use instance members
Distinguish between instance and class
members
Define abstraction
Create object references
Lesson 7:
Inheritance
Objectives
Create a new class using inheritance
Create an overridden method
What Is
Inheritance?
Code reuse
Using inheritance
- extends keyword
- subclass
- superclass
- Multiple inheritance
Overriding
Methods
Same signature as the superclass
super.method()
Summary
Create a new class using inheritance
Create an overridden method
Lesson 8:
Constructors
Objectives
Use the default constructor
Create a constructor to initialize instance
variables
Call other constructors from both the same
class and the parent class
Create a no-arguments constructor
Discuss String characteristics and define
the common methods of String
What Is a
Constructor?
new keyword
Similarities to methods
- Initialization of object
- Pass parameters
Differences from methods
- Same name as class
- No return type
Callback
Using
Constructors
Default constructor
- No arguments
- Must be explicitly created if there are
any other constructors
Overloading constructors
- Unique parameter types
The
Keyword this
this() as a constructor
Avoiding namespace conflicts
The super keyword
Constructors
and Callbacks
Constructors are a major facilitator in
establishing interobject communication
Strings and
StringBuffer
String constructors
String characteristics
Methods of String
StringBuffer
Summary
Use the default constructor
Create a constructor to initialize instance
variables
Call other constructors from both the same
class and the parent class
Create a no-arguments constructor
Discuss String characteristics and define
the common methods of String
Lesson 9:
Interfaces and
Abstract Classes
Objectives
Define and use interfaces
Define polymorphism
Use abstract classes
Create an abstract method
What Is an
Interface?
Contents of an interface
- Abstract methods
- Final variables
Interface functions
- Decoupling objects
- Providing data type
Polymorphism
Using one method name to invoke many
different methods
What Is an
Abstract Class?
Cannot be instantiated
Can be used for a type
Summary
Define and use interfaces
Define polymorphism
Use abstract classes
Create an abstract method
Lesson 10:
Packages and
Access Modifiers
Objectives
Compile and run a class with packages
Identify the packages in the Java 2 API
Identify the various access levels in Java
Describe how access modifiers can be
used to set the access level of a variable,
method or class
Describe the object-oriented programming
principle of encapsulation
Identify accessor and mutator methods
Packages and
Access Modifiers
Packages
- import statement
Access modifiers
- public
- protected
- package
- private
Java 2 Application
Programming Interface
Organized into packages such as
- java.lang
- java.awt
- java.io
- java.util
- java.net
Encapsulation
Accessor
- Method that reads a variable
Mutator
- Wrapping variables and methods
together
Object
Encapsulation
Data 1
Data 2
Data 3
Data 4
Summary
Compile and run a class with packages
Identify the packages in the Java 2 API
Identify the various access levels in Java
Describe how access modifiers can be
used to set the access level of a variable,
method or class
Describe the object-oriented programming
principle of encapsulation
Identify accessor and mutator methods
Lesson 11:
Swing
Components
Objectives
Distinguish between the AWT and Swing
Identify the general organization of the
Swing class structure
Define and use Swing widgets and
containers
What Is
the AWT?
Heavyweight components
- Peer components
AWT 1.0
- Container propagation
- Single-method event-handling
AWT 1.1
- New event model
What
Is Swing?
Lightweight components
- No peer components
- All Java
Customizable
Model View Controller (MVC) programming
paradigm
Included in Java 2 (JDK 1.2)
Basic Swing
Components
JComponent
JLabel
JButton
JTextField
JTextArea
JScrollBar
ImageIcon
JScrollPane
JPanel
JFrame
JFileChooser
JApplet
Graphical Widgets
The graphical components with which
users interact
- JButton
- JLabel
- JScrollBar
Swing
Containers
Two types
- Top level (includes JFrame, Window)
- Lower level (includes JPanel,
JScrollPane)
Summary
Distinguish between the AWT and Swing
Identify the general organization of the
Swing class structure
Define and use Swing widgets and
containers
Lesson 12:
Layout Managers
Objectives
Define a layout manager
Set a layout manager for a Container
Effectively use FlowLayout,
GridLayout, BorderLayout and
BoxLayout
Nest containers and layout managers to
form more complex GUI layouts
Separate a complex design into its
component containers and layout
managers
What Is a
Layout Manager?
FlowLayout
GridLayout
BorderLayout
BoxLayout
CardLayout
GridBagLayout
GridLayout
OverlayLayout
ScrollPaneLayout
ViewportLayout
FlowLayout
Centers components on each line in a
flowing manner
GridLayout
Adds components in a gridlike format
BorderLayout
NORTH
W
E
S
T
CENTER
SOUTH
E
A
S
T
BoxLayout
Allows either a horizontal or a vertical
layout of components
Combining
Layouts
Button 1
Button 2
Button 3
Button 4
Summary
Define a layout manager
Set a layout manager for a Container
Effectively use FlowLayout,
GridLayout, BorderLayout and
BoxLayout
Nest containers and layout managers to
form more complex GUI layouts
Separate a complex design into its
component containers and layout
managers
Lesson 13:
Graphics
in Java
Objectives
Identify the AWT class structure for
graphics
Gain access to a container’s graphic
context by overriding the
paint(Graphics g) method
Use methods of the Graphics class via
the graphics context
Effectively use the Color and Font
classes
Graphics Class
The graphics context is used to access
the functionality of the Graphics class
(an abstract class)
Graphics
Class Methods
draw3DRect()
drawArc()
drawLine()
drawOval()
drawPolygon()
drawPolyline()
drawRect()
drawRoundRect()
fill3DRect()
fillArc()
fillOval()
fillPolygon()
fillRect()
fillRoundRect()
Other
Classes
Color
setColor()
Font
setFont()
- FontMetrics
Summary
Identify the AWT class structure for
graphics
Gain access to a container’s graphic
context by overriding the
paint(Graphics g) method
Use methods of the Graphics class via
the graphics context
Effectively use the Color and Font
classes
Lesson 14:
The Event
Delegation Model
Objectives
Describe the event delegation model
Create listener classes that can respond
to events
Register listener classes with their
Component sources
Capture events and deal with them in
meaningful ways
What Is
an Event?
What caused the event?
What was the exact nature of the
event?
Is additional information available
about the event?
JDK 1.0
Event Handling
Tightly coupled with the AWT
Inefficient
General
Unruly
Code and event handling could not be
separated
SDK 1.2
Event Handling
Generating the event object
Sending the event object to the listener
Preparing the listener to receive the
event
Example: Creating a closeable JFrame
JFrame convenience methods for event
handling
Example: Event handling and callbacks
Summary
Describe the event delegation model
Create listener classes that can respond
to events
Register listener classes with their
Component sources
Capture events and deal with them in
meaningful ways
Lesson 15:
Inner
Classes
Objectives
Define an inner class
Recognize the advantages of inner classes
over package-level classes in relation to
event handling
Design and implement inner classes for
event handling
What Is an
Inner Class?
A class defined within other classes
Introduced with the SDK 1.2
Inner Classes for
Event Handling
Member inner classes
Anonymous inner classes
Summary
Define an inner class
Recognize the advantages of inner classes
over package-level classes in relation to
event handling
Design and implement inner classes for
event handling
Lesson 16:
Java
Applets
Objectives
Compare and contrast Java applets and
applications
Implement the life cycle of an applet
through its inherited methods
Embed an applet into an HTML document
Pass parameters from an HTML document
to its contained applet
Identify applet security restrictions
Convert an applet into an application
JApplet
Class Hierarchy
Object
Component
Container
Panel
Applet
JApplet
Applets and
Web Browsers
Applets do not have a main() method
Applets have a life cycle
Applets are started from HTML pages,
and receive information from HTML
pages
Because they are program code,
applets should not be trusted
Converting an
Application into an Applet
Use init() method to perform
instantiation
Instantiating the applet is unnecessary
Applets must be derived from JApplet
Applet size should be set within the
HTML document (the Web browser
makes it visible)
Applets must be declared public
Converting an Applet
into an Application
By adding an instance of the JApplet to
the JFrame and calling its init() and
start() methods, the conversion from
JApplet to stand-alone JFrame readily
takes place
Summary
Compare and contrast Java applets and
applications
Implement the life cycle of an applet
through its inherited methods
Embed an applet into an HTML document
Pass parameters from an HTML document
to its contained applet
Identify applet security restrictions
Convert an applet into an application
Lesson 17:
Exceptions
Objectives
Differentiate between errors and
exceptions
Differentiate between runtime exceptions
and explicit exceptions
Propagate an exception using the throws
statement
Handle an exception using the try/catch
statement
Create and use a user-defined exception
What Is
an Exception?
Exceptions
- Runtime exceptions (unchecked)
- Other exceptions (checked)
Exception
Class Hierarchy
Object
Throwable
Exception
RuntimeException
Error
Explicit Exceptions
Handling
Exceptions
Ignore the Exception
Handle the Exception with a try/catch
statement
Throw the Exception to the calling
method
Handle the Exception and rethrow it to
the calling method
Creating
User-Defined Exceptions
Creating the exception
Throwing the exception
Exception handling tips
Exception
Handling Tips
Use simple tests instead of try/catch
Choose user-defined exceptions wisely
Use one try/catch block for multiple
exceptions
Do something meaningful with caught
exceptions
Summary
Differentiate between errors and
exceptions
Differentiate between runtime exceptions
and explicit exceptions
Propagate an exception using the throws
statement
Handle an exception using the try/catch
statement
Create and use a user-defined exception
Lesson 18:
Creating Threads
and Thread Methods
Objectives
Define threads
Create and instantiate threads using two
different techniques
Control single-thread flow
Define the four thread states and their
relationships to thread methods
What
Are Threads?
Multitasking
Multiprocessing
Multithreading
How Operating Systems
Handle Multitasking
Pre-emptive multitasking
Cooperative multitasking
Types of
Threads in Java
Daemon thread
User thread
- Main thread
- Other user threads
The Main Thread
main thread
user thread
user thread
user thread
user thread
Creating Threads
Subclassing the Thread class
Implementing the Runnable interface
Which technique?
Thread
States
yield( )
suspend()
start( )
New Thread
Runnable
Not Runnable
resume( )
stop( )
stop( )
stop( )
Dead
Summary
Define threads
Create and instantiate threads using two
different techniques
Control single-thread flow
Define the four thread states and their
relationships to thread methods
Lesson 19:
Thread
Synchronization
Objectives
Define synchronization in relation to
object monitors
Control thread racing using thread
synchronization
Convert non-atomic to atomic processes
to avoid thread racing
Use sophisticated methods for
controlling threads
Stop, suspend and resume threads
Explain thread deadlock
What Is Thread
Synchronization?
Controlling threads in a predictable
manner
Thread
Racing
Two threads trying to access the same data
Synchronized and
the Object Monitor
synchronized keyword
Threads waiting in a queue to obtain an
objects monitor
All synchronized methods of an object
use a single monitor
Thread
Race Condition
Competing for resources
Synchronizing the methods
Atomic processes
Sophisticated
Thread Synchronization
Consumer/producer scenario
Stopping, Suspending
and Resuming Threads
Stopping a thread
Suspending a thread
Resuming a thread
Deadlocks
ObjectA
{
blocked
synchronized methodA()
}
blocked
Thread1
ObjectB
{
synchronized methodB()
}
Thread2
Summary
Define synchronization in relation to
object monitors
Control thread racing using thread
synchronization
Convert non-atomic to atomic processes
to avoid thread racing
Use sophisticated methods for
controlling threads
Stop, suspend and resume threads
Explain thread deadlock
Lesson 20:
Streams and
Serialization
Objectives
Define a stream
Differentiate between byte streams and
character streams
Recognize the abstraction of byte streams
through the InputStream and
OutputStream classes
Recognize the abstraction of character
streams through the Reader and Writer
classes
Create and use file objects
Objectives
(cont’d)
Use System.in and System.out to
perform stream operations
Nest streams using wrapper classes to
enhance basic stream behavior
Perform file I/O
Define object serialization
Use serialization to save an object to a file
Explain the transient keyword
What Is
a Stream?
A path of information from a source to a
destination
InputStream, OutputStream,
Reader and Writer
JDK 1.0 (bytes)
- InputStream
- OutputStream
JDK 1.1 (characters)
- Reader
- Writer
Files
Instantiating a file object
Working with a file object
- Methods of File
- Directories
- FileDialog/FileChooser
Stream
Classes of java.io.*
System.in and System.out
Reading bytes from System.in
Converting a byte stream into a character
stream
Wrapper streams
File I/O
Serialization
The process of object serialization
- Marking an object for serialization
- Writing the object to file
- Reading the serialized object from a file
Transient variables and security
Summary
Define a stream
Differentiate between byte streams and
character streams
Recognize the abstraction of byte streams
through the InputStream and
OutputStream classes
Recognize the abstraction of character
streams through the Reader and Writer
classes
Create and use file objects
Summary
(cont’d)
Use System.in and System.out to
perform stream operations
Nest streams using wrapper classes to
enhance basic stream behavior
Perform file I/O
Define object serialization
Use serialization to save an object to a file
Explain the transient keyword
Lesson 21:
Networking
in Java
Objectives
Define networking, IP addresses, the
Domain Name System, and ports
Discuss the socket model and socket-tosocket communication
Explain the client/server model
Write a single-threaded client/server echo
system
Write a multithreaded client/server echo
system
What Is
Networking?
Computers communicating across
distances
Java networking
- TCP/IP
- UDP
Connecting Computers
Across the Internet
IP addresses
- Dotted quad
- 32 bits
- IPv6
DNS
Sockets
Well-known ports
Well-Known Ports
and Their Protocols
Port
Protocol
21
FTP
23
Telnet
25
E-mail
79
Finger
80
HTTP
119
NNTP/Usenet
Networking
Classes of java.net.*
Common networking classes
- InetAddress
- Socket
- ServerSocket
The Java
Client/Server Model
Server
- Delivers information
- ServerSocket object
- accept method returns a socket
Client
- Requests information from the server
- Connects to server with socket
Building the
EchoServer
The client
- Step 1: getConnection
- Step 2: sendMessage
- Step 3: receiveMessage
The server
- Step 1: getConnection
- Step 2: receiveMessage
- Step 3: sendMessage
Multithreading
Your Client/Server Model
Modifications to the server
The Connection class
The Client class
Running the threaded client/server
example
Summary
Define networking, IP addresses, the
Domain Name System, and ports
Discuss the socket model and socket-tosocket communication
Explain the client/server model
Write a single-threaded client/server
echo system
Write a multithreaded client/server echo
system
Java Programming
Fundamentals
Java Runtime Environment
Data Types, Variables and Operators
Control Statements
Methods
Arrays
Classes and Objects
Inheritance
Constructors
Java Programming
Fundamentals (cont’d)
Interfaces and Abstract Classes
Packages and Access Modifiers
Swing Components
Layout Managers
Graphics in Java
The Event Delegation Model
Inner Classes
Java Programming
Fundamentals (cont’d)
Java Applets
Exceptions
Creating Threads and Thread Methods
Thread Synchronization
Streams and Serialization
Networking in Java