Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-11-2008, 11:50   #1
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
[Java] Chiarimento copia hard nel costruttore

mmm, la professoressa ha trattato il concetto di copia hard in Java...mi dite se ho capito bene o se mi sfugge qualcosa?

Faccio un esempio pratico: ho una classe chiamata Rettangolo che mi definisce dei rettangoli e delle operazioni su di essi:

Codice:
public class Rettangolo{
	
	public Punto Pbl, Ptr;	// Le variabili di istanza
Gli oggetti di tipo rettangolo sono identificati dalle variabili di istanza:
Pbl: il punto ineriore sinistro
Ptr: il punto superiore destro

in pratica definisco un rettangolo da 2 particolari dei suoi vertici diagonalmente opposti tra loro.

Ovviamente per funzionare la classe rettangolo ha bisogno del tipo di datp Punto definito proprio nella classe Punto:

Codice:
public class Punto{
	
	private double x,y;				// Sono le variabili di istanza che rappresentano le coordinate del punto
	
	
	/** Costruttore di oggetti istanza della classe Punto date le sue coordinate
	    @param x di tipo double: l'ascissa del punto da creare
	    @param y di tipo double: l'ordinata del punto da creare */
	
	public Punto(double x, double y){
		this.x = x;	   // La variabile di istanza x dell'oggetto da creare è ugale al valore del parametro x passato al costruttore
		this.y = y;    // La variabile di istanza y dell'oggetto da creare è ugale al valore del parametro y passato al costruttore
	}
che definisce un oggetto di tipo punto mediante le sue coordinate x ed y.

(in entrambe le classi non inserisco tutti i metodi se no sarebbe lunghissimo)

Se gli oggetti di tipo Punto non sono modificabili (per esempio non posso traslare un punto lungo l'asse x o y)
allora per la classe Rettangolo potrò usare un costruttore banale come

Codice:
public Retangolo(Punto P1, Punto P2){
        this.Pbl = P1;
        this.Ptr = P2;
}
che nelle variabili d'istanza di tipo Punto copia i riferimenti ai due punti e quindi il mio rettangolo sarà identificato da due oggetti di tipo Punto precedentemente creati (vabbè in questo caso ho anche semplificato assumendo che i punti passati fossero effettivamente i vertici inferiore sinistro e superiore destro).

Mettiamo ora caso che dentro la mia classe Punto ci voglio mettere due metodi: traslaLungoAsseX() e traslaLungoAsseY() che modificano l'oggetto punto cambiandone nel primo il valore dell'ascissa e nel secondo il valore dell'ordinata.
A questo punto avrei che le variabili di istanza della classe rettangolo (Punto Pbl, Ptr) sono 2 OGGETTI MODIFICABILI e sono nella cacca perchè se nel main traslo un punto che è anche vertice di un rettangolo ne consegue che ho modificato anche il rettangolo che avevo precedentemente creato e ciò potrebbe essere disastroso...allora se le variabili di istanza della classe Rettangolo sono oggetti modificabili devo usare un costruttore che fà la COPIA HARD. Cioè io al costruttore gli passo due oggetti di tipo Punto P1 e P2 e lui invece di assegnare ai vertici Pbl e Ptr il riferimento a P1 e P2 ne fà prima una copia edattribuisce ai miei vertici la copia...così se qualcuno modifica i punti di partenza nel main non va a smerdare anche il rettangolo costruito.

quindi avrò qualcosa del genere come nuovo costruttore sicuro:

Codice:
public Rettangolo(Punto P1, Punto P2){
		
		if(P1.getAscissa() < P2.getAscissa()){			
			if(P1.getOrdinata < P2.getOrdinata()){	// Se l'ascissa di P1 è minore dell'ascissa di P2 e se l'ordinata di P1 è  minore dell'ordinata di P2
				Pbl = new Punto(P1.getAscissa(), P1.getOrdinata());
				Ptr = new Punto(P2.getAscissa(), P2.getOrdinata());
			}
			else{	   // Se l'ascissa di P1 è minore dell'ascissa di P2 e se l'ordinata di P1 è maggiore dell'ordinata di P2 
				Pbl = new Punto(P1.getAscissa(), P2.getOrdinata());
				Ptr = new Punto(P2.getAscissa(), P1.getOrdinata());
			}
		}
		else{
			if(P1.getOrdinata < P2.getOrdinata){   // Se l'ascissa di P1 è maggiore dell'ascissa di P2 e se l'ordinata di P1 è minore dell'ordinata di P2
				Pbl = new Punto(P2.getAscissa, P1.getOrdinata);
				Ptr = new Punto(P1.getAscissa, P2.getOrdinata):
			}
			else{	// Se l'ascissa di P1 è maggiore dell'ascissa di P2 e se l'ordinata di P1 è maggiore dell'ordinata di P2
				Pbl = new Punto(P2.getAscissa(), P2.getOrdinata);
				Ptr = new Punto(P1.getAscissa(), P1.getOrdinata);
			}
    }
(In questo caso ho gestito anche le eventualità che i 2 punti passati al costruttore non siano esattamente i vertici inferiore sinistro e superiore destro facendo in modo che se li ricavi e costruisca di conseguenza il rettangolo)

E' correto come ragionamento?

Grazie
Andrea
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2008, 12:12   #2
khelidan1980
Senior Member
 
L'Avatar di khelidan1980
 
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
non capisco la necessità di traslare i punti,se ti servono altre coordinate non puoi istanziare nuovi punti?
__________________
Khelidan
khelidan1980 è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2008, 12:34   #3
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da khelidan1980 Guarda i messaggi
non capisco la necessità di traslare i punti,se ti servono altre coordinate non puoi istanziare nuovi punti?
era solo un esempio della proff per far vedere i problemi con oggetti modificabili, anche lei ci ha detto di usarli il meno possibile ma ci ha fatto vedre come gestirli con la copia hard nel costruttore se proprio dovessero esserci.
Cmq è corretto il mio ragionamento?
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2008, 13:14   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Sì è corretto.
Ed il motivo è molto semplice: in Java, quando passi come parametri a dei metodi delle variabili non primitive (cioè gli oggetti) in realtà non stai passando l'oggetto vero e proprio ma solo una variabile reference "che punta" a quell'oggetto.

Il che significa che se, dentro a un costruttore di una classe Rettangolo che prende in ingresso due reference a due oggetti Punto, fai così:
Codice:
class Rettangolo
{
    Punto p1;   // reference ad un oggetto Punto
    Punto p2;
    ...
    public Rettangolo(Punto p1, Punto p2)
    {
        // copio la reference passata come parametro 
        // nella reference mantenuta da questa istanza di Rettangolo:
        // entrambe le due distinte reference puntano allo stesso oggetto Punto
        this.p1 = p1;
        this.p2 = p2;
    }
}
una modifica esterna del Punto si riflette anche per quell'istanza di Rettangolo.

Se invece fai così:
Codice:
class Rettangolo
{
    Punto p1;   // reference ad un oggetto Punto
    Punto p2;
    ...
    public Rettangolo(Punto p1, Punto p2)
    {
        // uso la reference passata come parametro per creare un nuovo
        // oggetto Punto che poi "attacco" alla reference mantenuta da questa
        // istanza di Rettangolo:
        // le due distinte reference puntano a due diversi oggetti Punto
        this.p1 = new Punto(p1.x(), p1.y());
        this.p2 = new Punto(p2.x(), p2.y());
    }
}
una modifica esterna del Punto non tocca l'altro Punto istanziato dentro Rettangolo proprio perchè sono due oggetti diversi.

Ricordati sempre la differenza tra reference e oggetto in Java:
Codice:
REFERENCE       = OGGETTO
Punto reference = new Punto(15, 200);
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2008, 18:51   #5
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Ok perfetto...vediamo se ho capito bene tutto il tuo ragionamento
Se per esempio volessi inserire nella classe Rettangolo un secondo costruttore che passatogli 4 parametri double x1,y1, x2,y2 che sono le coordinate dei due vertici diagonalmente opposti costruisce un rettangolo, quindi:

Codice:
/** 2) Costruisce un oggetto di tipo Rettangolo date le coordinate di due suoi punti  diagonalmente opposti.
    	@param x1 di tipo int: è l'ascissa del primo punto
    	@param y1 di tipo int: è l'ordinata del primo punto
    	@param x2 di tipo int: è l'ascissa  del secondo punto
    	@param y2 di tipo int: è l'ordinata del secondo punto */
    
    public Rettangolo(double x1, double y1, double x2, double y2){
	    
	    /* Costruisce un rettangolo date le coordinate dei suoi punti diagonalmente opposti */
	    Pbl = new Punto(x1,y1);
	    Ptr = new Punto(x2,y2);
    }
Questo costruttore così com'è non dovrebbe creare problemi di sicurezza in quanto io non gli stò passando oggetti modificabili come parametri ma 4 valori di tipo double che sono valori primitivi e lui dentro al costruttore và a creare i 2 oggetti di tipo Punto che attribuirà alle variabili Pbl e Ptr che rappresentano i 2 vertici significativi della mia classe Rettangolo e gli oggetti di tipo Rettangolo che istanzio con questo costruttore non corrono rischi di essere alterati dall'esterno.
Giusto?
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2008, 19:50   #6
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Giusto!
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2008, 19:52   #7
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
Giusto!
mamma mia quanto sono bravooo
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2008, 20:06   #8
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
mmm altro dubio...sulle mie dispense la proff fà tutta una cosa lunga per fare un metodo che restituisce il riferimento al vertice inferiore sinistro di un rettangolo...secondo voi questa mia semplice versione è valida:

Codice:
 public Punto getBottomLeftCorner(){
	    Punto P = new Punto(Pbl.getAscissa(), Ptr.getOrdinata());
	    return P;								
    }
(Ovviamente usando solo il primo costruttore)
Visto che il primo costruttore dati due punti qualsiasi si occupa di costruire un rettangolo definito dal vertice inferiore sinistro (Pbl) e dal vertice superiore destro (Ptr) andandosi a calcolare i corretti Pbl e Ptr.

A questo punto nel mio metodo posso fare una copia hard di Pbl e restituire il riferimento al nuovo punto, ci può stare?

Grazie
Andrea
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2008, 22:50   #9
malocchio
Senior Member
 
L'Avatar di malocchio
 
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
Quote:
Originariamente inviato da D4rkAng3l Guarda i messaggi
mmm altro dubio...sulle mie dispense la proff fà tutta una cosa lunga per fare un metodo che restituisce il riferimento al vertice inferiore sinistro di un rettangolo...secondo voi questa mia semplice versione è valida:

Codice:
 public Punto getBottomLeftCorner(){
	    Punto P = new Punto(Pbl.getAscissa(), Ptr.getOrdinata());
	    return P;								
    }
(Ovviamente usando solo il primo costruttore)
Visto che il primo costruttore dati due punti qualsiasi si occupa di costruire un rettangolo definito dal vertice inferiore sinistro (Pbl) e dal vertice superiore destro (Ptr) andandosi a calcolare i corretti Pbl e Ptr.

A questo punto nel mio metodo posso fare una copia hard di Pbl e restituire il riferimento al nuovo punto, ci può stare?

Grazie
Andrea
Non vedo il motivo per cui dovresti passare un nuovo oggetto Punto...
Visto che la variabile d'istanza (o meglio l'oggetto a cui punta) non è modificabile, puoi passare direttamente quel riferimento.

ovvero:
Codice:
return this.Pbl
__________________
malocchio è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 00:54   #10
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da D4rkAng3l Guarda i messaggi
mmm altro dubio...sulle mie dispense la proff fà tutta una cosa lunga per fare un metodo che restituisce il riferimento al vertice inferiore sinistro di un rettangolo...secondo voi questa mia semplice versione è valida:
No, se vuoi il vertice inferiore sinistro... Se vuoi quello superiore sinistro, allora sì.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 11:17   #11
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da malocchio Guarda i messaggi
Non vedo il motivo per cui dovresti passare un nuovo oggetto Punto...
Visto che la variabile d'istanza (o meglio l'oggetto a cui punta) non è modificabile, puoi passare direttamente quel riferimento.

ovvero:
Codice:
return this.Pbl
Punto è un oggetto modificabile perchè come detto nei post precedenti l'esercizio è fatto per avere un metodo traslaLungoX ed un altro metodo traslaLungoY che traslano un punto lungo l'asse X o l'asse Y modificandone le coordinate
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 11:17   #12
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
No, se vuoi il vertice inferiore sinistro... Se vuoi quello superiore sinistro, allora sì.
mm? che intendi?!?! Pbl contiene il vertice inferiore sinistro e stà per point bottom left
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 12:57   #13
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da D4rkAng3l Guarda i messaggi
mm? che intendi?!?! Pbl contiene il vertice inferiore sinistro e stà per point bottom left
Appunto:

Da che coordinate stai creando il nuovo oggetto Punto? Ricontrolla, e guarda che vertice individuano.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 13:00   #14
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Appunto:

Da che coordinate stai creando il nuovo oggetto Punto? Ricontrolla, e guarda che vertice individuano.
mmm temo di non capire...ho fatto qualche errore nel costruttore?mi sò perso tra ascisse ed ordinate? dove?
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 13:04   #15
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da D4rkAng3l Guarda i messaggi
Codice:
 public Punto getBottomLeftCorner(){
	    Punto P = new Punto(Pbl.getAscissa(), Ptr.getOrdinata());
	    return P;								
    }
Il problema è che prendi l'ascissa di un vertice e l'ordinata dell vertice opposto, come ti ho fatto vedere nel grafico di prima: segui le linee e vedi dove si incrociano!
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 13:26   #16
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Il problema è che prendi l'ascissa di un vertice e l'ordinata dell vertice opposto, come ti ho fatto vedere nel grafico di prima: segui le linee e vedi dove si incrociano!
ahhh sisi è sbagliato giustoma chissene frega...alla fine nel mio programma visto che ho 2 costruttori di cui il secondo prende semplicemente le coordinate di 2 punti per attribuirli ai due punti che definiscono i vertici senza preoccuparsi che siano due vertici Pbl e Ptr (che ora si chiamano semoplicemente punto1 e punto2):

Codice:
public Rettangolo(double x1, double y1, double x2, double y2){
	    
	    /* Costruisce un rettangolo date le coordinate dei suoi punti diagonalmente opposti */
	    punto1 = new Punto(x1,y1);
	    punto2 = new Punto(x2,y2);
    }
allora ho creato un metodo più complesso per restituire il vertice inferiore sinistro che fà tutti i dovuti controllini:

Codice:
/** Restituisce il riferimento ad un oggetto di tipo Punto corrispondente al vertice dell'angolo inferiore sinistro */
    
