Java is a little harder to mod, but most mods are free, texture packs are also free, and its mostly unmonetised. bedrock is a more mainstream version that excels in letting you play with friends, switch between devices, and has a few minor features java doesn't have.
java is a more technical version in terms of modding and such, bedrock is a mainstream game that is heavily monetized, and easy to play with friends on.
bedrock is also much faster and more optimized than java, but java can be modded to make it run almost as good, but it is generally slower.
i prefer java, but bedrock is still minecraft, so they are both really good.