Skip to main content

Java Key Features 2014–2023

 ๐ŸŒ Java Key Features 2014–2023๐Ÿ‘‡๐Ÿป

├── ๐Ÿ“ฆ Java 8 (2014)
│ ├── ๐Ÿ”„ Lambdas
│ ├── ๐ŸŒŠ Streams API
│ ├── ๐Ÿ•’ Date and Time API
│ └── ๐Ÿ”ง Default Methods in Interfaces
├── ๐Ÿ“ฆ Java 9 (2017)
│ ├── ๐Ÿ“ฆ Module System
│ │ ├── ๐Ÿ”ง Project Jigsaw
│ │ └── ๐Ÿ” Modularization (JEP 193)
│ ├── ๐Ÿ’ป JShell (Interactive REPL)
│ └── ๐Ÿš€ Improved JVM Performance
├── ๐Ÿ“ฆ Java 10 (2018)
│ ├── ๐Ÿ“ Local Variable Type Inference
│ │ └── ๐Ÿ—’️ `var` Keyword
│ ├── ♻️ G1 Garbage Collector Improvements
│ └── ๐Ÿ“ฆ Application Class-Data Sharing (AppCDS)
├── ๐Ÿ“ฆ Java 11 (2018 - LTS)
│ ├── ๐ŸŒ HTTP Client API
│ ├── ❌ Removal of Legacy Features
│ │ └── ❌ Applet API
│ └── ๐Ÿ† Long-Term Support (LTS)
├── ๐Ÿ“ฆ Java 12 (2019)
│ ├── ๐Ÿ”„ Switch Expressions (Preview)
│ ├── ♻️ Shenandoah Garbage Collector
│ └── ๐Ÿš€ Performance Enhancements (JEP 189)
├── ๐Ÿ“ฆ Java 13 (2019)
│ ├── ๐Ÿ“„ Text Blocks (Preview)
│ ├── ๐Ÿ“ฆ Dynamic CDS Archives
│ └── ๐ŸŒ Improved Socket API
├── ๐Ÿ“ฆ Java 14 (2020)
│ ├── ๐Ÿ”„ Records (Preview)
│ ├── ๐Ÿ” Pattern Matching (Preview)
│ └── ๐Ÿ’ก Helpful NullPointerException Messages
├── ๐Ÿ“ฆ Java 15 (2020)
│ ├── ๐Ÿ“„ Text Blocks Finalized
│ ├── ๐Ÿ”’ Sealed Classes (Preview)
│ └── ๐Ÿง  Foreign Memory API (Incubator)
├── ๐Ÿ“ฆ Java 16 (2021)
│ ├── ๐Ÿ”„ Records Finalized
│ ├── ♻️ Z Garbage Collector for macOS
│ └── ๐Ÿš€ Foreign Function & Memory API Improvements
├── ๐Ÿ“ฆ Java 17 (2021 - LTS)
│ ├── ๐Ÿ” Pattern Matching for Switch (Preview)
│ ├── ๐Ÿ”’ Sealed Classes Finalized
│ ├── ๐ŸŽฒ Pseudo-Random Number Generators Improvements
│ └── ๐Ÿ† Long-Term Support (LTS)
├── ๐Ÿ“ฆ Java 18 (2022)
│ ├── ๐Ÿ”’ Strong Encapsulation of JDK Internals (JEP 400)
│ └── ๐ŸŒ Support for Alpine Linux
├── ๐Ÿ“ฆ Java 19 (2022)
│ ├── ๐Ÿงต Virtual Threads (Preview)
│ └── ๐Ÿš€ Continued Foreign Function & Memory API Enhancements
├── ๐Ÿ“ฆ Java 20 (2023)
│ ├── ๐Ÿงต Virtual Threads Improvements
│ ├── ๐Ÿ” Pattern Matching Advancements
│ └── ๐Ÿ”„ Enhanced Thread Management
└── ๐Ÿ“ฆ Java 21 (2023 - LTS)
├── ๐Ÿ† Long-Term Support (LTS)
├── ๐Ÿงต Virtual Threads (Mainstream Adoption)
└── ๐Ÿ•ธ️ Structured Concurrency

Comments

Popular posts from this blog

Step-by-Step: Launch Browser, Context, and Page in Playwright and Run Test and Configuration (JavaScript)

๐ŸŽฅ Setup Browser, Context, Page & Run Config Test Scripts with package.json & playwright.config.js Step-by-Step: Launch Browser, Context, and Page in Playwright and Run Test and Configuration (JavaScript) 1. Install Playwright You can install Playwright using the following command: npm init playwright@latest 2. Create a Basic Test Script Understand the core Playwright architecture: Element Description browser Controls the browser instance (like Chrome, Firefox, etc.) context Acts like a separate browser profile (cookies, localStorage are isolated) page A single browser tab where interaction happens 3. Run the Test npx playwright test example.spec.js Ways to Run TypeScript Tests Way Command Notes ๐ŸŸข Via npx npx playwright test Uses built-in TypeScript support ๐ŸŸข With s...

Playwright Test Structure in Details -Session-02

๐ŸŽฅ Playwright: test.only, Hooks & Grouping with test.describe Explained Let’s go step-by-step , showing how to build from a single test , to using beforeEach / afterEach , and then organizing things with test.describe . ✅ Step 1: Basic Single Test with test.only import { test, expect } from '@playwright/test' ; test. only ( '๐Ÿš€ Basic test - check title' , async ({ page }) => { await page. goto ( 'https://example.com' ); await expect (page). toHaveTitle ( /Example Domain/ ); }); test.only ensures only this test runs — great for debugging. ✅ Step 2: Add beforeEach and afterEach import { test, expect } from '@playwright/test' ; test. beforeEach ( async ({ page }) => { console . log ( '๐Ÿ”„ Setting up before each test' ); await page. goto ( 'https://example.com' ); }); test. afterEach ( async ({ page }, testInfo) => { console . log ( `๐Ÿ“ฆ Finished test: ${testInfo.title} `); }); test. only ( ...

How to Maximize a Browser window using Playwright Java

  Playwright itself does not have a direct maximize () method like some other browser automation tools, but you can achieve the effect by setting the viewport to the screen size of your display. Below are ways to handle Maximize a browser in Playwright Java  ร˜   Setting the viewport to the screen size  o    setViewportSize(1920, 1080): This sets the browser window to a full HD resolution, effectively maximizing it. o    setHeadless(false): Ensures the browser runs in a visible mode so you can see the window being maximized.  Code Snapshot  Playwright playwright = Playwright. create ()   ;   Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false));     // Create a new browser context   BrowserContext context = browser.newContext(new Browser.NewContextOptions()          .setViewportSize(1920, 1080));     ...