Training is conducted by Trayan Iliev, Oracle® & OMG® certified software developer with 15+ years enterprise training experience (VMWare, Software AG, Telenor, etc.). Regular speaker at developer conferences: Voxxed Days, jPrime, jProfessionals, BGOUG, BGJUG on topics as SOA & REST (JAX-RS), CDI, Spring Reactor, Java EE 7, Angular 2, Ionic 2, React, Redux, high-performance reactive Java programming.
The course provides practical skills in object-oriented programming with the new Java ™ 9 version. Java versions 8 & 9 have the potential to change significantly the way we implement high-quality programming code. They provide new opportunities for modularity, functional and stream-based programming using lambda expressions. The major Java APIs have been extensivly updated to take advantage of new programming idioms. The code becomes easier to maintain, shorter and elegant, while increasing productivity by replacing heavy-weight anonymous classes with dynamic function calls, and allowing parallel execution of streaming operations. The course duration is 120 study hours and includes three modules (individualized combinations are possible):
- Fundamentals of Java 9 Programming (40 study hours) – introduces the principles and concepts of object-oriented programming and their practical implementation in Java language. Different language structures, mechanisms for implementation and practical classes on the underlying data structures are explored in detail by examples and study cases. More complex elements of Java language are covered – inheritance and polymorphism, interfaces and anonymous inner classes. The mechanisms for exception handling and documentation conventions in Java ™ code are also discussed. The latest novelties in Java 5/6/7/8 are presented- lambda expressions and streaming programming (java.util.function and java.util.stream), references to methods, methods and default static methods in interfaces, generics, enumeration types, enhanced for-loop, static imports, autoboxing, variable argument lists, annotations, strings in switch, multi-catch, generics type inference, try with resources . Special attention is paid to the more complex elements in the use of parameterized types ( generics ) as type erasure, bounded generics, wild cards and others. Java 8 Date and Time API (JSR 310 ) news are explaned, as well as advanced features for using the annotations on Java types (JSR 308) .The module introduces the new, more effective and efficient style of stream programming using monads (eg. Optional, Stream ). It also includes an introduction to the graphical notation for object-oriented modeling language Unified Modeling Language (UML) .
- Java API and design of graphical user interface (40 study hours) – Java classes for file operations and serialization are considered, including novelties in working with files in Java 7 – New I/O 2 Path, Files, FileSystem, AttributeViews, walking the file tree, WatchService, MIME type inference. Swing library of classes and components (windows, panels, buttons, text fields, lists, dialogs, menus, etc.) for building a graphical user interface (GUI) and Model-View-Controller architecture and new for Java 7 JLayer components, semi-transparent windows and vector Look and Feel are presented. Graphical construction of forms and applications, and implementation of parallel processes using multiple threads (multi-threading) and mechanisms for synchronization between these processes are demonstrated. As special highlights of the course will be covered rapid and automated building of GUI applications with Eclipse Window Builder and details of competitive programming using Concurrency Utilities (JSR-166) , including new for Java 7 Fork/ Join Framework .
- Development of distributed and networked applications with JAVA 9 (40 study hours) – this module introduces the basics of network programming in Java (development of chat servers and clients in TCP/UDP/Multicasting ), transactions and links to databases in JDBC™ , practical development of distributed applications in a client/server Java RMI™ and multilayer software architectures. Mechanisms to link a database (Java Database Connectivity – JDBC) and using SQL to manipulate the data are discussed. Last novelties in JDBC 4.1 (Java 7) – try with resources, RowSet, RowSetFactory, FilteredRowSet, CachedRowSet and others are included. Practical explanation of Remote Method Invocation (RMI) mechanism for building distributed applications and the use of declarative security-based policies is given. New topics addressed in this module include Java Persistence API (JPA) , which builds already popular ORM managers Hibernate/TopLink /EclipseLink . JPA facilitates the storage of data in a database, making useless writing SQL queries and XML descriptions of data, replacing them with annotations in the code and automated creation of JPA entity beans and control classes by assistants directly from tables in the database. The course ends with a project – development of a comprehensive three-layer client/server application using the Remote Method Invocation (RMI) middleware .
Among the novelties included in the latest edition of the course are:
- UML graphical notation to improve team communication (Use Case and Class diagrams);
- innovations in Java 5/6/7/8/9 – lambda expressions and streaming programming , generics, enumeration types, enhanced for-loop to iterate over collections, static import, autoboxing, variable Argument lists length, using annotations in the code strings in switch, multi-catch, generics type inference, try with resources;
- novelties in working with files in Java 7 – New I/O 2 Path, Files, FileSystem, AttributeViews, walking the file tree, WatchService, MIME type inference;
- realization of fine fine-granular concurrency library JSR 166: Concurrency Utilities , including new for Java 7 Fork /Join Framework;
- novelties in JDBC 4.1 (Java 7) – try with resources, RowSet, RowSetFactory, FilteredRowSet, CachedRowSet , etc.;
- new to Java 5/6/7 SE Java Persistence API, which builds already popular ORM managers Hibernate/ TopLink / EclipseLink and facilitates the storage of data in a database, making useless writing SQL queries and XML data descriptions, replacing them with annotations in the code;
- automated creation of Java Persistence API (JPA) entity beans and control classes by assistants directly from tables in the database;
- quickly building of graphical user interfaces with a bodybuilder;
- understanding of the advantages and disadvantages of different architectural solutions and using best practices ( Reusable Design Paterns ) depending on the specifics of the project;
- practical development of own network applications client-server and peer to peer (P2P) type using protocols in TCP/ UDP/ multicasting – chat servers and clients; billing program, including RMI clients with a graphical user interface, centralized server and database;
- introduction to the security mechanisms in Java, declarative security policy-based;
- maximize the speed and expandability in the development of multi-client server applications by combining the above technologies and approaches.
Viewing detailed program of the course in PDF format (in a new browser window) For more information and registration, please send us an e-mail at: email@example.com