Java Fundamentals – Core, Functional, Database & Web Programming


Съботно-неделен, 5 седмици (40 часа). Цена: 350 лева (280 лв за студенти/ учащи).

Траян Илиев - Certified Java SE 6 ProgrammerOracle® Certified Professional - Java SE 6 Programmer
Тренингът се води от Траян Илиев, Oracle® сертифициран Java програмист с 15 годишен опит, разработчик на end-to-end reactive fullstack приложения с ES6/7, TypeScript, Angular, React и Vue, 12+ години опит като IT трейнър за международни софтуерни компании. Има множество презентации на Voxxed Days, jPrime, jProfessionals, BGOUG, BGJUG, DEV.BG на теми като SOA & REST (JAX-RS, Microservices), Spring 5 и Spring Reactor, Java EE, CDI, Angular, React, Redux, high-performance Java programming.

График и записване

Продължителност: 40 часа

Цена: 350  лева / 280 лева

За кого е курса: За абсолютно начинаещи с добро логическо мислене

Какви умения ще придобиете:

  • ще научите всички основни езикови конструкции в езика Java и препоръчителните шаблони за тяхната употреба;
  • ще можете да прилагате на практика основните принципи (SOLID) на обектно-ориентирания подход за разработка на софтуер;
  • ще се забавлявате с игри, предизвикателства и програмиране на Java роботи с Raspberry Pi 3
  • ще разработите собствен проект – реално бизнес приложение с уеб интерфейс и база от данни, което да можете да демонстрирате като Ваше портфолио пред потенциални работодатели;
  • ще научите новостите в Java 8+ като функционално програмиране и поточна обработка на данни (Stream API), параметризирани (generic) типове, декларативни анотации в кода и др.
  • ще можете да разработвате надеждни приложения с подходяща обработка на грешки и изключения;
  • ще научите как да работите с файлове и ресурси – обхождане, търсене, четене, писане, добавяне;
  • ще можете да използвате релационни бази от данни като MySQL/PostgreSQL – създаване и модифициране на таблици, задаване на позволения (permissions), добавяне/промяна/изтриване на записи, свързване и заявки към множество таблици с използване на Structured Query Language (SQL) и Java DataBase Connectivity (JDBC);
  • ще научите основите на уеб програмирането с Java Servlet 4 технология, MVC шаблон за разработка, HTTP/2 и уеб сървър Tomcat 9.x
  • ще се подготвите за следващата стъпка – курса “Въведение в Spring 5: Hibernate, Spring MVC, WebFlux & REST

 

