I had tried to learn C and C++ a few times before I finally succeeded. The prior times I had too little reason to do so, a factor which is quite important for me.
However, at some time a few years ago I got it in my head that I wanted to built an operating system. I got pretty far, I'd say, for someone who had only used VB.NET before that. I learnt C (and, later, C++ followed easily), and a bit of how to understand Assembler. And, I gained a much more thorough understanding of computers.
C/C++ is probably my favorite language, even though I haven't been using it very often lately.
Java is an interesting language. Its syntax is both similar to C/C++ and far from it. I have made two prototype applications with Java, and found it a quite easy language to learn.
I should, however, note that I did not use most of the standard Java drawing classes for my prototype applications. I was attempting to build GUI applications, but did not like the Java-based GUIs I had seen, so I wrote my own GUI system.