I wanted to get minecraft but what is the difference between the java and windows 10 version?
Java is a cross-platform programming language, Windows an operating system.
So if Windows were the car, Java would be a tire.
Java Edition
programmed in Java
Performance rather poor (an improvement can be achieved with Optifine)
no crossplay with PS4, XBox, Switch
free selection of skins, texture packs, mods, shaders
Large selection of servers
Bedrock Edition
programmed in C #
better performance
RayTracing
CrossPlay with PS4, XBox, Switch
Skins, Maps, TexturePacks only for real money
limited number of servers
The main differences:
The Bedrock Edition supports cross play with consoles (Switch, PS, Xbox)
However, the Bedrock Edition does not support mods in the conventional sense. You can only buy add-ons. The same applies to texture packs. You have to buy these. Not on the Java edition.
Oh yes - the Bedrock Edition does not run on Mac and Linux. The Java, however, does.
Windows 10 is the bedrock edition, so the same as on the mobile phone or the console, is good because of crossplay, but with the java edition you always have the latest updates and a larger selection of servers
The Java Edition has a poorer performance (you can counteract this with mods like Optifine), but it has more and larger servers, free skins, texture packs, mods and shaders.
Java does not actually have a crossplay between Bedrock and Java Edition, but there's a modification for Java Server that allows Bedrock players to play on a Java Servee (unfortunately, almost no server uses it: /).
The Bedrock Edition…
Has better performance and crossplay between cell phone, switch, etc. Without modification.
A lot costs money there (you can even buy some MAPS…), and the servers are rather limited.
There are also some (gamebreaking) bugs that have never really been fixed.
In addition, the Bedrock Edition is missing a few functions (Spectator Mode, Hardcore, …).
My favorite is therefore the Java Edition