Java Programmer "Resource Encyclopedia"

Source: Internet
Author: User
Tags apache solr compact hosting glassfish jboss apache tomcat netbeans java se

"Editor's note" Java is almost an introductory language for many programmers, and is also a popular programming language in the world. Andreas Kull, a foreign programmer, has compiled a very good Java development resource on GitHub and recommended it to everyone. Translation completed by importnew-Tang Yuhua.

The following is a list of specific resources.

Build

The tools used to build the application are collected here.

    • Apache Maven:maven is built with claims and relies on management, preferring to build using conventions rather than configurations. MAVEN is superior to Apache Ant. The latter is configured in a process-based manner, so it is very difficult to maintain.
    • The Gradle:gradle is built incrementally. Gradle is configured with groovy programming instead of traditional XML declarations. Gradle works well with Maven for dependency management and treats the ant script as a first-class citizen.
byte code Operation

A library of functions that programmatically manipulate Java bytecode.

    • ASM: generic underlying bytecode operation and analysis.
    • Javassist: Try simplified characters section code editing.
    • BYTE Buddy: Use the streaming API to further simplify bytecode generation.
Code Analysis

Software metrics and quality assessment tools.

    • Checkstyle: Static analysis of programming specifications and standards.
    • FindBugs: Identify potential bugs with bytecode static analysis.
    • PMD: Analysis of bad programming habits in source code.
    • SonarQube: Provides an evaluation of the final results report by integrating additional analysis components with plugins.
Compiler

Creates a framework for parsers, interpreters, and compilers.

    • ANTLR: Fully functional top-down analysis of complex frames.
    • JavaCC: Relative ANTLR more specific, easy to get started. Support for grammatical grammar prediction (syntactic lookahead).
Continuous integration

Tools that support continuous integration, testing, and application publishing.

    • Bamboo:atlassian's Continuous Integration (CI) solution includes many other products.
    • Circleci: Hosting services are available for free trial.
    • Codeship: Provides hosting services and offers limited free programs.
    • Go:thoughtwork Open source Continuous integration solution.
    • Jenkins: Provides server-based deployment services.
    • Teamcity:jetbrain Continuous Integration program with free version.
    • Travis: Provides managed services, often used in open source projects.
Database

Tools, libraries for simplifying database interaction.

    • Flyway: Easily complete database migrations with the Java API.
    • H2: Small SQL database, known for memory operations.
    • JDBI: A handy jdbc abstraction.
    • Jooq: Generates type-safe code based on SQL schema.
    • Presto: Distributed SQL query engine for big data.
    • QUERYDSL: Type-Safe unified query for Java.
Date and time

A library of functions that handle dates and times.

    • Before the advent of Joda-time:java 8, it was the standard library of functions for date and time processing.
    • Time4j:java Advanced date, Time function library.
Dependency Injection

A library of functions that help code implement control inversion mode.

    • Dagger: Compile-time injection framework, no reflection, used primarily for Android development.
    • Guice: Lightweight injection frame, powerful and dagger comparable.
Development Library

Improve the development process from the basic level.

    • AspectJ: Programming extensions for facets, seamlessly connected to programs.
    • Auto: Source code generator collection.
    • DCEVM: By modifying the JVM, the loaded classes can be redefined indefinitely at run time. OpenJDK 7, 8 has provided support, see this branch (fork) for details.
    • JRebel: Commercial software, no need to redeploy to instantly reload code and configuration.
    • Lombok: Code generator designed to reduce Java redundancy code.
    • RxJava: Creates an asynchronous, event-based application library of functions using observable sequences in the JVM.
    • Spring Loaded: Another JVM class overload proxy.
    • VERT.X:JVM Multi-language event-driven application framework.
Distributed applications

A library of functions and frameworks for developing distributed, fault-tolerant applications.

    • Akka: Build the Toolkit and runtime required for concurrent, distributed, and fault-tolerant event-driven applications.
    • Apache Storm: Distributed real-time computing systems.
    • Apache ZooKeeper: Provides coordination services for large distributed systems using distributed configuration, synchronization, and naming registrations.
    • Hazelcast: Distributed, highly scalable memory grid.
    • Hystrix: Provides latency and fault-tolerant processing for distributed systems.
    • JGroups: A set of toolkits that provide reliable message transfer that can be used to create clusters. Nodes in the cluster can send messages to each other.
    • Quasar: Provides lightweight threading and actor for the JVM.
