• Home
  • About
    • Thoughts To Pen photo

      Thoughts To Pen

      My thoughts on Computer Programming || Psychology || Personal Finances || & much more...

    • Learn More
    • Twitter
    • Instagram
    • Github
    • StackOverflow
  • Posts
    • All Posts
    • All Tags
  • Projects
  • Portfolio
  • Resources
  • About

Java Programming Language

  • The New Date/Time API (Java 8)

    Java 8 finally fixed the broken date and time handling in Java. Discover why LocalDate and ZonedDateTime are a developer's best friend.

    Read More
  • The Optional API (Java 8)

    Optional is Java's answer to the billion-dollar mistake: null references. Learn how to use it to make your code more robust.

    Read More
  • The Streams API (Java 8)

    The Streams API changed how we process collections in Java. Say goodbye to complex for-loops and hello to elegant, chainable data pipelines.

    Read More
  • Functional Interfaces & Default Methods (Java 8)

    Java 8 didn't just add lambdas; it revolutionized interfaces. Explore how Default Methods and the java.util.function package changed Java architecture.

    Read More
  • Lambda Expressions (Java 8)

    Lambda Expressions transformed Java by allowing us to treat code as data. Learn the syntax and benefits of this revolutionary feature.

    Read More
  • Java 8 Features

    Java 8 remains the most influential update in Java's history. Explore the features that changed how we write Java forever.

    Read More
  • Predicate::not and More Enhancements (Java 11)

    Beyond the big features, Java 11 included several clever improvements that make functional programming and prototyping much smoother.

    Read More
  • Local-Variable Syntax for Lambda Parameters (Java 11)

    Java 11 extended the 'var' keyword to lambda parameters, bringing consistency and allowing for cleaner annotation usage in functional code.

    Read More
  • String & Files API Enhancements (Java 11)

    Java 11 brought much-needed utility methods to foundational classes like String and Files, simplifying daily tasks for developers.

    Read More
  • Standard HTTP Client API (Java 11)

    Java 11 replaced the aging HttpURLConnection with a modern, feature-rich HTTP Client API that supports HTTP/2 and non-blocking I/O.

    Read More
  • Java 11 Features

    A comprehensive guide to Java 11 LTS features that modernised Java for the cloud and container era.

    Read More
  • Enhanced Pseudo-Random Number Generators (Java 17)

    Java 17 introduces Enhanced Pseudo-Random Number Generators through JEP 356, providing a modern, flexible framework for generating random numbers. This update brings new interfaces, multiple algorithm implementations, and better support for stream-based operations, addressing limitations of the legacy java.util.Random class.

    Read More
  • Records (Java 17)

    Records in Java 17 provide a concise way to create immutable data classes, automatically generating constructors, getters, equals, hashCode, and toString.

    Read More
  • Text Blocks (Java 17)

    Text Blocks in Java 17 make multi-line strings readable and maintainable by eliminating escape sequences and preserving formatting.

    Read More
  • Pattern Matching for instanceof (Java 17)

    Pattern Matching for instanceof in Java 17 combines type testing and variable binding, making your code cleaner and more readable.

    Read More
  • Sealed Classes (Java 17)

    Sealed Classes in Java 17 provide fine-grained control over inheritance, allowing you to restrict which classes can extend or implement your types.

    Read More
  • Java 17 Features

    A comprehensive guide to Java 17 LTS features that improve code quality, readability, and developer productivity.

    Read More
  • Primitive Types in Patterns (Java 25)

    Java 25 extends Pattern Matching to primitive types, allowing 'switch' and 'instanceof' to handle int, long, and more.

    Read More
  • Module Import Declarations (Java 25)

    Simplifying imports in Java 25 with Module Imports, making it easier to use entire libraries at once.

    Read More
  • Flexible Constructor Bodies (Java 25)

    Java 25 finally allows statements before 'super()' in constructors, giving developers more freedom.

    Read More
  • Compact Source Files (Java 25)

    Evolving the Java language to be more concise and beginner-friendly with Implicit Classes and Instance Main Methods.

    Read More
  • Java 25 Features

    All new features introduced in Java 25

    Read More
  • Unnamed Patterns & Variables (Java 21)

    Unnamed Patterns and Variables (Preview) in Java 21

    Read More
  • Structured Concurrency (Java 21)

    Structured Concurrency (Preview) in Java 21

    Read More
  • Unnamed Classes & Instance Main Methods (Java 21)

    Unnamed Classes and Instance Main Methods (Preview) in Java 21

    Read More
  • Pattern Matching for switch (Java 21)

    Pattern Matching for switch introduced in Java 21

    Read More
  • Record Patterns (Java 21)

    Record Patterns introduced in Java 21

    Read More
  • Sequenced Collections (Java 21)

    Sequenced Collections introduced in Java 21

    Read More
  • Virtual Threads (Java 21)

    Virtual Threads

    NOTE: This is a preview feature NOT enabled by-default in JDK-21.

    Read More
  • String Templates (Java 21)

    String Templates introduced in Java 21

    Read More
  • Java 21 Features

    All new features introduced in Java 21

    Read More