Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-01-2008, 23:44   #101
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
e invece sbagli perchè nella definizione che tu stesso hai quotato non c'è scritto da nessuna parte che viene passato l'indirizzo della variabile.
nel passaggio per riferimento il parametro è la variabile che passi come parametro. sono proprio la stessa area di memoria, stesso L-value.
e come la identifichi questa benedetta area di memoria se non tramite il suo indirizzo? se vuoi che il metodo lavori con quella stessa identica area di memoria dovrai passargli il suo indirizzo, no? altrimenti cosa gli passi? o gli passi il valore o gli passi l'indirizzo... nel primo caso non usi la stessa area di memoria, quindi fai te... o ci sono altre alternative?

e, esattamente come hai detto tu, quando considero il passaggio "concettuale" di un oggetto ottengo che il metodo lavora con lo stesso oggetto puntato dal reference passato come parametro. guarda un po', proprio come da te descritto a proposito del passaggio per riferimento

se mi spiegassi cosa accade sullo stack forse ci capiremmo una volta per tutte

Ultima modifica di mad_hhatter : 20-01-2008 alle 23:47.
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2008, 23:58   #102
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
leggi la mia risposta al suo post
il suo post è chiaro. come è evidente dal metodo addNumber nell'ArrayList non dovrebbero esserci elementi duplicati, ma a causa del fatto che considero le cose a livello di oggetti astratti non mi rendo conto che restituendo l'oggetto "rep" espongo la rappresentazione dell'oggetto "prova". e come conseguenza posso inserire elementi duplicati in prova.
uno che pensa in termini di riferimenti non avrebbe mai scritto una porcheria simile.
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
ma allora non ci capiamo! io sto parlando dell'oggetto!!! e' chiaro che se consideri il fatto che passi un reference type e lo passi per valore il parametro formale e quello "actual" hanno indirizzi differenti, questo nessuno mai lo ha messo in dubbio in questo thread. MA se io voglio pormi dal punto di vista dell'oggetto rappresentato da questo benedetto reference type allora si' che formal e actual parater hanno lo stesso indirizzo (per forza, uso due reference type che sono uno la copia dell'altro e quindi puntano allo stesso oggetto). quindi se io considero essere l'oggetto il parametro, sempre solo a livello concettuale, il comportamento che ottengo e' analogo al passaggio per riferimento (ripeto, considerando come parametro l'oggetto)
il passaggio dei parametri coinvolge sole variabili. una volta appurato che le variabili non contengono mai oggetti il resto del tuo discorso è privo di senso.

Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
e come la identifichi questa benedetta area di memoria se non tramite il suo indirizzo? se vuoi che il metodo lavori con quella stessa identica area di memoria dovrai passargli il suo indirizzo, no? altrimenti cosa gli passi? o gli passi il valore o gli passi l'indirizzo... nel primo caso non usi la stessa area di memoria, quindi fai te... o ci sono altre alternative?

e, esattamente come hai detto tu, quando considero il passaggio "concettuale" di un oggetto ottengo che il metodo lavora con lo stesso oggetto puntato dal reference passato come parametro. guarda un po', proprio come da te descritto a proposito del passaggio per riferimento

se mi spiegassi cosa accade sullo stack forse ci capiremmo una volta per tutte
ma chissenefrega di cosa succede nello stack dico io
il compilatore gestirà in maniera opportuna questa cosa.. l'importante è che il parametro abbia lo stesso L-value della variabile che passi come parametro. se è così stiamo parlando di passaggio per riferimento.
il "passaggio concettuale" degli oggetti l'hai inventato tu, perciò non so cosa dirti. l'unica cosa certa è che non si tratta di passaggio di parametri per riferimento, perchè quello non l'hai inventato te ed ha una definizione ben precisa
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 00:31   #103
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
il suo post è chiaro. come è evidente dal metodo addNumber nell'ArrayList non dovrebbero esserci elementi duplicati, ma a causa del fatto che considero le cose a livello di oggetti astratti non mi rendo conto che restituendo l'oggetto "rep" espongo la rappresentazione dell'oggetto "prova". e come conseguenza posso inserire elementi duplicati in prova.
uno che pensa in termini di riferimenti non avrebbe mai scritto una porcheria simile.
ah si'? e perche' mai pensare in termini di riferimenti avrebbe impedito di esporre quella che tu chiami rappresentazione dell'oggetto prova? giuro che non vedo il nesso. gradirei una dimostrazione di quanto hai appena affermato.

