JAVA Framework for Artificial Intelligence, Machine Learning or Neural Network

Encog

Encog Machine Learning Framework is an advanced machine learning framework that supports a variety of advanced algorithms, as well as support classes to normalize and process data. Machine learning algorithms such as Support Vector Machines, Artificial Neural Networks, Genetic Programming, Bayesian Networks, Hidden Markov Models, Genetic Programming and Genetic Algorithms are supported. Most Encog training algoritms are multi-threaded and scale well to multicore hardware. Encog can also make use of a GPU to further speed processing time.

It was written by Jeff Heaton in the early 90s, and was the standard Java DL framework for a long time. I do not believe that Encog handles distributed computing, works with GPUs, Hadoop, Spark or Kafka, or takes into account many of the algorithmic advances in DL since 2006.

Neuroph 

Neuroph is lightweight Java neural network framework to develop common neural network architectures. It contains well designed, open source Java library with small number of basic classes which correspond to basic NN concepts. Also has nice GUI neural network editor to quickly create Java neural network components.
Neuroph is VERY focused on neural networks and you can express a connection between just about anything. For very custom/non-standard neural networks of different typologies than the typical Elman/Jordan, NEAT, HyperNEAT, Feedforward type networks, then Neuroph will fit the bill nicely.

Deeplearning4J

Deeplearning4j is the first commercial-grade, open-source, distributed deep-learning library written for Java and Scala. Integrated with Hadoop and Spark, DL4J is designed to be used in business environments, rather than as a research tool. Skymind is its commercial support arm.

It works on distributed CPUs or GPUs using Spark as an access layer. It's certified on CDH5 and soon on HDP... And it includes implementations of LSTMs (RNNs), deep convolutional nets, RBMs, DBNs and word2vec, among other neural nets. It is currently the most popular DL tool for the JVM, and one of the top 5 DL libraries in the world.

Deeplearning4j is powered by the numerical computing lib ND4J, or n-dimensional arrays for Java. Basically, they ported Numpy to the JVM. That makes DL4J extensible, and they are planning to add other algos like reinforcement learning in the near future. ND4J, in turn, runs on libND4J, a C++ library that makes the computation fast. They also built the vectorization library, Canova, that takes any type of data and turns it into a vector that neural nets can understand. They are also trying to solve some of the ETL problems upstream from NNs.