The Awesome Java feed


Apache PDFBox

Toolbox for creating and manipulating PDF.
Featured Library // Category PDF

LRU Cache Implementation in Java

Article Added by: TechBlogStation //

Metrics v4.0.7

A new version of Metrics has been released
New Version

Memory Footprint of a Java Process - Andrei Pangin

Article Popular Story //

Undertow vs Netty

Popular comparison
  • Undertow - Web server providing both blocking and non-blocking API’s based on NIO. Used as a network layer in WildFly.
  • Netty - Framework for building high performance network applications.


Apache POI

Supports OOXML (XLSX, DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT).
Featured Library // Category Document Processing

Drools vs Easy Rules

Popular comparison
  • Drools - Drools Expert is the rule engine and Drools Fusion does complex event processing (CEP).
  • Easy Rules - The simple, stupid Java rules engine

MyBatis v3.5.3

A new version of MyBatis has been released
New Version

Last 7 Days

Codename One

Cross platform solution for writing native mobile (iOS, Android, etc.)
Featured Library // Category Miscellaneous

Identical Binary Trees (Same Tree) problem

Given two binary trees, write a function to check if they are the same or not.

Two binary trees are considered the same if they are structurally identical and the nodes have the same value.
Article Added by: callicoder //

Valid Parentheses problem

Given a string containing just the characters (, ), {, }, [ and ], determine if the input string is valid.

An input string is valid if:

Open brackets must be closed by the same type of brackets.
Article Added by: callicoder //

Merge Two Sorted Linked Lists

Merge two sorted linked lists and return it as a new list. The new list should also be sorted.
Article Added by: callicoder //

StreamEx v0.7.1

A new version of StreamEx has been released
New Version

Apache Cayenne

Provides clean, static API for data access. Also includes GUI Modeler for working with database mappings, DB reverse engineering and generation.
Featured Library // Category ORM

Let's revisit Java in 2019

Article Popular Story //

Hamcrest v2.2

A new version of Hamcrest has been released
New Version


Fast and reliable message broker built on top of Kafka.
Featured Library // Category Messaging

Why does Java have Checked Exceptions

Article Popular Story //

Byte Buddy v1.10.2

A new version of Byte Buddy has been released
New Version

Thymeleaf vs FreeMarker

Popular comparison
  • Thymeleaf - Aims to be a substitute for JSP and works for XML files in general.
  • FreeMarker - General templating engine without any heavyweight or opinionated dependencies.


Off-the-shelf constraint satisfaction problem solver, which uses constraint programming techniques.
Featured Library // Category Constraint Satisfaction Problem Solver

Spring Boot Actuator Complete Tutorial with Example

Article Added by: TechBlogStation //

Longest Palindromic Substring

Given a string s, find the longest palindromic substring in s.
Article Added by: callicoder //

Maximum Contiguous Subarray Sum

Given an integer array numbers, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
Article Added by: callicoder //

Add two numbers represented using Linked Lists

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.
Article Added by: callicoder //

Design and implement a data structure for Least Recently Used (LRU) cache

Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations:
get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1.
put(key, value) - Set or insert the value for the given key in the cache. When the cache has reached its capacity, it should invalidate the least recently used item before inserting a new item.
The cache is initialized with a positive capacity.
Article Added by: callicoder //