Release

Tools for distributing Java applications using native format.

    • Bintray: Versioning binary releases, which can be used in conjunction with MAVEN or Gradle.
    • IzPack: Establish authorization tools for cross-platform deployments.
    • LAUNCH4J: Wraps the jar as a compact Windows executable file.
    • PACKR: Package The program jar, resources, and JVM into native files for Windows, Linux, and Mac OS X.
Document processing

A library of functions used to process documents in office format.

    • Apache POI: Supports Ooxml (XLSX, DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT)-formatted documents.
    • Jopendocument: Handles OpenDocument format documents.
Game development

Game development Framework.

    • Jmonkeyengine: A game engine that supports modern 3D development.
    • LibGDX: A comprehensive cross-platform advanced development Framework.
    • LWJGL: Abstract The robust framework of OpenGL, CL, AL and other libraries.
Gui

A library of functions used to create a modern graphical user interface.

    • Successor to the javafx:swing.
    • Scene builder:javafx Virtual Layout tool.
Performance

Resources related to high-performance computing, including collections and function libraries for many specific functions.

    • Disruptor: The Inter-thread message function library.
    • Fastutil: Fast and compact Java Type Security collection.
    • GS Collections: A collection framework inspired by Smalltalk.
    • Hftc:hash set and Hash map.
    • HPPC: Base type collection.
    • Javolution: A library of functions for real-time embedded systems.
    • Trove: Base type collection.
Ide

View simplifies the development of an integrated development environment.

    • Eclipse: The background does a lot of work, known for its rich plugins.
    • IntelliJ idea: It supports many JVM languages and offers many good options for Android development. Its commercial version is primarily for enterprise users.
    • NetBeans: Integrates a number of Java SE and Java EE features, including database access, servers, HTML5, and Angularjs.
Image processing

A library of functions used to help create, evaluate, or manipulate graphics.

    • picasso:android download image and image cache function library.
    • ZXing: One-dimensional, two-dimensional barcode processing function library in many formats.
Json

A library of functions that simplifies JSON processing.

    • Gson: Serializes Java objects into JSON and reverse operations. Provides good performance when used.
    • Jackson: Similar to Gson, but if you need to initialize the Jackson Library frequently, it can cause performance problems.
JVM and JDK

The current JVM, JDK implementation.

    • JDK 9:JDK 9 Early Access version.
    • OpenJDK: Open source implementation.
Log

Logs the application's Log function library.

    • Apache log4j 2: A complete rewrite of the previous version. The current version has a powerful plug-in and configuration architecture.
    • Kibana: Analyze the logs and visualize them.
    • LOGBACK:LOG4J works of the original class. proved to be a robust library of log functions, with groovy providing many interesting configuration options.
    • Logstash: Log file Management tool.
    • SLF4J: The log abstraction layer, which needs to be used in conjunction with a specific log framework.
Machine learning

Tools that provide specific statistical algorithms. Its algorithms can be learned from the data.

    • Apache Hadoop: Open source software framework for large-scale data storage and processing on commercial hardware clusters.
    • Apache Mahout: An extensible algorithm that focuses on collaborative filtering, clustering, and classification.
    • Apache Spark: Open source data analytics cluster computing framework.
    • H2O: An analysis engine used as a big data statistic.
    • Weka: A collection of algorithms that are used as data mining, from preprocessing to visualization at all levels.
News

A tool for message passing between clients to ensure protocol independence.

    • Apache ActiveMQ: An open source message broker (broker) that implements JMS to convert synchronous traffic to asynchronous communication.
    • Apache Kafka: High throughput distributed messaging system.
    • JBoss HornetQ: Clear, accurate, modular and easy-to-embed messaging tools.
    • JEROMQ:ZEROMQ's pure Java implementation.
Other

Other resources.

    • Design Patterns: Implements and interprets the most common pattern of designs .
    • JIMFS: Memory file system.
    • Lanterna: Simple console text GUI function library similar to curses.
    • Lightadmin: Pluggable Crud UI library that can be used for rapid application development.
    • Metrics: Create your own software metrics or add metrics to the support framework, publish via JMX or HTTP, or send to a database.
    • Openrefine: Tools for dealing with chaotic data, including cleanup, transformations, scaling with Web service, and associating it to a database.
    • Robovm:java Write native iOS apps.
Natural language Processing

