I’ll second C# and Ruby as well as a firm grounding in C and C++.
C# when used with ASP.Net is also leaps and bounds above any web app done in Java.
C# has also developed delegates to replace method/object pointers and dynamic typing that makes possible dynamic type arrays which breaks arrays away from single typing.
C# has also revived pointers which provides the flexibility and more efficient processing that used to be available only in C/C++.
C++ is still the most versatile with capability to customize down to bit level manipulation.
If you’re going to do Web Development in Java, Apache Wicket is the only way to go, especially to incorporate JQuery/Twitter Bootstrap or other similar frameworks.