Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-07-2007, 07:19   #1
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Uguaglianza tra oggetti

ho riscoperto l'acqua calda però mi interessa sapere qualcosina di più.

Ho istanziato due oggetti di tipo Memo contenenti a volte le medesime stringhe ed a volte stringhe differenti.
Per la caratteristica di essere oggetti, sono confrontabili tra loro con l'operatore di uguaglianza ma......come viene verificata l'uguaglianza dei due oggetti ?????
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 09:04   #2
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
spero di aver capito bene la domanda...

nota che ti parlo di come funziona la cosa in Java. In Java hai 2 operatori di uguaglianza tra oggetti: "==" e "equals".

il primo confronta L'INDIRIZZO di due riferimenti a oggetti:
Class1 c1 = new Class1();
Class1 c2 = new Class1();

-> c1 == c2 è FALSE

se ora faccio c2 = c1, allora le due variabili puntano allo stesso oggetto e di conseguenza c1 == c2 è, ora, TRUE

passiamo ora al secondo operatore, equals.
supponiamo che Class1 abbia due membri, per semplicità di tipo primitivo e contenga un metodo equals definito come segue:
Class1 {
int m1;
double m2;
...

public boolean equals(Class1 c) {
return (this.m1 == c.m1) && (this.m2 == c.m2);
}
}

ora,
Class1 c1 = new Class1();
Class1 c2 = new Class1();

c1.equals(c2) è TRUE

la cosa importante e interessante è che equals è completamente personalizzato, quindi sei tu a decidere qual è il criterio di uguaglianza

Ultima modifica di mad_hhatter : 11-07-2007 alle 09:06.
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 10:14   #3
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
hai capito cosa intendo

Ma supponi di avere istanziato due oggetti di tipo stringa, se sono oggetti puoi scrivere

s1 != s2 o s1 == s2

mi chiedevo il funzionamento interno del confronto e cioè, se attraverso l'operaotre '=' usato su due oggetti, veniva scandito il contenuto delle due stringhe per rotirnare che i due oggetti sono uguali.

Posso istanziare due rettangoli con la stessa classe e delle stesse dimensioni ma posso dire credo, di avere due rettangoli uguali ma due oggetti diversi!
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 11:36   #4
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
infatti l'operatore "==" è logico, mentre "equals" è SEMANTICO

se tu hai due stringhe che rappresentano la stessa sequenza di caratteri, o due rettangoli aventi uguale altezza e uguale larghezza, essi sono semanticamente uguali, ma possono essere oggetti diversi.

se tu fai:

String s1 = "abc";
String s2 = "abc";

allora s1 == s2 è false, ma s1.equals(s2) è true perchè il secondo è implementato per confrontare la sequenza di caratteri, mentre il primo guarda solo l'indirizzo contenuto nei riferimenti.

Lo stesso dicasi per i rettangoli.
E' per questo che esiste "==" E ANCHE "equals".

In C++, ad esempio, con l'overloading degli operatori potresti, FORSE (perchè non conosco il C++), fare in modo che "==" si comporti come "equals".
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 11:40   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
se tu fai:

String s1 = "abc";
String s2 = "abc";

allora s1 == s2 è false
Beh no, in questo caso specifico (assegnazione di una stringa literal uguale), s1 == s2 dà true. La stringa literal è la stessa e nel constant pool ce n'è una sola. Pertanto i reference sono uguali.


String s1 = new String ("abc");
String s2 = new String ("abc");

Qui s1 == s2 è sempre in ogni caso false.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 12:17   #6
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
in Borland Builder C++

String s1= "abc";
String s2= "abc";

is1 == s2 ???? "vero"

String s1= "abc";
String s2= "abcd";

is1 == s2 ???? "falso"
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 13:30   #7
mattia.pascal
Senior Member
 
Iscritto dal: Jun 2006
Messaggi: 1077
Parlando di OOP quando si scrive una nuova classe si deve sempre fare l'override del metodo equals in quanto è l'unico metodo per testare l'uquaglianza (semantica) tra due oggetti. Poi che in Java l'operatore "==" fatto su due oggetti stringa uguali restituisca true è solo una scelta fatta dalla Sun.
mattia.pascal è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 13:37   #8
mapomapo
Senior Member
 
L'Avatar di mapomapo
 
Iscritto dal: May 2005
Città: Bari
Messaggi: 349
in c++ se fai l'include di <string> o <cstring> ora non ricordo bene hai già una classe nella quale è overloadato l'operatore == per effettuare una strcmp....

per quel che riguarda gli oggetti -sempre in c++- ti consiglio di fare un overloading dell'operatore == per fargli fare ciò che ti serve....

Vito
__________________
Si può vincere una guerra in due...o forse anche da solo. Si può estrarre il cuore anche al più nero assassino, ma è più difficile cambiare un'idea!
mapomapo è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 19:28   #9
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
uhm.....ci siamo leggermente persi

Ho due oggetti di tipo memo quindi due istanze di tali oggetti.
Se scrivo Memo1->Text != Memo2->Text dovrei ottenere true se entrambi gli oggetti sono dello stesso tipo ed hanno i medesimi attributi o proprietà, indifferentemente dall'indirizzamento in memoria
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 20:22   #10
aik
Member
 
L'Avatar di aik
 
Iscritto dal: Nov 2004
Città: pisa
Messaggi: 204
Che linguaggio usi?