Програма на курса:

    1. Object Oriented Programming (OOP), SOLID principles  – objects, classes, interface and implementation, abstraction, encapsulation, modularity, composition, inheritance, polymorhism. SOLID: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion principles. Java compiler, bytecode, Java Virtual Machine (JVM) – compiling and running Java programs. (1 h)
    2. Java basic datatypes and algorithmic constructs  – Java primitive and object datatypes. Variables and constants. Creating new types – classes, objects, methods and attributes. The methods of class Object. Mathematical, logical, relational, bitwise, and string operators. Basic algorithmic constructs – if-else, do-while, for, for each (arrays and collections) , break, continue, switch, etc. Reference and value types and method parameters – passing data by reference and by value. Using IntelliJ IDEA integrated development environment (IDE).  (5 h)
    3. Object creation and initialization – initialization of object members, constructors, finalizing and garbage collection. Default constructors. Method overloading. Static members initialization. Sequence of initialization. (2 h)
    4. Arrays and basic algorithms with them – initialization, iteration, comparison, filling, copying, sorting, searching.  Using utility methods of the class Arrayssort, reverse, fill, copy, max, min, binarySearch, etc. Multi-dimensional arrays. Array-based algorithmic implementations. Examples and problems. (4 h)
    5. Strings and Regular Expressions – mutable and immutable data types, working with strings String, StringBuilder. Formatted output: String.format() and Formatter.format(). Working with regular expressions – classes Pattern and Matcher. Using regular expressions for input data validation and parsing. Model-View-Controller (MVC) architectural pattern. Building sample MVC application – AddressBook. (3 h)
    6. Exception handling – class Exception. Try and catch  blocks – handling multiple exceptions. Throwing and catching exceptions. Defining custom exceptions. Using stack-trace. Sequencing the catch clauses.  Checked and unchecked exceptions – class RuntimeException. Chaining exceptions using cause. Finally block and its applications. (1 h)
    7. Packages and access modifiers, code reuse, inheritance – packages and fully qualified class names, public, private, protected, and default (package) visibility. Code reuse strategies – inheritance and composition. Inheritance in Java. Object initialization when using inheritance. Choosing  inheritance vs. composition. Combining inheritance and composition. (2 h)
    8. Polymorphysm, abstract clases and methods, interfaces – automatic “upcasting” to the base type. Final members, methods, parameters, and classes. Differences between method overriding and overloading. Using declarative annotations in the code. Polymorphism. Abstract methods and classes. Interfaces. Classes implementing interfaces. Extending interfaces. Depending on abstractions, not implementations – Dependency Inversion Principle (DIP). (2 h)
    9. Inner classes and interfaces – static and instance inner classes. Closures – creating an instance of the inner class in the context of an outer class instance.  Accessing outer state – final and effectively final. Instance.new and instance.this. Anonymous inner classes. Examples. (2 h)
    10. Data structures in Java – collections, lists, sets, and dictionary types. Hash tables. Base interfaces, their methods and main implementations: Collection, List, Set, Map, ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap. Comparison between different abstract data structure implementations – main use cases. (2 h)
    11. Generics – generic types and methods, Diamond(<>) operator and generic type inference. Substituion ruels when using generic types. Wildcard generics. Type erasure. Implementing custom generic data structures: MyLinkedList, Stack and Queue. (2 h)
    12. Functional programming with Java 8+lambda expressions and Stream API (packages java.util.function and java.util.stream), method references, default and static methods in interfaces, multiple inheritance rules. Functional programming using Optional and Stream monads in Java – advantages, implementation examples and language idioms. (2 h).
    13. Java New I/O 2 – working with files and directories using Path, Files, FileSystem, AttributeViews, Input and Output streams, Readers and Writers. Walking the file tree. File compression (GZIP, ZIP). Data serialization/deserialization. (4 h)
    14. Java DataBase Connectivity (JDBC) – relational databses, schemas, database drivers, connecting to MySQL/PostgreSQL database using DriverManager. Using Statement / PreparedStatement and Structured Query Language (SQL) to create/modify relational schema (database tables), and to query, insert, update, and remove records in these tables. Using ResultSet to acces and modyfy programmatically the query data. Database transactions – ACID properties. Practical refactoring of AdressBook application using MySQL/PostgreSQL database and JDBC. (4 h)
    15. Building Web Apps using Java Servlet 4 technology – Java web architecture, web containers (Tomcat, Jetty, Undertow), Web ARchives (WAR), HTTP and HTTP/2, Servlet 4. Introduction to web standards – HTML 5, CSS 3. Servlet 4 API – requests and responses, web context, cookies and HttpSession. Refactoring the AdressBook application as fully featured multi-layer Web MVC application with Data Access (DAO), Business Service (Control), and Web Presentation (Servlet-based) layers. (4 h)

Презентациите, демонстрациите и hands-on упражненията се провеждат паралелно с цел незабавно затвърждаване на концепциите чрез практика.

Участниците ще се научат да програмират на езика Java и да разработват базови уеб приложения със Servlet 4 и релационна база от данни (MySQL/PostgreSQL). Обучението се осъществява в малки групи – до 10 човека. По време на тренинга ще можем да дискутираме и допълнителни въпросиима възможност за дискутиране на допълнителни въпроси от интерес за участниците.

За повече информация и въпроси ни пишете на  e-mail: office@iproduct.org

График и записване