Java

Java is a general-purpose computer programming language that is class-based, object-oriented,and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA). Java is a widely used programming language expressly designed for use in the distributed environment of the internet.

To complete this section I will be working from the following book(s):

  • Book 01: Java How To Program

    book cover
    The Book's Cover

    Author: Paul J. Deitel

    Description:

    For courses in Java, Introduction to Programming and Java, Intermediate/Advanced Programming.

    The Deitels’ ground breaking How to Program series offers unparalleled breadth and depth of programming concepts and intermediate-level topics for further study. The texts in the series feature hundreds of complete, working programs with thousands of lines of code―more than any other texts of their kind. Now, the world’s best-selling Java textbook is again completely up to date with The Java 2 Platform Standard Edition (J2SE) 5.0.

    Publisher: Pearson; 6th edition (1 July 2004)

    ISBN: 978-0131290143

  • Section 01: Beginning Java Applications

    In this section the following are covered:

    1. To write simple Java applications.
    2. To use input and output statements.
    3. Java’s primitive types.
    4. Basic memory concepts.
    5. To use arithmetic operators.
    6. The precedence of arithmetic operators.
    7. To write decision-making statements.
    8. To use relational and equality operators.
  • Section 02: Introduction To Classes, Objects, Methods And Strings

    These examples contain basic terminology and concepts of object-oriented programming. These applications consist of two or more basic classes.
  • Section 03: Control Statements Part I

    The concepts presented here are crucial in building classes and manipulating objects. Java’s if, if...else and while statements, three of the building blocks that allow you to specify the logic required for methods to perform their tasks.
  • Section 04: Control Statements Part II

    This section continues structured programming theory and principles by introducing all but one of Java’s remaining control statements. Java’s for, do...while and switch statements are demonstrated. Through a series of short examples using while and for, counter-controlled repetition is explored. The break and continue program control statements are introduced. Logical operators, which enable the use of more powerful and complex conditional expressions are explored.
  • Section 05: Methods Part I

    Experience has shown that the best way to develop and maintain a large program is to construct it from small, simple pieces, or modules. This technique is called divide and conquer.

    In this Section, the following are covered:

    1. How static methods and fields are associated with classes rather than objects.
    2. How the method call/return mechanism is supported by the method—call stack.
    3. How packages group related classes.
    4. How to use random-number generation to implement game—playing applications.
    5. How the visibility of declarations is limited to specific regions of programs.
    6. What method overloading is and howcto create overloaded methods.
  • Section 06: Arrays

    In this section the following are covered:

    1. What arrays are.
    2. To use arrays to store data in and retrieve data from lists and tables of values.
    3. To declare arrays, initialize arrays and refer to individual elements of arrays.
    4. To iterate through arrays with the enhanced for statement.
    5. To pass arrays to methods.
    6. To declare and manipulate multidimensional arrays.
    7. To use variable-length argument lists.
    8. To read command-line arguments into a program.
  • Section 07: Classes And Objects Part II

    In this section the following are covered:

    1. Encapsulation and data hiding.
    2. The notions of data abstraction and abstract data types (ADTs).
    3. To use keyword this.
    4. To use static variables and methods.
    5. To import static members of a class.
    6. To use the enum type to create sets of constants with unique identifiers.
    7. To declare enum constants with parameters.
  • Section 08: Object-Oriented Programming: Inheritance

    In this section the following are covered:

    1. How inheritance promotes software reusability.
    2. The notions of superclasses and subclasses and the relationship between them.
    3. To use keyword extends to create a class that inherits attributes and behaviors from another class.
    4. To use access modifier protected to give subclass methods access to superclass members.
    5. To use the enum type to create sets of constants with unique identifiers.
    6. To access superclass members with super.
    7. How constructors are used in inheritance hierarchies.
    8. The methods of class Object, the direct or indirect superclass of all classes.
  • Section 09: Object-Oriented Programming: Polymorphism

    In this section the following are covered:

    1. The concept of polymorphism.
    2. To use overridden methods to effect polymorphism.
    3. To distinguish between abstract and concrete classes.
    4. To declare abstract methods to create abstract classes.
    5. How polymorphism makes systems extensible and maintainable.
    6. To determine an object’s type at execution time.
    7. To declare and implement interfaces.
  • Section 10: GUI Components: Part 1

    In this section the following are covered:

    1. How to use Java’s elegant, cross-platform Nimbus look and feel.
    2. To build GUIs and handle events generated by user interactions with GUIs.
    3. To understand the packages containing GUI components, event-handling classes and interfaces.
    4. To create and manipulate buttons, labels, lists, text fields and panels.
    5. To handle mouse events and keyboard events.
    6. To use layout managers to arrange GUI components.
  • Section 11: Graphics And Java 2D

    In this section the following are covered:

    1. To understand graphics contexts and graphics objects.
    2. To manipulate colors and fonts.
    3. To use methods of class Graphics to draw various shapes.
    4. To use methods of class Graphics2D from the Java 2D API to draw various shapes.
    5. To specify Paint and Stroke characteristics of shapes displayed with Graphics2D.
  • Section 12: Exception Handling

    In this section the following are covered:

    1. What exceptions are and how they’re handled.
    2. When to use exception handling.
    3. To use try blocks to delimit code in which exceptions might occur.
    4. To throw exceptions to indicate a problem.
    5. To use catch blocks to specify exception handlers.
    6. To use the finally block to release resources.
    7. The exception class hierarchy.
    8. To create user-defined exceptions.
  • Section 13: Files And Streams

    In this section the following are covered:

    1. To create, read, write and update files.
    2. To retrieve information about files and directories.
    3. The Java input/output stream class hierarchy.
    4. The differences between text files and binary files.
    5. To use classes Scanner and Formatter to process text files.
    6. To use classes FileInputStream and FileOutputStream to read from and write to files.
    7. To use classes ObjectInputStream and ObjectOutputStream to read objects from and write objects to files.
    8. To use a JFileChooser dialog.
  • Section 14: Recursion

    In this section the following are covered:

    1. The concept of recursion.
    2. How to write and use recursive methods.
    3. How to determine the base case and recursion step in a recursive algorithm.
    4. How recursive method calls are handled by the system.
    5. The differences between recursion and iteration, and when to use each.
    6. What the geometric shapes called fractals are and how to draw them using recursion.
    7. What recursive backtracking is and why it’s an effective problem—solving technique.
  • Section 15: Searching And Sorting

    In this section the following are covered:

    1. To search for a given value in an array using linear search and binary search.
    2. To sort arrays using the iterative selection and insertion sort algorithms.
    3. To sort arrays using the recursive merge sort algorithm.
    4. To determine the efficiency of searching and sorting algorithms.
  • Section 16: Data Structures

    In this section the following are covered:

    1. To form linked data structures using references, self referential classes, recursion and generics.
    2. To create and manipulate dynamic data structures, such as linked lists, queues, stacks and binary trees.
    3. Various important applications of linked data structures.
    4. How to create reusable data structures with classes, inheritance and composition.
  • Section 17: Generics

    In this section the following are covered:

    1. To create generic methods that perform identical tasks on arguments of different types.
    2. To create a generic Stack class that can be used to store objects of any class or interface type.
    3. To understand how to overload generic methods with non-generic methods or with other generic methods.
    4. To understand raw types and how they help achieve backwards compatibility.
    5. To use wildcards when precise type information about a parameter is not required in the method body.
    6. The relationship between generics and inheritance.
  • Section 18: Collections

    In this section the following are covered:

    1. What collections are.
    2. To use class Arrays for array manipulations.
    3. To use the collections framework (prepackaged data structure) implementations.
    4. To use collections framework algorithms to manipulate (such as search, sort and fill) collections.
    5. To use the collections framework interfaces to program with collections polymorphically.
    6. To use iterators to “walk through” a collection.
    7. To use persistent hash tables manipulated with objects of class Properties.
    8. To use synchronization and modifiability wrappers.
  • Section 19: Intoduction To Java Applets

    In this section the following are covered:

    1. To differentiate between applets and applications.
    2. To observe some of Java’s capabilities through the JDK’s demonstration applets.
    3. To write simple applets.
    4. To write a simple HyperText Markup Language (HTML) document to load an applet into an applet container and execute the applet.
    5. Five methods that are called automatically by an applet container during an applet’s life cycle.
  • Section 20: Multimedia: Applets And Applications

    In this section the following are covered:

    1. How to get and display images.
    2. To create animations from sequences of images.
    3. To create image maps.
    4. To get, play, loop and stop sounds, using an AudioClip.
    5. To play video using interface Player.
  • Section 21: GUI Components: Part II

    In this section the following are covered:

    1. To create and manipulate sliders, menus, pop-up menus and windows.
    2. To change the look-and-feel of a GUI, using Swing’s pluggable look-andfeel.
    3. To create a multiple-document interface with JDesktopPane and JInternalFrame.
    4. To use additional layout managers.
  • Section 22: Multithreading

    In this section the following are covered:

    1. What threads are and why they are useful.
    2. How threads enable you to manage concurrent activities.
    3. The life cycle of a thread.
    4. Thread priorities and scheduling.
    5. To create and execute Runnables.
    6. Thread synchronization.
    7. What producer/consumer relationships are and how they are implemented with multithreading.
    8. To display output from multiple threads in a Swing GUI.
    9. About Callable and Future.
  • Section 23: Networking

    In this section the following are covered:

    1. To understand Java networking with URLs, sockets and datagrams.
    2. To implement Java networking applications by using sockets and datagrams.
    3. To understand how to implement Java clients and servers that communicate with one another.
    4. To understand how to implement network-based collaborative applications.
    5. To construct a multithreaded server.
  • Section 24: Accessing Databases With JDBC

    In this section the following are covered:

    1. Relational database concepts.
    2. To use Structured Query Language (SQL) to retrieve data from and manipulate data in a database.
    3. To use the JDBC™ API of package java.sql to access databases.
  • Section 25: Servlets

    In this section the following are covered:

    1. How servlets can be used to extend a Web server’s functionality.
    2. The servlet life cycle.
    3. To execute servlets with the Apache Tomcat server.
    4. To be able to respond to HTTP requests from an HttpServlet.
    5. To be able to redirect requests to static and dynamic Web resources.
    6. To use JDBC from a servlet.
  • Section 26: JavaServer Pages (JSP)

    In this section the following are covered:

    1. What JSPs are.
    2. The differences between servlets and JSPs.
    3. To create and deploy JavaServer Pages.
    4. To use JSP’s implicit objects and scriptlets to create dynamic Web pages.
    5. To specify global JSP information with directives.
    6. To use actions to manipulate JavaBeans in a JSP, to include resources dynamically and to forward requests to other JSPs.
  • Section 27: Formatted Output

    In this section the following are covered:

    1. To understand input and output streams.
    2. To use printf formatting.
    3. To print with field widths and precisions.
    4. To use formatting flags in the printf format string.
    5. To print with an argument index.
    6. To output literals and escape sequences.
    7. To format output with class Formatter.
  • Section 28: String, Characters And Regular Expressions

    In this section the following are covered:

    1. To create and manipulate immutable character string objects of class String.
    2. To create and manipulates mutable character string objects of class StringBuffer.
    3. To create and manipulate objects of class Character.
    4. To use a StringTokenizer object to break a String object into tokens.
    5. To use regular expressions to validate String data entered into an application.
    .