in ogni caso rep NON e' la rappresentazione di prova: prova contiene un arrayList, rep e' un arrayList... ti sembra la stessa cosa? anche ragionando in termini astratti sono 2 oggetti completamente diversi che espongono 2 comportamenti assolutamente diversi.

Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
il passaggio dei parametri coinvolge sole variabili. una volta appurato che le variabili non contengono mai oggetti il resto del tuo discorso è privo di senso.
ancora? ma possibile che debba ripeterlo in ogni singolo post?! voglio considerare la cosa dal punto di vista dell'oggetto rappresentato da una variabile!!! e' una analisi illecita per caso?

Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
ma chissenefrega di cosa succede nello stack dico io
il compilatore gestirà in maniera opportuna questa cosa.. l'importante è che il parametro abbia lo stesso L-value della variabile che passi come parametro. se è così stiamo parlando di passaggio per riferimento.
il "passaggio concettuale" degli oggetti l'hai inventato tu, perciò non so cosa dirti. l'unica cosa certa è che non si tratta di passaggio di parametri per riferimento, perchè quello non l'hai inventato te ed ha una definizione ben precisa
io non devo e non voglio inventare nulla... sto soltanto analizzando un comportamento.

e' proprio cercando di analizzare cosa avviene sullo stack che mi porta a discutere del fatto che e' come se l'oggetto venisse passato per riferimento!

avanti, ancora una volta... dal solito link:
"reference
The L-value of the formal parameter is set to the L-value of the actual parameter. In other words, the address of the formal parameter is the same as the address of the actual parameter. Any modifications to the formal parameter also immediately affect the actual parameter. FORTRAN only has reference mode (expressions are evaluated and stored in a temporary location in order to obtain an L-value). C++ has reference parameters by putting a & before the formal parameter name in the function header. Reference mode can be simulated in C using pointers and adding the & to the actual parameter and dereferencing the formal parameter within the function."

toh guarda, anche quel link super rigoroso adotta un'espressione che suona come un "e' come se"... la consideri un'imperdonabile fonte di fraintendimenti ed errori anche quella?

