* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download No Slide Title
Survey
Document related concepts
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
Transcript
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