Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
Le novità MSI del 2026 per i videogiocatori
Le novità MSI del 2026 per i videogiocatori
Con le nuove soluzioni della serie MEG, acronimo di MSI Enthusiast Gaming, l'azienda taiwanese vuole proporre per il 2026 una gamma di proposte desktop che si rivolgono direttamente all'utente più appassionato con schede madri, chassis e sistemi di raffreddamento. Non da ultimi troviamo anche gli alimentatori, che abbinano potenza a ricerca della massima sicurezza di funzionamento.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-05-2010, 22:23   #141
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Con il filosofico non mi riferivo alla differenza valore, riferimento (ci mancherebbe) ma alle mie considerazioni a riguardo delle nomenclatura nei post precedenti.
All' atto pratico l' importante è comprendere che, in java, le istanze vengono puntate attraverso variabili reference, e queste vengono copia al momento del passaggio, per cui eventuali modifiche allo stato dell' oggetto hanno effetto, mentre eventuali assegnamenti hanno solo scope locale alla funzione.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 00:34   #142
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Eventuali modifiche effettuate attraverso (e non al) il riferimento passato (per copia) alla funziona, hanno effetto sull' oggetto puntato? Se la risposta è si allora non c'è passaggio per valore.
Cosa differenzia questo meccanismo da quello del C/C++, il fatto che al posto di passare il puntatore tale e quale(detto in maniera molto poco formale), si va a leggere l' indirizzo contenuto nella variabile reference e se ne fa una copia, ma ciò non esula dal fatto che ci sia un accesso diretto all' oggetto in questione.
è un passaggio per valore di tutti i tipi primitivi. Non esiste in alcun modo il passaggio per riferimento. Tra i tipi primitivi in java rientrano i reference.
In sintesi funziona tutto semplicemente così senza tirare in ballo passaggi per riferimento che NON esistono in java.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 00:36   #143
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
è cosi: il passaggio per copia presuppone una surroga del valore memorizzato. Copia che nel caso degli oggetti, in Java, viene operata a carico del reference e non dell' entità (che viene trattato come un tipo primitivo), ovvero si copia l' indirizzo cui l' oggetto si trova sull' heap. Tale meccanismo non può essere considerato per copia (non viene clonato, quindi reso immune alle modifiche, in maniera profonda alcun oggetto) ne per riferimento, inteso alla C, perchè non è possibile effettuare la classica funzione di swap senza ricorrere all' espediente dei vettori unitari. Quello che Java utilizza ha un nome preciso ovvero " copy of the reference ".
No, è sempre un passaggio per copia del valore.
Solo che se il valore passato del tipo primitivo è un riferimento si ha il passaggio per copia del riferimento che non è altro che un caso specifico dell'unico metodo esistente di passaggio dei parametri in java: il passaggio per copia del valore.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 00:38   #144
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Il fulcro della questione è più filosofico che pratico.
In Java esiste un passaggio per riferimento. No almeno io non l' ho mai detto.
Java passa i parametri per copia? Si anche questo è vero, ma dire che il passaggio sia sempre e solo per copia è quantomeno riduttivo o può generare confusione.
Object o=new Object()
la variabile o contiene un riferimento alla locazione contenete l' oggetto
faiQualcosa (Object o){}
faiQualcosa(o);
riceve una copia dell' indirizzo dove si trova l' Object, attraverso cui potervi accedere.
E' corretto dire che le variabili siano passate per valore? Si per parliamo di variabili, ma non se parliamo di Oggetti in sè. Mentre in c++ è possibile passare una copia dell' oggetto, in Java ciò non è possibile in quanto ad essere copiato è il riferimento che, come già detto, è trattato come qualsiasi altro tipo primitivo.
No, non è assolutamente riduttivo.
Funziona ESATTAMENTE così.
Java passa per copia solo il valore dei tipi primitivi.
Che poi esista un tipo primitivo di tipo reference è assolutamente ininfluente, il passaggio resta sempre per copia del valore.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 01:11   #145
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Mai parlato di passaggio per riferimento, ma di copia del riferimento (trattato esattamente come gli altri primitivi) che è esattamento ciò che java fa.
Inoltre ho posto l' attenzione dalla prospettiva oggetto in se, rappresentato dalla variabile reference.per cui essendo vero che le variabili vengono passate per copia, un oggetto viene passato (vedendolo in maniera astratta, perchè java non ha, di fatto, variabili che contengono oggetti)copiandone il suo riferimento.
Sia chiaro, siamo concordi sul modo in cui avviene il passaggio (del resto è una specifica), ma dal punto di visto della terminologia ho presentato la mia idea, condivisibile o meno.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 09:16   #146
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Mai parlato di passaggio per riferimento, ma di copia del riferimento (trattato esattamente come gli altri primitivi) che è esattamento ciò che java fa.
Inoltre ho posto l' attenzione dalla prospettiva oggetto in se, rappresentato dalla variabile reference.per cui essendo vero che le variabili vengono passate per copia, un oggetto viene passato (vedendolo in maniera astratta, perchè java non ha, di fatto, variabili che contengono oggetti)copiandone il suo riferimento.
Sia chiaro, siamo concordi sul modo in cui avviene il passaggio (del resto è una specifica), ma dal punto di visto della terminologia ho presentato la mia idea, condivisibile o meno.
Ma non può essere condivisibile perchè è sbagliata.
Le specifiche del linguaggio Java 3° edizione dicono questo:
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 initial- ized 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.
Quindi java, secondo le specifiche del linguaggio, utilizza sempre il passaggio per copia del valore.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 11:40   #147
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Ma non può essere condivisibile perchè è sbagliata.
Le specifiche del linguaggio Java 3° edizione dicono questo:

