Java and C# (and a whole bunch others) are programming languages. They allow you to write literally any program you like, and that includes games of course.
Unity is not a programming language, it's a game engine. Put simply, it's a collection of useful stuff you typically need when you write a game, so you don't have to write it yourself. It does however make assumptions on how you program the game which you should follow or it won't work. Unity only supports C# as programming language, so using Unity implies programming in C#.
You mention pixel art. Unity is a 3D engine, ie you can make 3D games with it. 2D (ie all retro games) is also possible, mostly by ignoring the 3rd dimension. I don't have experience with Unity though, so I don't know exactly.
Another engine you can try is Godot. It seems also useful with C# (Mono actually, but that's just another implementation of C#).
Unfortunately, I lost my collection of links to useful engines, so I cannot give you a link to engines for Java.
As for starting, it really doesn't matter much what you pick, any choice is a good choice. So just pick an engine, and do some tutorials. play a bit with it to get a feel for it (write a really simple game!). Do the tutorials work for you? Is there enough documentation? Are there useful forums? Try a few, so you can make an informed choice.