I want to learn the programming skills in Java for Numerical Applications such as Machine Learning, Optimization, Data Mining, Pattern Recognition, etc.

Can anyone suggest a good textbook for Java Programming for the numerical applications?

Should I use a general Java programming textbook or a numerical-oriented book is enough?

Your suggestions will be very much appreciated! ;)