ma quello che mi preme e': se considero per un momento l'oggetto, non la variabile, come parametro ho proprio che copiando il valore del reference type si ha la situazione in cui "the address of the formal parameter is the same as the address of the actual parameter" dove, ripeto, parameter qui indico (io, volutamente, cosciente del fatto che tecnicamente cio' non corrisponde a quello che realmente viene passato) l'oggetto, non la variabile. neghi che cio' sia vero?

in alternativa rispondi a questa domanda:
sia b un oggetto, di tipo B, rappresentato dal riferimento rb e sia f(B p) un metodo.
dei tipi di passaggio di parametri elencati al solito link, quale descrive la relazione tra p e b quando invoco f(rb)?

Ultima modifica di mad_hhatter : 21-01-2008 alle 00:34.
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 00:49   #104
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
ancora? ma possibile che debba ripeterlo in ogni singolo post?! voglio considerare la cosa dal punto di vista dell'oggetto rappresentato da una variabile!!! e' una analisi illecita per caso?
nel caso del passaggio di parametri sì. perchè i parametri sono variabili.
potresti definire il passaggio di oggetti, ma di sicuro se parliamo di passaggio di parametri (e in questo thread è quello che stiamo facendo) stiamo parlando di variabili e quindi non di oggetti (nel caso di java).

Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
io non devo e non voglio inventare nulla... sto soltanto analizzando un comportamento.

e' proprio cercando di analizzare cosa avviene sullo stack che mi porta a discutere del fatto che e' come se l'oggetto venisse passato per riferimento!

avanti, ancora una volta... dal solito link:
"reference
The L-value of the formal parameter is set to the L-value of the actual parameter. In other words, the address of the formal parameter is the same as the address of the actual parameter. Any modifications to the formal parameter also immediately affect the actual parameter. FORTRAN only has reference mode (expressions are evaluated and stored in a temporary location in order to obtain an L-value). C++ has reference parameters by putting a & before the formal parameter name in the function header. Reference mode can be simulated in C using pointers and adding the & to the actual parameter and dereferencing the formal parameter within the function."

toh guarda, anche quel link super rigoroso adotta un'espressione che suona come un "e' come se"... la consideri un'imperdonabile fonte di fraintendimenti ed errori anche quella?

ma quello che mi preme e': se considero per un momento l'oggetto, non la variabile, come parametro ho proprio che copiando il valore del reference type si ha la situazione in cui "the address of the formal parameter is the same as the address of the actual parameter" dove, ripeto, parameter qui indico (io, volutamente, cosciente del fatto che tecnicamente cio' non corrisponde a quello che realmente viene passato) l'oggetto, non la variabile. neghi che cio' sia vero?

in alternativa rispondi a questa domanda:
sia b un oggetto, di tipo B, rappresentato dal riferimento rb e sia f(B p) un metodo.
dei tipi di passaggio di parametri elencati al solito link, quale descrive la relazione tra p e b quando invoco f(rb)?
simulare non vuol dire essere. proprio dal fatto che c'è scritto che in C si può "simulare" il passaggio per riferimento si capisce che in C non esiste il passaggio per riferimento. per java è la stessa cosa.

per rispondere all'ultima tua domanda:
immagino che è sottointeso che parliamo di java, quindi senza ombra di dubbio passaggio per valore.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 01:00   #105
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
nel caso del passaggio di parametri sì. perchè i parametri sono variabili.
potresti definire il passaggio di oggetti, ma di sicuro se parliamo di passaggio di parametri (e in questo thread è quello che stiamo facendo) stiamo parlando di variabili e quindi non di oggetti (nel caso di java).


simulare non vuol dire essere. proprio dal fatto che c'è scritto che in C si può "simulare" il passaggio per riferimento si capisce che in C non esiste il passaggio per riferimento. per java è la stessa cosa.

per rispondere all'ultima tua domanda:
immagino che è sottointeso che parliamo di java, quindi senza ombra di dubbio passaggio per valore.
colpa mia, colpa mia... devo ricordarmi di essere rigoroso: riformulo la domanda:
sia b un oggetto, di tipo B, rappresentato dal riferimento rb e sia f(B p) un metodo.
dei tipi di passaggio di parametri elencati al solito link, quale descrive la relazione tra l'oggetto rappresentato da p e l'oggetto b quando invoco f(rb)?

certo simulare non significa essere, appunto per questo ho sempre aggiunto le espressioni "e' come se", "concettualmente", "abuso di notazione", "ragionamento astratto". non sto analizzando cosa e' in java, sto analizzando come si puo' concettualizzare (a puro scopo di analisi) in maniera alternativa un aspetto molto particolare e circoscritto.

resto in attesa della dimostrazione che ragionare in termini di riferimenti impedisce errori come quello descritto nell'esempio visto in precedenza (posto che si possa parlare di errore visto che si sono usati due oggetti completamenti diversi di proposito)

PS: @lovaz: sono quasi allo stremo delle forze

Ultima modifica di mad_hhatter : 21-01-2008 alle 01:05.
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 01:10   #106
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
colpa mia, colpa mia... devo ricordarmi di essere rigoroso: riformulo la domanda:
sia b un oggetto, di tipo B, rappresentato dal riferimento rb e sia f(B p) un metodo.
dei tipi di passaggio di parametri elencati al solito link, quale descrive la relazione tra l'oggetto rappresentato da p e l'oggetto b quando invoco f(rb)?
ho già risposto che è passaggio per valore, comunque commetti un errore di fondo perchè il passaggio dei parametri agisce sulle variabili, quindi non sugli oggetti. ancora una volta.. se vuoi inventare la definizione di passaggio di oggetti non so cosa dirti. ma per favore non chiamarlo passaggio di parametri per riferimento, perchè quella è un'altra cosa
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
certo simulare non significa essere, appunto per questo ho sempre aggiunto le espressioni "e' come se", "concettualmente", "abuso di notazione", "ragionamento astratto". non sto analizzando cosa e' in java, sto analizzando come si puo' concettualizzare in maniera alternativa un aspetto molto particolare e circoscritto.
simulare non è equivalente a "è come se", "concettualmente" ecc..
infatti il passaggio dei parametri usato da java per gli oggetti non è come se fosse per riferimento, altrimenti potresti fare le cose che fai in C++ (vedi esempi nelle pagine precedenti). e non è nemmeno concettualmente la stessa cosa visto che si parla di riferimenti passati per valore mentre tu dici che gli oggetti sono passati per riferimento. è proprio un concetto diverso
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
PS: @lovaz: sono quasi allo stremo delle forze
e non sei l'unico

tiger help meeeeee!!
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:00   #107
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
6 pagine per discutere sul passaggio di parametri in Java?

E' per valore. E' scritto nelle specifiche. E' così che lavora il compilatore.

Fine della questione.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:45   #108
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
6 pagine per discutere sul passaggio di parametri in Java?

E' per valore. E' scritto nelle specifiche. E' così che lavora il compilatore.

Fine della questione.

è da tempo immemore che sto cercando di farglielo capire...
e il bello è che mi sono dovuto anche smazzare le specifiche per quotare il punto esatto dove veniva enunciato dato che ancora questi insistono che nelle specifiche non è scritto in nessun posto..
E dopo averlo riportato quanti hai visto che hanno quotato il mio messaggio?
NESSUNO.
Continuano ad interpretare MALE quanto scritto nei due link che avevo postato precedentemente senza cercare di capirne le parole nell'ottica di quanto scritto nelle specifiche, ovvero:
Quote:
4. Method parameters (§8.4.1) name argument values passed to a method. For every parameter declared in a method declaration, a new parameter variable is created each time that method is invoked (§15.12). The new variable is initialized with the corresponding argument value from the method invocation. The method parameter effectively ceases to exist when the execution of the body of the method is complete.
Non c'è altro da aggiungere.
Tradotto in italiano, nel caso fosse questa la difficoltà, le specifiche dicono chiaramente che:
Per ogni parametro dichiarato nella signature di un metodo, viene creata una variabile a seguito di ogni invocazione. La nuova variabile è quindi inizializzata con il corrispondente valore ricevuto dall'invocazione del metodo (viene effettuata una copia N.D.T.). Il parametro del metodo cessa definitivamente di esistere alla conclusione del esecuzione del corpo del metodo.

Quindi il passaggio per riferimento non esiste, ma, al massimo, solo ed esclusivamente per i reference type, esiste il passaggio per copia del riferimento, che è cosa semanticamente differente.
E dopo questo spero sia chiaro perchè, sinceramente, meglio delle specifiche del linguaggio Java non lo so spiegare.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 09:56   #109
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Chiarissimo e d'accordissimo. Anzi, per me è a dir poco lapalissiano. Spero che la cosa finisca qui, perché, davvero non ha proprio senso continuare.

Sui reference... beh... sono valori.

Le variabili definite con tipi "standard" contengono dati "standard"? Va benissimo. Sono valori / dati.

Le variabili definite come istanze contengo l'indirizzo dell'area di memoria allocata per l'oggetto. E' un dato? Sì. Va benissimo anche questo. Sono valori / dati.

In entrambi i casi, quando vengono passate come parametri, cosa si fa? Una COPIA del valore. Che corrisponde al dato "standard" nel primo caso, e all'indirizzo dell'area di memoria nel secondo caso. Ma sempre una COPIA DEL VALORE CONTENUTO NELLA VARIABILE è!

A meno che non si debba considerazione come "valore" un indirizzo di memoria, ma a questo punto vorrei capire la differenza fra copiare i 4 byte di un intero a 32 bit e copiare i 4 byte di un indirizzo di memoria (su macchine a 32 bit) quando un oggetto "reference" viene passato come parametro.

Vorrei capirlo perché, se non è così, credo di avere evidenti difficoltà cognitive, e ho bisogno di essere illuminato.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 10:11   #110
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
@^TiGeRShArK^

io non ho bisogno di quotare le tue citazioni dalle specifiche del ling java: so benissimo che in java il passaggio dei parametri è esclusivamente per valore, come ho più volte puntualizzato nei miei post.

se non è ancora chiaro qual è il punto di vista da cui sto considerando la faccenda non so cosa farci, làho già ripetuto fino alla nausea.

se non è ancora chiaro non sto tentando di dare una nuova definizione di cose già perfettamente definite, sto soltanto facendo delle considerazioni. se tu a queste considerazioni mi rispondi con le spec sulle quali siamo già tutti in accordo non so cosa ti aspetti che ti risponda

@cdimauro

non sto discutendo delle specifice, sto facendo un'analisi sull'implicazione di tali specifiche quando si consideri non il reference type ma l'oggetto da esso rappresentato.

@tutti

comincio a chiedermi a che pro continuare a discutere visto che proseguiamo su 2 binari che non sembrano avere possibilità di incontrarsi
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 10:21   #111
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Ok...
allora quando parliamo di qualcosa è inutle appellarsi alle specifiche...
E' un pò come dire........
dissertare sulla caduta dei gravi senza considerare la forza di gravità.
Se noi usiamo uno strumento, mi pare il minimo attenersi alle specifiche di quello strumento quando si fa una discussione, altrimenti tutti potrebbero iniziare a dire cose senza senso.
Stai facendo praticametne lo stesso discorso dell'Intelligent Design quando non consideri le specifiche.
Poichè ottieni quel risultato allora *potrebbe essere che*, *concettualmente avviene* e cose del genere.
Ma quelle sono solo rappresentazioni ipotetiche del problema che non hanno alcuna attinenza con la realtà.
Esattamente come la teoria del Flying Spaghetti Monster che ha la stessa valenza dell'Intelligent Design.
La realtà è una: In java esiste solo ed esclusivametne il passaggio per valore.
Poi tu e lovaz potete pensarla come volete, siete liberissimi di farlo.
Basta che non scrivete il vostro personale pensiero su un forum pretendendo che vi sia dato credito maggiore rispetto alle specifiche del linguaggio java, che, a quanto ne so, non avete scritto voi.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 10:53   #112
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
se non è ancora chiaro non sto tentando di dare una nuova definizione di cose già perfettamente definite, sto soltanto facendo delle considerazioni. se tu a queste considerazioni mi rispondi con le spec sulle quali siamo già tutti in accordo non so cosa ti aspetti che ti risponda
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Ok...
allora quando parliamo di qualcosa è inutle appellarsi alle specifiche...
E' un pò come dire........
dissertare sulla caduta dei gravi senza considerare la forza di gravità.
Se noi usiamo uno strumento, mi pare il minimo attenersi alle specifiche di quello strumento quando si fa una discussione, altrimenti tutti potrebbero iniziare a dire cose senza senso.
Stai facendo praticametne lo stesso discorso dell'Intelligent Design quando non consideri le specifiche.
Poichè ottieni quel risultato allora *potrebbe essere che*, *concettualmente avviene* e cose del genere.
Ma quelle sono solo rappresentazioni ipotetiche del problema che non hanno alcuna attinenza con la realtà.
Esattamente come la teoria del Flying Spaghetti Monster che ha la stessa valenza dell'Intelligent Design.
La realtà è una: In java esiste solo ed esclusivametne il passaggio per valore.
Poi tu e lovaz potete pensarla come volete, siete liberissimi di farlo.
Basta che non scrivete il vostro personale pensiero su un forum pretendendo che vi sia dato credito maggiore rispetto alle specifiche del linguaggio java, che, a quanto ne so, non avete scritto voi.
cosa della frase che ho riportato in alto non ti è chiaro, al punto da continuare ad accusarmi di voler ridefinire una specifica?
non ho scritto io le specifiche: ovvio. Ma posso analizzarle secondo un dato punto di vista a scolo scopo d'indagine o le specifiche vanno prese come itestimoni di Geova prendono la Bibbia?

OT:
nelle scienze fisiche e naturali si usano spesso modelli concettuali che non hanno realtà sostanziale (si veda la teoria corpuscolare/ondulatoria della luce, il concetto di momento di una forza, tanto per citarne un paio)... questi modelli non descrivono la realtà, aiutano a comprenderla, a concepirla.
Perché è tanto scadaloso fare la stessa cosa con un linguaggio di programmazione e neanche con lo scopo di descrivere un aspetto di tale linguaggio, ma soltanto al fine di discorrerne in maniera informale?
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 10:59   #113
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
cosa della frase che ho riportato in alto non ti è chiaro, al punto da continuare ad accusarmi di voler ridefinire una specifica?
non ho scritto io le specifiche: ovvio. Ma posso analizzarle secondo un dato punto di vista a scolo scopo d'indagine o le specifiche vanno prese come itestimoni di Geova prendono la Bibbia?
Le specifiche del linguaggio vanno prese esattamente come la Bibbia
Dal leggere la discussione mi sembra che tu abbia fatto un'affermazione rivelatasi scorretta e/o imprecisa e invece di ammetterlo candidamente tu stia cercando di giustificarla in qualche modo, arrampicandoti sugli specchi.

Java passa tutti i parametri per valore. Fine della questione.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 11:26   #114
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da fek Guarda i messaggi
Le specifiche del linguaggio vanno prese esattamente come la Bibbia
Dal leggere la discussione mi sembra che tu abbia fatto un'affermazione rivelatasi scorretta e/o imprecisa e invece di ammetterlo candidamente tu stia cercando di giustificarla in qualche modo, arrampicandoti sugli specchi.

Java passa tutti i parametri per valore. Fine della questione.
ti sembra che in qualche post io abbia voluto far passare l'idea che il passaggio di parametri (parametri reali, cioè reference type e primitive type) avvenga secondo modalità diverse da quella per valore?

non ho forse sempre insistito sul fatto che consideravo l'oggetto, non il reference type ad esso corrispondente?
non ho forse insistito sul fatto che era, la mia, una dissertazione concettuale?

ho forse mai messo in discussione le specifiche?

è probabile che nei primi post abbia peccato di imprecisione, ma mi pare di essermi sbrigato a chiarire... se questo è arrampicarsi sugli specchi.

ti ringrazio per la scarsa onestà intellettuale che mi attribuisci.
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 11:39   #115
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
PS: @lovaz: sono quasi allo stremo delle forze
Ti capisco...

Visto che ognuno è arroccato sulle sue posizioni io mi ritiro, ho altro da fare
in questo periodo, queste discussioni portano via un sacco di tempo ed
energie nervose.
Ma voi continuate pure se volete, eh...

@tiger et altri:
Ho letto quel pezzo delle specifiche, non contrasta con quanto
ho detto io fin dall'inizio, ma comunque non ti convincerò mai, quindi...

Il fatto dell'aliasing appare chiarissimo praticamente a tutti, in vari
libri/tutorial/corsi viene chiarito che un riferimento punta a un oggetto
e che questo riferimento viene copiato all'interno del metodo, e
che questa copia scompare all'uscita, quindi chi fa questi errori
o lo fa per distrazione, o perche' non ha capito questo...

Le altre affermazioni tipo "è così e basta" non le commento neanche.

Fine delle trasmissioni.
lovaz è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 12:55   #116
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
Quote:
Originariamente inviato da lovaz Guarda i messaggi
Ti capisco...

Visto che ognuno è arroccato sulle sue posizioni io mi ritiro, ho altro da fare
in questo periodo, queste discussioni portano via un sacco di tempo ed
energie nervose.
Ma voi continuate pure se volete, eh...

@tiger et altri:
Ho letto quel pezzo delle specifiche, non contrasta con quanto
ho detto io fin dall'inizio, ma comunque non ti convincerò mai, quindi...

Il fatto dell'aliasing appare chiarissimo praticamente a tutti, in vari
libri/tutorial/corsi viene chiarito che un riferimento punta a un oggetto
e che questo riferimento viene copiato all'interno del metodo, e
che questa copia scompare all'uscita, quindi chi fa questi errori
o lo fa per distrazione, o perche' non ha capito questo...

Le altre affermazioni tipo "è così e basta" non le commento neanche.

Fine delle trasmissioni.
Finora ho preferito solo leggere ma ora vorrei dire la mia:
Premettendo che sono del partito "JAVA passa parametri per valore" e che il post http://www.hwupgrade.it/forum/showpo...9&postcount=47 non poteva spiegarlo meglio provo a fare capire perchè tutto ciò è vero:

Creo un oggetto:
Codice:
Object x=new Object();
x.a=5; //supponiamo che a e b esistano e siano interi
x.b=6; //
supponiamo che punti alla posizione di memoria MILLEMILA

Ora creo il metodo e per parametro gli passo oggetto
Codice:
void metodo_cambia_a_b(Object obj){
obj.a= 100;
obj.b= 200;
}
Invoco il metodo:
Codice:
metodo_cambia_a_b(x);
ora stampo i valori
Codice:
System.out.println(x.a);
System.out.println(x.b);
Oh caspita "a" e "b" sono diventati 100 e 200...
Questo è un passaggio per riferimento?
NO! x punta e punterà sempre all'indirizzo MILLEMILA e non c'è metodo che possa fare la magia!

ERGO: JAVA non ha il passaggio per riferimento nemmeno concettualmente!
astorcas è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 13:51   #117
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
ti sembra che in qualche post io abbia voluto far passare l'idea che il passaggio di parametri (parametri reali, cioè reference type e primitive type) avvenga secondo modalità diverse da quella per valore?

non ho forse sempre insistito sul fatto che consideravo l'oggetto, non il reference type ad esso corrispondente?
non ho forse insistito sul fatto che era, la mia, una dissertazione concettuale?
ma non puoi considerare gli oggetti, stiamo parlando di passaggio di parametri, lo sai leggere il titolo della discussione? gli oggetti non sono parametri, ma lo sono i loro riferimenti, quindi tutte le tue considerazioni sono sbagliate.
e non è nemmeno "come se fosse" perchè ti ho già fatto degli esempi in C++ che non è possibile riprodurre in java semplicemente perchè C++ ha il passaggio per riferimento, mentre java no.
nessuno ti impedisce di inventare tutte le definizioni che vuoi, ma non puoi ridefinire il concetto di passaggio per riferimento come ti pare, perchè quello è già stato definito ed è universalmente accettato. se proprio chiamalo passaggio per indirizzo come ho letto in qualche articolo su internet, ecco questo lo posso anche accettare perchè non crea confusione con il passaggio per riferimento che è tutta un'altra cosa. anche se poi bisogna ricordarsi che il passaggio per indirizzo non è altro che il passaggio per valore di un indirizzo.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 14:06   #118
primesinp
Member
 
Iscritto dal: Jan 2008
Messaggi: 111
Quote:
Originariamente inviato da blue_blue Guarda i messaggi
ualcuno mi spiega in soldoni cosa vuol dire che in java "i parametri vengono passati per valore"??
Grazie
In soldoni: ogni variabile è composta da due "campi": L-valore e R-valore (left, right, rispettivamente).

L-valore contiene l'indirizzo di RAM dove si trova (in realtà, inizia...) l'R-valore
R-valore contiene il valore "vero e proprio" della variabile

Ora, in JAVA:

- le variabili di tipo primitivo hanno nell'R-valore il "valore" della variabile;
- le variabili di tipo oggetto hanno nell'R-valore l'indirizzo della prima parola in RAM dell'area di memoria che contiene i bit che rappresentano l'oggetto;
- l'L-valore di una variabile non è MAI ACCESSIBILE al programmatore;
- è accessibile R-valore di una variabile di tipo oggetto (e questo int rappresenta effettivamente un indirizzo di memoria)

Quando si dice che in JAVA tutti i parametri sono passati per valore, si intende che:

- per variabili di tipo primitivo, è effettuata la COPIA del valore effettivo (quindi, l'R-valore);
- per variabili di tipo oggetto, è effettuata la COPIA dell'indirizzo della prima parola in RAM dell'area di memoria che contiene i bit che rappresentano l'oggetto (quindi, ancora l'R-valore)

Ora, cara blue_blue, ti dovrei tirare le orecchie... perché queste cose potevi chiederle al TJ ...
primesinp è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2008, 14:20   #119
blue_blue
Senior Member
 
L'Avatar di blue_blue
 
Iscritto dal: Aug 2006
Messaggi: 1192
primesinp, hai pm
__________________
blue_blue: nickname proprio di persona, femminile, singolare
"Wait, before you close the curtain/There’s still another game to play/And life is beautiful that way"(Beautiful that way, Noa & Nicola Piovani)
Fiore, sei un mito
blue_blue è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2008, 11:19   #120
Baboz
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 1
Ciao a tutti.
La lettura di questi thread e dei i link segnalati è stata molto interessante.
Lo riapro perchè mi è venuto un dubbio:

public class Main {
public static void main(String[] args) {
Integer a = 0;
Integer[] riferimento =new Integer[1];
riferimento[0] = a;
prova(riferimento);
System.out.println(riferimento[0]);
}
private static void prova(Integer[] riferimento) {
riferimento[0] = 1;
}
}


Questo codice simula un passaggio per riferimento.
La modifica dell'array all'interno del metodo prova è visibile
all'esterno, cioè nel main.
Perchè?

Saluti
Baboz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
La capsula SpaceX Dragon CRS-33 ha acces...
La NASA è sempre più vicin...
Crisi delle memorie: ASUS torna al passa...
Le console next-generation potrebbero es...
Gemini cresce ancora: la quota di mercat...
Samsung sfida TSMC: la capacità produtti...
Iliad alza il prezzo della fibra ottica ...
Il prossimo low cost di POCO sarà il più...
The Elder Scrolls VI: ecco le ultime sul...
Ecco i saldi di fine anno Amazon, 34 off...
iPhone Fold: scorte limitate al lancio m...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
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: 14:45.


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