There are hundreds of java libraries out there, but saving your time here are the top 10.
Yep, that’s right, you heard me right.
A lot of people underestimate or do not fully know the Java Standard libraries and do not know how to unleash its full power when programming or they don’t use it at all. Here is a brief description of some of the libraries:
- java.lang is always implicitly being imported as it contains everything you basically cannot program without
- In java.util you can nd all the collections and data structures available in Java
- Next, we have java.io for reading les, working with pipes, streams and similar.
- Also we have java.nio, which actually is the alternative to java.io and stands for non-blocking I/O. It allows intensive use of the input/output operations as you might guess.
- java.math provides functionality for working with arbitrary-precision decimal (
BigDecimal) and integer (
- java.net is being used for working with sockets, creating connections or in short – creating networking applications
- In Java we also have libraries for working with GUI :
javax.swing(extension of the older
- We even can play music and create midi les with java.sound
JHipster is a development platform to generate, develop and deploy Spring Boot + Angular Web applications and Spring microservices.
Man, this one have saved me months of development.
I could definitely say that this one is my personal favourite and that I keep a special place for it in my heart. It basically generates your whole application from your front-end to the back-end. The only thing you need to add is the business logic behind the architecture. The main and most important libraries, which are included in the generated project are:
- Spring Boot – helps you accelerate and facilitate application development
You can find more about JHipster here.
Maven is a software project management and comprehension tool. Honestly, Maven is great. If you’ve never used Maven before, you’re missing out. Sometimes, I wonder how it was even possible to create enterprise applications prior to its creation. Maven can manage all your project dependencies, configurations and build configurations and even documentation only by specifying them in a single pom.xml file.
Apache Commons is actually a whole project focused on creating Java libraries.
Here is a short list of some of the best and most commonly used libraries:
- Commons Math: The Apache Commons Mathematics Library – the name says it all: this library contains components allowing advanced mathematics and statistics operations and computations
- Commons CLI – provides API for parsing command line arguments. Why will you even bother creating an application without the ability to pass parameters and control its behavior?!
- Commons CSV – whatever you are developing, at some point you are going to face the necessity of using csv les. This include opening, reading, editing, saving and creating them. I suggest using the RFC 4180 format from the CSVFormat class and UTF-8 encoding when saving/creating les.
- Commons IO – it is being used for easier execution of input/output operations. Checking at least the ReversedLinesFileReader is de nitely worth it.
Guava is the Google Core Libraries for Java.
It is a library for extending the basic Java collections functionalities.
This is an utility I absolutely have to mention. Did you ever needed ordering for your collections?
Did you ever need to compare the contents there?
What about advanced sort and compare on multiple columns with multiple conditions?
I present you one of my most favorite components in this library:
- ComparisonChain is used for implementing advanced and complicated comparison sort for collections.
google-gson is helpful for converting Java Objects to JSON and vice versa. This library is especially helpful when developing mobile applications and creating/using REST APIs as well as in any case you would need to convert a Java Object to its JSON representation and vice versa.
Hibernate-ORM is an object relational mapper.
It’s used for persisting of data in relational databases.
It provides an easier and more abstract way of doing that for the developers.
It uses JDBC in its implementation.
Hibernate is also an implementation of the JPA specification.
Despite the name, Mockito is not an alcohol-free mixed drink but instead a mocking framework. Sorry to disappoint. However, Mockito enables you to create mocks and write tests easier with simpler and cleaner code. Writing great tests has never been easier!
JUnit is a free Java framework for writing unit tests. It provides functionality for conducting repeatable tests on your code.
You just need to be careful not to get obsessed with the numbers (% code coverage). Bigger code coverage does not always mean better and bug-less code.
10. Log4j and Slf4j
The two of these are both logging frameworks.
Slf4j represents an abstraction for other logging frameworks (such as Log4j ). On the other hand, Log4j is just a simple logging framework.