    public Punto getBottomLeftCorner(){
	    double nuovaAscissa, nuovaOrdinata;					// Per creare un nuovo punto
	    Punto P;                                            // Il nuovo punto da restituire
	    
	    if(punto1.getAscissa()<=punto2.getAscissa() && punto1.getOrdinata()<=punto2.getOrdinata())
	    	P = new Punto(punto1.getAscissa, punto1.getOrdinata);
	    else if(punto1.getAscissa()>punto2.getAscissa() && punto1.getOrdinata()>punto2.getOrdinata())
	    	P = new Punto(punto1.getAscissa, punto2.getOrdinata);
	    else{
		    if(punto1.getAscissa()<=punto2.getAscissa())
		    		nuovaAscissa = punto1.getAscissa();
		    else nuovaAscissa = punto2.getAscissa();
	    	
		    if(punto1.getOrdinata()<=punto2.getOrdinata())
	    			nuovaOrdinata = punto1.getOrdinata();
	    	else nuovaOrdinata = punto2.getOrdinata();
	    	
	    	P = new Punto(nuovaAscissa,nuovaOrdinata);
    	}
    	
    	return P;				// Ritorna il riferimento al punto creato
	 }
carino ve?
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 14:32   #17
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Non basta scegliere il minimo tra i due sia nel caso dell'ascissa che dell'ordinata?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 18:15   #18
malocchio
Senior Member
 
L'Avatar di malocchio
 
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
Quote:
Originariamente inviato da D4rkAng3l Guarda i messaggi
Punto è un oggetto modificabile perchè come detto nei post precedenti l'esercizio è fatto per avere un metodo traslaLungoX ed un altro metodo traslaLungoY che traslano un punto lungo l'asse X o l'asse Y modificandone le coordinate
Ah, OK scusami, spero di non aver creato confusione.
Non avevo capito che ti servisse proprio avere quei 2 metodi.

EDIT: stavo pensando, il metodo clone() è considerato sicuro per fare copie hard oppure no?
Cioè un programmatore che vuole fare copia hard nel suo costruttore può usare tranquillamente il clone (sempre che sia implementato, cosa abbastanza rara) oppure preferisce usare un new con i vari get*() ??? Ci si fida oppure no dei clone() scritti da altri?

Penso sia un questione abbastanza teologica... che dicono i padri di Java?
__________________

Ultima modifica di malocchio : 29-11-2008 alle 18:26.
malocchio è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 18:37   #19
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da malocchio Guarda i messaggi
Ah, OK scusami, spero di non aver creato confusione.
Non avevo capito che ti servisse proprio avere quei 2 metodi.

EDIT: stavo pensando, il metodo clone() è considerato sicuro per fare copie hard oppure no?
Cioè un programmatore che vuole fare copia hard nel suo costruttore può usare tranquillamente il clone (sempre che sia implementato, cosa abbastanza rara) oppure preferisce usare un new con i vari get*() ??? Ci si fida oppure no dei clone() scritti da altri?

Penso sia un questione abbastanza teologica... che dicono i padri di Java?
non saprei...a noi la proff clone() non ce lo ha mai neanche mensionato..c'è da dire che è il nostro primo esame di java...quindi booo
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 18:59   #20
malocchio
Senior Member
 
L'Avatar di malocchio
 
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
Mi auto-rispondo:
sulle questioni religiose non so, ma ho trovato un pagina interessante riguardo il metodo clone() e i vari problemi che possono nascere con questo:

http://java.sun.com/developer/JDCTec...6.html#cloning
__________________
malocchio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
NVIDIA mette a tacere i timori della bol...
Col Black Friday partono anche gli scont...
I ribassi più pesanti del vero Bl...
Settimana del Black Friday: pioggia di s...
Speciale Blay Friday Dyson, sconti mai v...
I portatili più scontati del Blac...
WiFi al massimo: gli ASUS più pot...
Domotica in super sconto: tado° e Ne...
Black Friday Amazon: smartphone top a pr...
Black Friday 2025: tutte le migliori off...
Speciale Black Friday TV: 14 modelli sup...
Black Friday Amazon: le migliori offerte...
Tanti droni DJI scontati per il Black Fr...
Anche l'ISRO ha rilasciato alcune inform...
La NASA mostra le nuove immagini della c...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:40.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v