Bene, la chiave qui è la familiarità. IMHO, l'unico modo per raggiungere la familiarità è con la pratica: usa Spring, Hibernate, ecc. E aumenterai le tue conoscenze su di loro. Uno dei punti di forza dell'ecosistema Java è il gran numero di librerie / framework che hanno una grande documentazione: il manuale di riferimento di Spring è eccellente e la lettura ti insegnerà la maggior parte di ciò che c'è da sapere su Spring, ad esempio.
Alla fine, la programmazione è programmazione, e Java è un altro linguaggio imperativo orientato agli oggetti ed è molto simile a quello che hai fatto- esp. C #. La cosa importante che potresti non utilizzare in tutta la sua estensione è il tuo IDE. Java è un linguaggio tipizzato staticamente e molto suscettibile alla manipolazione del codice in grado di offrire alcune funzionalità IDE che spesso funzionano meglio dei linguaggi dinamici - refactoring automatico, codice migliore completo, migliore assistenza (es. Scorciatoia Ctrl + 1 di Eclipse, può fare cose come :
- deduce il tipo di un'espressione e crea una variabile del tipo corretto e assegna l'espressione ad essa
- estrae un frammento di codice in un metodo, deducendo i parametri e restituendo il tipo del metodo e sostituendolo con un'invocazione
- rinomina variabili e classi
- ...
, hai anche alcune sottigliezze come ctrl + shift + su estendendo una selezione sintatticamente). Ovviamente se hai già fatto Java o hai utilizzato Visual Studio, avresti già potuto farlo.
Inoltre vorrei menzionare che Spring ha "convention-over-configuration" in posti- esp. è il modulo MVC, che può prelevare automaticamente i tuoi controller, ecc. se li metti nel posto giusto ( link ).