This course is designed for students familiar with Object Oriented Programming techniques. It covers a large number of advanced topics including software development methodologies using Java tools and APIs, Java core technologies, Java Framework, Java GUIs, Network programming in Java, Java Database Connectivity (JDBC), and Java and XML. The main focus of the course is Advanced Java Technologies and Architecture. Students will learn to use Java technologies in the real world and write numerous, nontrivial programs throughout the curriculum to demonstrate mastery of the concepts discussed in the classroom.
Features and merits of Java - Java Environment - Java and C++ Application - Architecture (Development/Design, Runtime Environment) - Security Model - Development Kit - Tools in JDK - Integrated Development Environment - Depreciation with Java - Java API Documentation.
Overview - Environment Setup - Basic Syntax - Object & Classes - Basic Data types - Variable Types - Modifier Types - Basic Operators - Loop Control - Decision Making - Numbers - Characters -Strings - Arrays - Date & Time - Regular Expressions - Methods - Files and I/O - Exceptions
OOPS Paradigm - Basic concepts - Objects, Classes, Encapsulation, Abstraction, Inheritance, Polymorphism, Constructors - Comparison of Object Oriented Languages
Develop code that uses methods. Develop code that declares both static and non-static methods, and - if appropriate - use method names that adhere to the JavaBeans naming standards. Also develop code that declares and uses a variable-length argument list. Given a code example, determine if a method is correctly overriding or overloading another method, and identify legal return values (including covariant returns), for the method.
Define classes and super classes, develop constructors for one or more of the classes. Understand a class declaration, determine if a default constructor will be created, and if so, determine the behaviour of that constructor. Understand a nested or non-nested class listing, write code to instantiate the class.
Wrapper classes (such as Boolean, Character, Double, Integer, etc.), and/or autoboxing & unboxing - The String, StringBuilder, and StringBuffer classes. Standard J2SE APIs - dates, numbers, and currency values for a specific locale; and, given a scenario, determine the appropriate methods to use if you want to use the default locale or a specific locale. Describe the purpose and use of the java.util.Locale class.Advantages of localization,Resource bundles, - java.util and java.util.regex packages to format or parse strings or streams. - Pattern and Matcher classes and the String.split method. Recognize and use regular expression patterns for matching (limited to: . (dot), * (star), + (plus), ?, \d, \s, \w, , ()). Formatter and Scanner classes and the PrintWriter.format/printf methods. Recognize and use formatting parameters (limited to: %b, %c, %d, %f, %s) in format strings.
Develop code that makes use of assertions, and distinguish appropriate from inappropriate uses of assertions. Develop code that makes use of exceptions and exception handling clauses (try, catch, finally), and declares methods and overriding methods that throw exceptions. Recognize the effect of an exception arising at a specified point in a code fragment. Note that the exception may be a runtime exception, a checked exception, or an error. Understand which of these are thrown by the virtual machine and recognize situations in which others should be thrown programatically.
Given a design scenario, determine which collection classes and/or interfaces should be used to properly implement that design, including the use of the Comparable interface. Distinguish between correct and incorrect overrides of corresponding hashCode and equals methods, and explain the difference between == and the equals method. Write code that uses the generic versions of the Collections API, in particular, the Set, List, and Map interfaces and implementation classes. Recognize the limitations of the non-generic Collections API and how to refactor code to use the generic versions. Type inference(diamond).Stack and Deque. Write code that uses the NavigableSet and NavigableMap interfaces. Develop code that makes proper use of type parameters in class/interface declarations, instance variables, method arguments, and return types; and write generic methods or methods that make use of wildcard types and understand the similarities and differences between these two approaches. Use capabilities in the java.util package to write code to manipulate a list by sorting, performing a binary search, or converting the list to an array. Use capabilities in the java.util package to write code to manipulate an array by sorting, performing a binary search, or converting the array to a list. Use the java.util.Comparator and java.lang.Comparable interfaces to affect the sorting of lists and arrays. Furthermore, recognize the effect of the natural ordering of primitive wrapper classes and java.lang.String on sorting.
Given a scenario involving navigating file systems, reading from files, writing to files, or interacting with the user, Directory and File operations,managing file system attributes .develop the correct solution using the following classes (sometimes in combination), from java.io: BufferedReader, BufferedWriter, File, FileReader, FileWriter, PrintWriter, and Console. Develop code that serializes and/or de-serializes objects using the following APIs from java.io: DataInputStream, DataOutputStream, FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream and Serializable.
What are Threads?,write code to define, instantiate, and start new threads using both java.lang.Thread and java.lang.Runnable. Identify the thread properties,Recognize the states in which a thread can exist, and identify ways in which a thread can transition from one state to another-life cycle of a thread. Given a scenario, write code that makes appropriate use of object locking to protect static or instance variables from concurrent access problems Synchronization-when to use synchronized blocks of codeIdentify the scenario in which deadlock is generated,Immutable Objects,The Java.util.concurrency Package,Using an Executor Service.Given a scenario, write code that makes appropriate use of wait, notify, or notifyAll.
Describe the JFC Swing Technology ,Describe the GUI building blocks: containers, components, and layout managers,Describe the swing single threaded model ,Build a GUI using swing components ,Learn in detail about components like Tabbed panes,Jbutton,Check Boxes,Radio Buttons,JScrollPane,Trees etc
Define events and event handling ,Write code to handle events that occur in a GUI Describe the concept of adapter classes, including how and when to use them Determine the user action that originated the event from the event object details Identify the appropriate listener interface for a variety of event types Create the appropriate event handler methods for a variety of event types Use inner classes and anonymous classes in event handling Understand Swing Worker thread and its effect on the GUI performance
Develop code to set up the network connection ,Use ServerSocket and Socket classes for implementation of TCP/IP clients and servers.Describe URL and URLConnection classes
JDBC-JDBC design goals and structure-writing data base programs-driver managers- making connections-uerying data base-prepared statement-callable statement-result sheet JDBC implementation- connecting to JDBC database Using mysql, RowSet 1.1 RowSetProvider and RowSetFactory,The DAO Pattern and JDBC.
Java servlets -Java servlet development kit-servlet life cycle-generic & http servlet-servlets with Netscape web server-writing servlets-handling GET & POST requests-Javax.servlet package-javax.servlets.http packager-servlet program to web server communication-retrieving from data in servlet-servlet program to access database- cookies.
JDBC-distributed application-remote procedure call- distributed object model-remote method interface-RMI architecture-packages for RMI-Java.rmi package- (registry, server & activation)-building RMI application.
Applet Architecture,Understanding the simple Applet Display Methods ,Life Cycle methods of an applet ,Develop code to impement Thread in Applet, Understanding the HTML Applet Tag,Develop code to pass parameters to Applet Describe getdocumentBase() and getCodebase()
Diamond Operator, Using strings in switch statements, Automatic resource management Numeric literals with underscores, Improved exception handling, File change notifications