I think what's next to try and apply your knowledge of Java and do some programming. Come up with something you think would be useful (or fun) and then try to create it. Also, you can never get enough algorithms
These are fairly universal regardless of what language you use. Another good idea would be to learn about parallel programming and multi-threading. Also, you'll find that once you learn the basic CS topics and programming paradigms you can quickly pick up any language within a few weeks (you probably won't be an expert in that language, but that's ok).
Good algorithms/data structures/Concepts to learn about (this is by no means a complete set, just what I could come up with off the top of my head):
Heaps
Hash Tables/Dictionaries
Queues/Stacks
Linked lists (singularly linked and doubly linked)
Balanced binary trees (several methods)
Spatial data structures (Quad trees/Oct trees, KD trees, hierarchical grids and bounding volume hierarchies)
Set theory (at least the basics). Other math (particularly vector/matrix math) would also be very useful
Discrete mathematics
Event driven programming model
Reflection
Functional programming paradigm (you'll have to use a language other than Java)
Regular expressions and parsing algorithms/tools
Parallel programming (multi-threading, multiple processes, mutex's/locks, thread pooling)
dynamic programming
Algorithm analysis ("Big-O" notation and other analysis)
Root finding algorithms (bisection method, newton's method, secant method)
Numerical derivatives/integration algorithms
Linear algebra (solving simultaneous equations is a very good topic)
Monte Carlo methods and other stochastic methods
Graph/Map theory
Path finding algorithms (Dijkstra's algorithm, A*)
Computer learning and AI
Language wise, I would recommend learning C# and then C++. C# is very similar to Java, but it's also a bit closer (syntactically and semantically) to C++. I would recommend C++ over C because it has a good base in OO where-as C is mostly functional/procedural programming (useful for micro-controller programming, though some micro-controllers use C++). Python and/or matlab are also good languages (matlab if you're planning on doing scientific/engineering computations), but they're quite different than the above listed languages. You could also dabble with various web oriented technologies (HTML/CSS, JSP, Javascript, PHP, JavaEE which is basically Java). There are also hundreds of other languages you could learn.
What path you take really depends on what you want to end up doing with your programming knowledge.