Inside Java with Dr. Steven Lewis, PhD
Course Contents Listing
This course covers the basics of the Java language concentrating on Oracle's tools and access to Oracle databases. We cover the basic syntax of the Java language and of object-oriented development. The course demonstrates JDeveloper, a Java development environment supplied of Oracle and the use of an integrated development environment for code generation and debugging. Connection to using JDBC databases is covered as are the ways that Java can execute SQL statements and procedures. We then use Oracle's HR database to construct a Web application. We cover Servlets and the basics of HTML. The course then covers Java Server Pages as presentation layer. Finally, we cover advanced topics including multithreading, reflection and design.
This lesson covers the basics of the Java language. It starts with a discussion of the instructor's ideas on the general principles and philosophy of writing software. The structure and gals of the Java language and the Java virtual machine are covered. We then look at Hello World in Java, the simplest possible program. The rest of the lesson begins covering Java data types and Java syntax.
This lesson continues the discussion of Java syntax. Operators, precedence, variable scope are covered. We discuss Java's looping constructs: for and while. The structure of Java classes is covered. The difference between static and instance data and methods is covered. Java primitive and Java Strings are covered. Finally, Object Oriented design is introduced together with the idea of Interfaces and Abstract classes.
This lesson is largely a demonstration of the capabilities of JDeveloper, although much of what is shown could apply to any modern development environment. The basics of creating and working with classes is demonstrated. Syntax coloring is shown together with its importance in finding problems with code. Autocompletion, the ability to guess what you are typing and save the effort is shown. The ability to display errors in code as it is being written and to find errors in code without compilation is shown. The ability to generate standard sets of code and to use and define macros for code generation is demonstrated.
The lesson starts by covering the Java pattern of property getters and setters. The collections framework is covered: Lists, Sets and Maps are discussed. The course presents specific examples using Maps to perform fast lookup and lists to accumulate the results of a filtering operation. The generation and uses of immutable objects is discussed. Finally the use of generics to allow collections to be limited to specific types is demonstrated.
In real code development, the code never works the first time. A significant fraction of the developer's time is spent getting code to work properly. This is handled in two ways: debugging and testing. This lesson demonstrates debugging in JDeveloper (or any other modern IDE) including examination of variables, looking at the stack, the uses of break points and dealing with exceptions. The JUnit framework is shown and how unit tests can help with the integrity and stability of a project.
JDBC is a Java mechanism to isolate the developer from details of talking to the database. The basic elements of JDBC are connections for talking to the database and three types of Statements: Ordinary, Prepared and Callable. This lesson covers SQL queries and the ResultSets they return. SQL code which updates the database is covered, both as raw SQL and the ore efficient prepared statement. Calling stored procedures with Callable Statements is shown.
This lesson looks at application design. UML and specifically the generation of UML class diagrams is presented. Associations in UML and their corresponding Java implementations is shown. UML use cases and their role in high level design is covered. Common design patterns are discussed. Patterns include Singleton, Factory, Composite and Model-View-Controller (MVC).
In this lesson we cover the basics of HTML syntax and the presentation of data in HTML pages. HTML forms are shown to present the basis for sending data back to the server. The uses of Servlets are shown introducing the concept of a Web server. The examples in this lesson use Servlets to generate web pages.
This lesson shows more practical ways of generating HTML using Java Server Pages (JSPS). The lesson starts with the basics of JSPs, It covers tag libraries and their use to avoid code within the JSP. Specifically the JSTL (Java Standard Taglib) is covered. Expression language in JSPs and tags is shown and specifically how EL allows taglibs and JSP to access page and session data. The lesson ends developing a Model-View-Controller Web application exposing the HR database using Servlets to marshal data and JSPs to display it.
This class covers advanced Java concepts. Reflection, the idea that a Java object or Class can tell a program about its data and methods is shown. The style of using reflection to write generic programs and specifically the uses of reflection in dealing with data returned from a database is shown. Threading, the idea of running multiple tasks at the same time is discussed, The techniques and reasons for using multiple threads are covered. In addition some of the dangers and pitfalls of threading are shown. The lesson concludes with some thoughts on software development and design.