No matter what books you wanna buy, start by reading the official java tutorial: http://docs.oracle.com/javase/tutorial/[^]
It covers the language basics, and the Java SE libraries. Reading it will make it easier for you to decide which book is for you.
There are books "Java for C++ programmers" available. I like the books of Addison-Wesley (publisher).
There are different "editions" of the basic JAVA(SE - standard Editon), mostly Java EE (Enterprise Edition) and Java ME (mobile Editon). All of them base on Java SE and have additional functionality.
Terms like JSF and JSP describe a web related GUI.