DEV Community

Prahlad Yeri
Prahlad Yeri

Posted on • Originally published at github.com

A Collection Of Java Programming Resources For Beginners

(Originally published on https://github.com/prahladyeri/CuratedLists)

Note: It has been a long while since I've updated this list, so feedback is most welcome!

Java Resources

Official docs and other resources

Libraries and Frameworks

  • jUnit - The standard unit testing tool in Java world, the inspiration behind nunit, the equivalent for unit testing used in the .NET world.
  • Apache Commons - The most popular and highly used libraries in the Java World.
  • Guava - Google core libraries for java.
  • google-gson - Helpful for converting java objects into json and vice versa.
  • Apache Tomcat - A popular web server and Servlet container, the standard way of hosting and developing web apps in the Java world. The official alternative to the Java EE.
  • Apache TomEE - It so happens that Tomcat is great, but it doesn't stand up to some of the Oracle's certification standard for a web hosting platform. Hence TomEE was created, though its production usage is much less than Tomcat.
  • Spring.io - A comprehensive open-source web framework in Java that began to address some major drawbacks in the Java EE way of development. It pioneered the Dependency-Injection pattern in Java world and its modular approach of bundling components acted as a guiding stone for other frameworks like php's symfony.
  • JHipster - A development platform to generate, develop and deploy Spring Boot + Angular Web applications and Spring microservices.
  • Apache log4j - The standard logging component in the Java world, inspired log4net for C# and log4php for PHP.
  • hibernate-ORM - An object relational mapper. It’s used for persisting of data in relational databases.
  • mockito - Mocking framework for java.
  • selenium - A variety of tools and libraries enabling web browser automation.
  • Takes - Takes is an open source object-oriented and immutable Java web framework.
  • snmp4j - An industry standard SNMP library for Java. It allows creation of both SNMP agents and admins thorough its extensive API.

IDEs

  • Eclipse - The standard and most popular Java IDE used by most Java professionals, especially in enterprises. Though it appears to be bloated and sometimes slow and not so well designed, it is presently the best available in the Java world. It's pros, however, far outweigh its cons - it has a plugin-based modular architecture covering not just Java, but PHP, Python, C/C++ and several other langauges. There is also an ADT plugin to develop Android Apps. Personally, a huge fan!
  • Apache Netbeans - Another great IDE, second only to Eclipse. This has an additional advantage of being supported by OracleApache Software Foundation (ASF) and it comes with a Swing/JavaFX designer built-in. However, it is less flexible than Eclipse when it comes to supporting a wide range of projects. It also lacks a python plugin and its android plugin isn't much evolved.
  • IntelliJ - A commercial IDE developed by Jetbrains Inc. Evangelists claim that it is better than Eclipse.
  • BlueJ - An IDE specifically designed for the teaching of Java concepts to students. It doesn't have all the bells and whistles of Eclipse and others, just a plain IDE to easily help understand OOP concepts.
  • jEdit - jEdit is more of a Programmer's Editor than a fully fledged IDE. Though it lacks the RAD features in Eclipse/Netbeans, it works pretty well as a lightweight text Editor.

Tooling

  • Apache Ant - The standard build testing tool in Java world, the inspiration behind nant, the .NET equivalent. Often used in conjunction with Maven or Gradle packaging tools.
  • Apache Maven - The standard package management tool in Java world, though to be very honest, this department is very fragmented and convoluted with Gradle emerging as an unofficial alternative and the maven central, not being the only official source. Since Java is enterprise driven, a lot of them have their own maven centrals.
  • Gradle - A strong and popular replacement for Maven, especially because of its terse syntax that allows you to do away with Maven's verbose XML.
  • Qulice - Qulice is a Quality policing tool for Java which performs all kinds of checks and validations on your Java code. There is a maven plugin available which is very helpful.

Online tutorials, books and puzzles

New in Java 8

Top comments (1)

Collapse
 
itsjzt profile image
Saurabh Sharma

awesome java is also a good resource github.com/akullpp/awesome-java