Sono in cerca di lavoro. E nel mio CV ho inserito una lista di abilità come:
Skills: C/C++/Java/...
La domanda più comune che ho ricevuto è: "hem, dal momento che hai familiarità con C ++ e Java, puoi dire alcune somiglianze o differenze tra le due lingue."
E non so come rispondere, ciò che ho detto è fondamentalmente alcuni dettagli del livello di linguaggio come se avessero alcune parole chiave diverse come Interface
, abstract
e così via. Voglio vedere un confronto ad alto livello come la differenza in generics
, garbage collector
e così via.
Almeno voglio andare in profondità in un lato, cioè nella gestione delle risorse. Java non ha una durata per un oggetto, questo è gestito da garbage collector
, e in C ++ devi gestire attentamente la tua risorsa specialmente per heap
. In C ++ possiamo ridurre notevolmente la perdita di memoria introducendo RAII
, usando object per gestire la memoria heap, e lo stesso vale per le altre risorse come connection
, lock
e così via. Non sono sicuro di cosa fare in Java, perché il garbage collector può essere solo un utile strumento per la gestione della memoria heap (AFAIK).
Domanda : come possiamo gestire altre risorse in una situazione in cui non abbiamo un distruttore per eseguire tutte queste operazioni automaticamente? Dobbiamo garantire manualmente che le risorse vengano restituite nel posto giusto. E come?