Quindi java, secondo le specifiche del linguaggio, utilizza sempre il passaggio per copia del valore.
Sbagliata secondo cosa?
Java manipola gli oggetti attraverso riferimenti, tali riferimenti vengono passati per copia (o per valore). Cosa ci sarebbe di sbagliato?
Anche perchè affermare che sia sbagliato, presuppone che la "copia del reference" abbia un significato differente.

Ultima modifica di nuovoUtente86 : 05-05-2010 alle 11:44.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 12:00   #148
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Sbagliata secondo cosa?
Java manipola gli oggetti attraverso riferimenti, tali riferimenti vengono passati per copia (o per valore). Cosa ci sarebbe di sbagliato?
Anche perchè affermare che sia sbagliato, presuppone che la "copia del reference" abbia un significato differente.
PGI ti aveva già risposto in maniera sintetica e precisa, con questo:
Quote:
Java ha il passaggio per valore e stop, esattamente come C.

Dire il contrario significa non aver chiaro il concetto di variabile e di valore.

Se ho una variabile x e un metodo m che accetta un argomento p, quando dico:

m(x)

p cos'è?

Se è una variabile il cui valore è lo stesso di x è passaggio per valore.

Se è una variabile il cui valore è l'indirizzo di x è passaggio per riferimento.
(era quello che cercavo di dire io ieri sera, poi mi era venuto in mente di farti l'esempio di una funzione C il cui parametro formale è un puntatore mentre invece il parametro reale, al momento della chiamata, è una variabile da cui si estrae l'indirizzo tramite l'operatore &, ma era ora di staccare dal lavoro e non avevo voglia di scrivere il post).
__________________

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 05-05-2010, 12:46   #149
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
PGI ti aveva già risposto in maniera sintetica e precisa, con questo:

(era quello che cercavo di dire io ieri sera, poi mi era venuto in mente di farti l'esempio di una funzione C il cui parametro formale è un puntatore mentre invece il parametro reale, al momento della chiamata, è una variabile da cui si estrae l'indirizzo tramite l'operatore &, ma era ora di staccare dal lavoro e non avevo voglia di scrivere il post).
Continuiamo a non capirci: sono perfettamente d' accordo con te sul fatto che in C/C++ nel caso di utilizzo dei puntatori e dell' operatore di "address-of" (diverso il discorso del tipo "reference") ricadiamo nel medesimo caso di Java ovvero di copiare il contenuto della variabile, che di fatto è un indirizzo: del resto la logica di funzionamento, a meno dell' aritmetica a favore dei puntatori, è la stessa.
Quello che voglio sottolineare è che non mi piace etichettare come,"tutto per copia" e bon, non fosse altro perchè ciò può generare confusione in chi si approccia al linguaggio
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 14:33   #150
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Quello che voglio sottolineare è che non mi piace etichettare come,"tutto per copia" e bon, non fosse altro perchè ciò può generare confusione in chi si approccia al linguaggio
E' questo il punto: a te non piacerà etichettare con un "tutto per copia", ma di fatto è quello che succede. Quindi è corretto dirlo chiaramente soprattutto a beneficio del neofita.
Poi gli si lascia capire, oppure gli si spiega esplicitamente, che in Java le istanze degli oggetti non sono passate; mai.
Ciò che viene passata è la copia del riferimento all'oggetto, la reference.

Credo che per un neofita la cosa che può generare qualche incertezza/incomprensione, se non ben spiegata (specie se il neofita è tale non solo esclusivamente dal punto di vista del linguaggio) è abituarsi a leggere questa sintassi:
Codice:
Object o = new Object();
e considerare la variabile 'o' come "l'oggetto", senza altre distinzioni.

E' neccesario per il neofita capire che ciò che sta a sinistra dell'operatore '=' non è "l'oggetto" ma il "riferimento all'oggetto" (Java reference) e ciò che sta a destra dell'operatore '=', in particolare il prodotto dell'operatore 'new', è "l'stanza dell'oggetto".
E che è la reference che viene passata ai metodi, e viene passata per copia.

Poi ci sono i tipi primitivi, e dato che non possono essere indirettamente referenziati (proprio perchè in Java non esistono i pointer, ne pointer operators e neanche pointer arithmetic) possono essere passati solo per copia.

Risultato: in Java gli argomenti dei metodi invocati sono sempre e solo passati per copia.

Ripeto il punto che sintetizza al massimo la questione:
Quote:
Se ho una variabile x e un metodo m che accetta un argomento p, quando dico:

m(x)

p cos'è?

Se è una variabile il cui valore è lo stesso di x è passaggio per valore.

Se è una variabile il cui valore è l'indirizzo di x è passaggio per riferimento.
Questo è quello che, a mio avviso, bisognerebbe dire ai neofiti, per non causare confusione, circa il passaggio degli argomenti ai metodi.
__________________

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)

Ultima modifica di banryu79 : 05-05-2010 alle 15:05. Motivo: corretto una svista
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 15:11   #151
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
credo sia, già, stato postato un link esterno all' inizio di questa discussione ad un interessante trafiletto di J. Gosling che esplicita bene la questione.

Quote:
Some people will say incorrectly that objects are passed “by reference.” In programming language design, the term pass by reference properly means that when an argument is passed to a function, the invoked function gets a reference to the original value, not a copy of its value. If the function modifies its parameter, the value in the calling code will be changed because the argument and parameter use the same slot in memory…. The Java programming language does not pass objects by reference; it passes object references by value. Because two copies of the same reference refer to the same actual object, changes made through one reference variable are visible through the other. There is exactly one parameter passing mode — pass by value — and that helps keep things simple.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-05-2010, 15:29   #152
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
credo sia, già, stato postato un link esterno all' inizio di questa discussione ad un interessante trafiletto di J. Gosling che esplicita bene la questione.


Quote:
Some people will say incorrectly that objects are passed “by reference.” In programming language design, the term pass by reference properly means that when an argument is passed to a function, the invoked function gets a reference to the original value, not a copy of its value. If the function modifies its parameter, the value in the calling code will be changed because the argument and parameter use the same slot in memory…. The Java programming language does not pass objects by reference; it passes object references by value. Because two copies of the same reference refer to the same actual object, changes made through one reference variable are visible through the other. There is exactly one parameter passing mode — pass by value — and that helps keep things simple.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Smart city e smart land: al CES l’innova...
Grazie ai dati di Hubble abbiamo pi&ugra...
E' la GPU la grande novità delle ...
Ryzen AI 400 Series e nuovi modelli Ryze...
I notebook ASUS per il 2026: Zenbook e E...
NVIDIA alza ancora l’asticella con Vera ...
Dell UltraSharp: al CES 2026 il primo mo...
LG presenta i nuovi Gram Pro con lega Ae...
LG NanoCell 65'' a 499€: il 4K di qualit...
La Befana vien di notte, anche su Amazon...
Realme 12 4G 8GB/128GB a un prezzo folle...
DJI Mini 4 Pro Fly More Combo scende a s...
C'è un monitor Dell 24" Full...
HP Digital Passport, integrazione Copilo...
HP EliteBook X G2 ed EliteBoard G1a uffi...
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: 01:07.


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