Course Overview
Course Content
- Testing
- Why should we perform testing?
- Types of testing
- Testing Angular application using Jasmine and Karma
- Maintaining application code using Git
- Version control system
- Why should we use Git?
- Git file workflow
- Running application on the production server: Nginx
- Architecture of Nginx
- How to configure Nginx?
- Deployment of an application using Docker
- Problems before containers
- How containers solve the problems
- What is Docker?
- Docker file
- Docker image
- Docker containers
- Docker hub
- Basic Docker commands
- Hands-On
- Multithreading: What and Why?
- Synchronized Block and Method
- Life Cycle of a Thread
- Thread API in Java
- Creating Thread
- States of Tread
- Advance Thread concepts
- Thread Pooling โ Executor, Callable, Future
- Queues, Worker thread model โ Executer Service, etc.
- Fork Join Framework
- CountDownLarch
- CyclicBarrier
- Semaphore
- Mutex
- ThreadLocal
- ReentrantLock
- ShutdownHook
- Performing multiple tasks by multiple threads
- Garbage Collection
- What is Stream?
- Input and Output Streams
- Types of Streams
- java.io package
- The Byte-stream I/O hierarchy
- Character Stream Hierarchy
- FileWriter & FileReader
- File I/O and Object Serialization
- CharArrayWriter
- Console
- Compressing and Uncompressing File
- Reading and Writing data simultaneously
- DataInputStream and DataOutputStream
- Object Stream
- Buffered Stream
- StreamTokenizer class
- What is a framework in Java?
- Collection Framework
- Collection Interfaces and Implementor classes
- Types of Interfaces
- Types of Classes
- List, Set, Map
- Comparable and Comparator
- Collections and Arrays Classes
- Enhanced ForEach Loop
- Java Vector and Stack
- Enumeration
- List Interface
- ArrayList
- LinkedList
- Set Interface
- HashSet, LinkedHasSet, TreeSet
- Map Interface
- HashMap, LinkedHashMap, TreeMap
- Collection Sort
- Collection Shuffle
- Platform Module System (Project Jigsaw)
- Interface Private Methods
- Try-With Resources
- Anonymous Classes
- @SafeVarargs Annotation
- Collection Factory Methods
- Process API Improvement
- New Version-String Scheme
- JShell: The Java Shell (REPL)
- Process API Improvement
- Control Panel
- Stream API Improvement
- Installer Enhancement for Microsoft windows and many more
- Local-Variable Type Inference
- Consolidate the JDK Forest into a Single Repository
- Garbage-Collector Interface
- Parallel Full GC for G1
- Application Class-Data Sharing
- Thread-Local Handshakes
- Remove the Native-Header Generation Tool (javah)
- Additional Unicode Language-Tag Extensions
- Heap Allocation on Alternative Memory Devices
- Experimental Java-Based JIT Compiler
- Root Certificates
- Time-Based Release Versioning
- VM Changes โ JEP 189, JEP 346, JEP 344, and JEP 230.
- Switch Expressions
- File mismatch() Method
- Compact Number Formatting
- Teeing Collectors in Stream API
- Java Strings New Methods โ indent(), transform(), describeConstable(), and resolveConstantDesc()
- JEP 334: JVM Constants API
- JEP 305: Pattern Matching for instanceof
- Raw String Literals is Removed From JDK 12
- Text Blocks โ JEP 355
- New Methods in String Class for Text Blocks
- Switch Expressions Enhancements โ JEP 354
- Reimplement the Legacy Socket API โ JEP 353
- Dynamic CDS Archive โ JEP 350
- ZGC: Uncommit Unused Memory โ JEP 351
- FileSystems.newFileSystem() Method
- Support for Unicode 12.1
- DOM and SAX Factories with Namespace Support
- Switch Expressions (Standard) โ JEP 361
- Pattern Matching for instanceof (Preview) โ JEP 305
- Helpful NullPointerExceptions โ JEP 358
- Records (Preview) โ JEP 359
- Text Blocks (Second Preview) โ JEP 368
- Packaging Tool (Incubator) โ JEP 343
- NUMA-Aware Memory Allocation for G1 โ JEP 345
- JFR Event Streaming โ JEP 349
- Non-Volatile Mapped Byte Buffers โ JEP 352
- ZGC on macOS โ JEP 364
- ZGC on Windows โ JEP 365
- Foreign-Memory Access API (Incubator) โ JEP 370
- Sealed Classes (Preview) โ JEP 360
- Pattern Matching for instanceof (Second Preview) โ JEP 375
- Records (Second Preview) โ JEP 359
- Text Blocks (Standard) โ JEP 378
- Hidden Classes โ JEP 371
- Remove the Nashorn JavaScript Engine โ JEP 372
- Reimplement the Legacy DatagramSocket API โ JEP 373
- Disable and Deprecate Biased Locking โ JEP 374
- Shenandoah: A Low-Pause-Time Garbage Collector โ JEP 379
- Remove the Solaris and SPARC Ports โ JEP 381
- Foreign-Memory Access API (Second Incubator) โ JEP 383
- Deprecate RMI Activation for Removal โ JEP 385
- Vector API (Incubator) โ JEP 338
- Enable C++14 Language Features โ JEP 347
- Migrate from Mercurial to Git โ JEP 357
- Migrate to GitHub โ JEP 369
- ZGC: Concurrent Thread-Stack Processing โ JEP 376
- Unix-Domain Socket Channels โ JEP 380
- Alpine Linux Port โ JEP 386
- Elastic Metaspace โ JEP 387
- Windows/AArch64 Port โ JEP 388
- Foreign Linker API (Incubator) โ JEP 389
- Warnings for Value-Based Classes โ JEP 390
- Packaging Tool โ JEP 392
- Foreign-Memory Access API (Third Incubator) โ JEP 393
- Pattern Matching for instanceof โ JEP 394
- Records โ JEP 395
- Strongly Encapsulate JDK Internals by Default โ JEP 396
- Sealed Classes (Second Preview) โ JEP 397
- Context-Specific Deserialization Filters โ JEP 415
- Vector API (Second Incubator) โ JEP 414
- Foreign Function & Memory API (Incubator) โ JEP 412
- Deprecate the Security Manager for Removal โ JEP 411
- Remove the Experimental AOT and JIT Compiler โ JEP 410
- Sealed Classes โ JEP 409
- Remove RMI Activation โ JEP 407
- Pattern Matching for switch (Preview) โ JEP 406
- Strongly Encapsulate JDK Internals โ JEP 403
- Deprecate the Applet API for Removal โ JEP 398
- macOS/AArch64 Port โ JEP 391
- New macOS Rendering Pipeline โ JEP 382
- Enhanced Pseudo-Random Number Generators โ JEP 356
- Restore Always-Strict Floating-Point Semantics โ JEP 306
- UTF-8 by Default โ JEP 400
- Simple Web Server โ JEP 408
- Code Snippets in Java API Documentation โ JEP 413
- Reimplement Core Reflection with Method Handles โ JEP 416
- Vector API (Third Incubator) โ JEP 417
- Internet-Address Resolution SPI โ JEP 418
- Foreign Function & Memory API (Second Incubator) โ JEP 419
- Pattern Matching for switch (Second Preview) โ JEP 420
- Deprecate Finalization for Removal โ JEP 421