A library of functions that are designed to handle text.

    • Apache OPENNL: Tools for dealing with common tasks like word breakers.
    • CORENLP: Stan's CORENLP provides a set of basic tools to handle tasks like tagging, entity name recognition, and sentiment analysis.
    • Lingpipe: A set of tools that can handle a variety of tasks, support POS tagging, sentiment analysis, and more.
    • Mallet: Statistics natural Language Processing, document classification, clustering, theme modeling and so on.
Internet

Network programming function Library.

    • Netty: Building a high-performance network application Development framework.
    • OkHttp: A Http+spdy Client for Android and Java applications.
Orm

An API that handles object persistence.

    • Eclipselink: Supports many persistence standards, JPA, JAXB, JCA, and SDO.
    • Hibernate: A widely used, robust persistence framework. Hibernate's technical community is very active.
    • Ebean: An ORM framework that supports fast data access and encoding.
Pdf

The resource used to help create a PDF file.

    • Apache FOP: Create PDF from XSL-FO.
    • Apache PDFBox: A toolset for creating and manipulating PDFs.
    • Lite version of Dynamicreports:jasperreports.
    • IText: A library of easy-to-use PDF libraries to program the creation of PDF files. Note that a license is required for commercial use.
    • JasperReports: a complex reporting engine.
Rest Framework

The framework used to create restful services.

    • Dropwizard: A Web framework that favors its own use. Used to build Web applications using jetty, Jackson, Jersey, and metrics.
    • Jersey:jax-rs reference implementation.
    • Resteasy: A portable implementation that is fully certified by the JAX-RS specification.
    • Retrofit: A Java type-safe rest client.
    • Spark: A Java rest framework inspired by Sinatra.
    • Swagger:swagger is a normative and complete framework that provides the description, production, consumption, and visualization of restful Web Service.
Science

Library of functions for scientific computation and analysis.

    • Scavis: For scientific Computing, data analysis and data visualization environments.
Search

Document indexing engine for search and analysis.

    • Apache SOLR: A full enterprise search engine. Optimized for high-throughput communications.
    • Elasticsearch: A distributed, support multi-tenant (multitenant) Full-text search engine. Provides a restful web interface and a JSON document without schema.
Safety

A library of functions for handling security, authentication, authorization, or session management.

    • Apache Shiro: Performs authentication, authorization, encryption, and session management.
    • Cryptomator: Client cross-platform transparent encryption on the cloud.
    • Keycloak: Integrates SSO and IDM for browser apps and restful Web service. It is still in beta, but looks promising.
    • Picketlink:picketlink is a large-scale project for security and authentication management for Java Applications (Umbrella project).
    • Spring Security: Focus on authentication, authorization, and multi-dimensional attack protection frameworks.
Serialization of

A library of functions for efficient processing of serialization.

    • Flatbuffers: Serialization library for efficient use of memory and efficient access to serialized data without unpacking and parsing.
    • Kryo: Fast and efficient object graphics serialization framework.
    • Messagepack: An efficient binary serialization format.
Server

The server that is used to deploy the application.

    • Apache TOMCAT: Application servers for Servlets and JSPs are robust and adaptable.
    • Apache Tomee:tomcat plus Java EE.
    • Glassfish:java EE Open Source Reference implementation, developed by Oracle funding.
    • Jetty: A lightweight, compact application server that is typically embedded in a project.
    • WildFly: Previously known as JBoss, developed by Red Hat. Supports many Java EE features.
Template engine

A tool to replace an expression in a template.

    • Apache Velocity: Provides HTML page templates, email templates, and common open source code generator templates.
    • Freemarker: A generic template engine that does not require any heavyweight or self-employed dependencies.
    • Handlebars.java: A template engine written in Java with simple logic and support for semantic extensions (semantic mustache).
    • JavaServer Pages: Common Web site templates that support custom tag libraries.
    • Thymeleaf: Designed to replace JSP, supporting XML files.
Test

Test content from object to interface, covering performance testing and benchmarking tools.

    • Apache JMeter: Functional Testing and performance evaluation.
    • Arquillian: Integration test and functional line test platform, integrated with Java EE container.
    • ASSERTJ: Supports streaming assertions to improve the readability of tests.
    • JMH:JVM Micro Benchmark test tool.
    • JUnit: Generic test framework.
    • Mockito: Create test objects in automated unit tests to provide support for TDD or BDD.
    • Selenium: Provides a portable software testing framework for Web applications.
    • Selenide: Provides selenium with a precise perimeter API to write stable and readable UI tests.
    • TestNG: Test Framework.
    • VisualVM: Provides a visual way to view running application information.
