Pues como te han dicho: para cualquier cosa. No es mejor ni peor que C++ o cualquier otro. Es diferente y tiene sus ventajas e inconvenientes.
Por lo demás en "que puede hacer" la respuesta mas simple sería echar un vistazo a sus librerías
http://docs.oracle.com/javase/8/docs/Si hablamos de la versión EE, entonces la versión 7
https://docs.oracle.com/javaee/7/api/Y si, hay mas librerías, por ejemplo todas las de Android (que son otras además de las anteriores)
https://developer.android.com/reference/packages.htmlDentro de lo que es su campo puedes desde manejar bases de datos, servicios web (también puede funcionar en el lado de servidor con Java EE) y lo que se te ocurra.
La mayor diferencia respecto a otros es que no es multiparadigma como por ejemplo C++, es un lenguaje íntegramente orientado al objeto.
Pero vamos, que lo mismo puedes hacer un cliente de BT que una página web que un programa de gestión de bases de datos que un TPV o lo que se te antoje