Differences in languages, as others have mentioned, are the most obvious and problematic. I also find that the differences in libraries are crazy at times and really waste a lot of time.
The "details" can really help you, for example, understanding how the memory model works, or how to optimize execution. With in-depth knowledge of the runtime memory model, garbage collection methods, streaming model, etc., you can create significant changes in the way you think and develop software.
I cannot intelligently compare Java vs C # data at this level, but I can say that many of the things that I will do in Java are uncomfortable or uncertain if I can do this in C # because I do not understand its low-level details, This affects the code that I write for everything from the interaction of the graphical user interface with memory management.
I found a better way to deal with the differences in Java and C #, just to think of them as completely different languages ββ- to avoid the trap of "C # and Java are basically in the same language with different class names."
James schek
source share