di solito nei linguaggi che non ammettono un uso diretto dei puntatori ci sono queste due scelte perchè deve comunque essere possibile fare entrambi i confronti (java):
per sapere se due oggetti sono il solito:
==

per sapere se due oggetti hanno lo stesso contenuto:
equals

Nei linguaggi dove puoi usare direttamente i puntatori (c++)
per sapere se due stringhe sono il solito oggetto:
&obj1 == &obj2

per sapere se due oggetti hanno lo stesso contenuto:
obj1 == obj2 (se fanno l'overriding dell'operatore ==)

più facile di così

se ho detto qualche cazzata correggetemi
aik è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 21:18   #11
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
parlo di C++ ma in termine di oggetti non credo ci sia molta differenza tra C++ e java, sbaglio ?

Se scrivo Memo1 == Memo2 mi viene restituito un false in quanto con molta probabilità entra in gioco l'indirizzamento in memoria, oggetti dello stesso tipo ma che vengono riconosciuti come individui a se.

Se navigo al loro interno con la notazione -> ed arrivo a Text che è il loro contenuto, tale contenuto mi ritorna un true se entrambi contengono il medesimo testo, indifferentemente dalla lunghezza di quest'ultimo.

La mia domanda era appunto: quando scrivo Memo1->Text == Memo2->Text cosa fa il codice celato in quel '==' per scoprire che i due contenuti dei Memo sono uguali ?

Ultima modifica di misterx : 11-07-2007 alle 21:31.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 21:57   #12
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Gli oggetti C++ e gli oggetti Java non sono neanche lontani parenti .

Le specifiche di C++ (ISO '98) ci dicono che il risultato della comparazione per uguaglianza di due puntatori ad oggetti dello stesso tipo è true se e solo se entrambi sono null, puntano allo stesso oggetto o al componente di un array successivo all'ultimo.
__________________
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
Old 12-07-2007, 05:56   #13
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
parlando esclusivamente di oggetti non penso che un oggetto C++ sia differente da un oggetto java
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2007, 11:22   #14
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Se parliamo di bit in memoria, sono entrambi collezioni di uno e zero ma l'oggetto, in quanto definizione di un'identità, in Java è più "cicciotto". Il minimo oggetto Java è l'unione della definizione di java.lang.Object e qualcos'altro. Quello che c'è scritto in Object è parecchio ma due cose risaltano più di tutte. La prima è la definizione di identità: equals e hashCode. La seconda è l'introspezione: getClass. Non è poco.
__________________
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
Old 12-07-2007, 17:05   #15
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
intendevo a livello concettuale e non implementativo.
Però ancora nessuno mi ha risposto come funziona quel == tra due oggetti
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2007, 08:39   #16
aik
Member
 
L'Avatar di aik
 
Iscritto dal: Nov 2004
Città: pisa
Messaggi: 204
Veramente te lo hanno spiegato tutti
aik è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2007, 09:25   #17
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da aik Guarda i messaggi
Veramente te lo hanno spiegato tutti
mi sa che hai letto male!
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2007, 09:25   #18
Ed_Bunker
Senior Member
 
L'Avatar di Ed_Bunker
 
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9504
Ma sbaglio o in C++ e' anche possibile sovrascrivere l'operatore di uguaglianza == ?

In java, invece, nel caso di oggetti, non dovrebbe corrispondere a chiamare il metodo equals ?
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C.
Ed_Bunker è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2007, 10:06   #19
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Ed_Bunker Guarda i messaggi
Ma sbaglio o in C++ e' anche possibile sovrascrivere l'operatore di uguaglianza == ?
Sì, è possibile (è quello che viene fatto ad esempio nella classe std::string).

Quote:
Originariamente inviato da Ed_Bunker Guarda i messaggi
In java, invece, nel caso di oggetti, non dovrebbe corrispondere a chiamare il metodo equals ?
In Java l'operatore == applicato a due operandi di tipo reference effettua solo una comparazione sui valori dei reference, non sul contenuto degli oggetti.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2007, 14:30   #20
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da misterx Guarda i messaggi
intendevo a livello concettuale e non implementativo.
Però ancora nessuno mi ha risposto come funziona quel == tra due oggetti
boh, mi pareva abbastanza chiaro dalle risposte, forse non ho capito cosa chiedi... comuqnue in Java "==" confronta gli indirizzi di memoria a cui puntano i riferimenti ai 2 oggetti. Ogni riferimento del tipo "Class c;" corrisponde a una word contenente l'indirizzo di memoria dove si trova fisicamente l'oggetto...

più di così non so cosa risponderti... mi spiace
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
Picchi di consumi e blackout in Italia: ...
Pannelli fotovoltaici e caldo estremo: q...
Colpisce droni in movimento senza fermar...
TikTok punta a diventare una super app: ...
Google contro l'Europa: 'Così sta...
Il Trump Phone è ora ordinabile c...
GTA VI su PS5 8 volte più richies...
Polymarket conferma un attacco hacker: s...
Xiaomi 18 punta ad una batteria da 7.200...
Arlo Essential 3 XL: 3 telecamere WiFi 2...
L'IA cinese spaventa gli USA: GLM-5.2 su...
Netflix cambia le regole degli account: ...
Repository GitHub 'puliti' possono ingan...
Sony cancella 551 film e serie TV dal Pl...
La spesa per i videogiochi con supporto ...
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: 12:38.


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