Tool class

Generic tool class function library.

    • Apache Commons: Functions that provide a variety of uses, such as configuration, validation, collections, file uploads, or XML processing.
    • Guava: Collections, caches, support primitives, concurrency libraries, general annotations, string processing, I/O, and so on.
    • Javatuples: As the name indicates, tuple support is provided. Although the concept of a tuple is still controversial.
Web crawler

A library of functions for analyzing site content.

    • Apache Nutch: A highly scalable, scalable web crawler that can be used in production environments.
    • CRAWLER4J: A simple lightweight crawler.
    • Jsoup: Scraping, parsing, manipulating, and cleaning up HTML.
Web Framework

A framework for handling the different levels of communication between Web applications.

    • Apache Tapestry: A component-based framework that uses Java to create dynamic, robust, and highly extensible web applications.
    • Apache Wicket: A component-based Web application framework, similar to tapestry with a status display GUI.
    • Google Web Toolkit: A set of web development tools that includes compilers, XML parsers, RCP APIs, JUnit integrations, internationalization support, and GUI controls that convert Java code to JavaScript on the client.
    • The Grails:groovy framework is designed to provide an efficient development environment that uses conventions rather than configurations, without XML, and supports mixing (mixin).
    • Play: Use conventions rather than configurations to support code hot loading and display errors in the browser.
    • PRIMEFACES:JSF framework, available in Free edition and with technical support for commercial editions. Contains some front-end components.
    • Spring Boot: Micro-framework simplifies the development of new spring programs.
    • Spring: Designed to simplify the Java EE development process, providing dependency injection-related components and supporting aspect-oriented programming.
    • Vaadin: An event-driven framework built on GWT. Using the server-side architecture, the client uses Ajax.
    • Ninja:java full stack Web development framework. Very stable, fast and efficient.
    • Ratpack: A set of Java development function libraries for building fast, efficient, extensible, and well-tested HTTP applications.
Community

An active discussion area.

    • The subreddit of the R/java:java community.
    • StackOverflow: Question and answer platform.
Books that have an impact

A Java classic book with a wide range of influences and worth reading.

    • Effective Java (2nd Edition)
    • Java Concurrency in practice| Java Concurrent Programming Combat
    • Thinking in java| Chinese version
Podcast

Can be programmed while listening to something.

    • The Java Posse
Twitter

account that deserves attention.

  • Adam Bien: Freelance, writer, JavaOne star speaker, consultant, Java Champion.
  • Antonio Goncalves:java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, writer.
  • Arun Gupta:java Champion, JavaOne star speaker, JUG Leader, Devoxx4kids member, Red Hatter.
  • Bruno borges:oracle Product Manager, Java Jock.
  • Ed burns:oracle Technical Team consultant.
  • Eugen paraschiv:spring Security Course author.
  • James Weaver:java, JavaFX, IoT developer, author, and speaker.
  • Java Ee:java EE Twitter official account.
  • Java Magazine:java Magazine official account.
  • Java.net:Java.net official account.
  • Java:java Twitter official account.
  • Javin Paul: Well-known Java blog author.
  • Lukas eder:data geekery (JOOQ) founder and CEO.
  • Mario Fusco:redhatter, jug Coordinator, active lecturer and author.
  • Mark Reinhold:oracle, chief architect, Java Platform Development Group.
  • Martijn Verburg:london JUG Co-Leader, speakers, writers, Java champion, etc.
  • OPENJDK:OPENJDK official account.
  • Reza Rahman:java EE, GlassFish, WebLogic preacher, writer, speaker, open source hacker.
  • Simon Maple:java Champion, Virtualjug founder, LJC leader, rebellabs author.
  • Stephen Colebourne:java Champion, the speaker.
  • Tim Boudreau: Author, NetBeans Daniel.
  • Trisha Gee:java Champion, speaker.
Website

Worth reading the website.

    • Google Java Style
    • Infoq
    • Java Code Geeks
    • java.net
    • Javalobby
    • Javaworld
    • Rebellabs
    • The Java specialist ' Newsletter
    • TheServerSide.com
    • Thoughts on Java
    • Importnew (importnew focus on Java technology)

Java Programmer "Resource Encyclopedia"

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.