average java developer