Final Review Sheet
Use the two previous review sheets for checklists on material
covered prior to tests 1 and 2. Final exam is cumulative.
Below is a checklist for new material since Test 2.
Misc remaining GUI examples
Understand the features seen in the remaining GUI examples (2nd chapter
of swing component examples). These included things like:
- menus and menu items
- popup menus
- tabbed panes, desktop panes, internal frames (containers)
- GridBagLayout
- BoxLayout features (struts, glue, etc)
Multithreading
- Know the basic concepts of processes and multitasking
- Know the difference between running processes concurrently and
threading (running threads concurrently)
- Understand the advantages of concurrent processing with threads over
doing it with different processes
- Understand the basic thread states
- new
- runnable
- waiting
- timed waiting (sleeping)
- terminated (or dead)
- Know the two basic ways to set up tasks to run concurently:
- Extend class Thread and override run()
- Implement the Runnable interface
- Understand that the second of these requires that the Runnables be
executed on seperately created threads -- and that methods from
java.util.concurrent can help manage this
- Executor interface (and method execute())
- thread pools (understand the Executors methods
newCachedThreadPool() and newFixedThreadPool(), and
the difference between them)
- Understand synchronization -- why and when it's needed
- Understand mutual exclusion and locks
- keyword synchronized and built-in monitors for objects
- includes Object class methods wait(),
notify()
- Alternate technique (since JDK 1.5.0)
- interface java.util.concurrent.locks.Lock
- Condition variables, interface Condition
- await()
- signal()
- signalAll()
- Deadlock
Networking
General Concepts
- client/server model
- Connection-oriented vs. connectionless
- TCP (Transmission Control Protocol) vs. UDP (User Datagram
Protocol)
- Know what a socket is
Java implementations
- package java.net
- Know how to create a URL object
- Know the basics of opening a web page from an applet or
application
- JEditorPane can be used from an application -- can handle
basic HTML
- Understand the process that a client and server must use to set up
connection-oriented sockets
- class ServerSocket -- for listening for connections
- class Socket -- for opening client sockets (connecting to
the server)
- Understand the basics of creating and using datagram oriented sockets
- class DatagramSocket -- for creating the sockets
- class DatagramPacket -- for building packets to send over
datagram sockets