Ich empfehle dir ebenfalls C oder C++, wenn du eins der beiden kannst, wird dir das andere nicht mehr schwer fallen.
Ich bin allerdings ebenfalls der Meinung, dass die Zeit nur für die Grundkenntnisse reichen wird.
Kannst du C, wird es dir auch leicht fallen, Local Vulns wie BoFs etc. zu verstehen, da C eingentlich gemacht für so etwas ist.
Hinterher würde ich dir dann die Grundlagen von Assembler empfehlen, sowohl für RE als auch zum schreibenvon eigenen kleinen Shellcodes (macht viel Spass )
Java ist Ansichtssache, leicht keine Frage,mir lags nie, wirst wohl selber testen müssen.