Gå til innhold

String likhet i Java


Gjest Slettet+1374861

Anbefalte innlegg

Gjest Slettet+1374861

spørsmål formulert under følgende kodesekvens

 

public class BooleanTest
{
public static void main(String arg[])
{
 String a = new String("hei");
 String b = new String("hei");

 boolean c = a == b;

 String d = "hei";
 String e = "hei";

 boolean f = d == e;

 System.out.println(c);
 System.out.println(f);

 d = "lol";

 f = d == e;

 System.out.println(f);
}
}

 

hvordan kan d == e være sant, når det virker som de ikke peker på samme område i hovedminne? spesielt mystisk siden jeg kan endre d i ettertid uten å endre e på samme tid.

takk for alle svar.

Lenke til kommentar
Videoannonse
Annonse

ja, her må du nok passe på bruken av == og metoden equalsTo i String-klassen... sjekk i API'en til String-klassen så får du se hva du kan bruke... Du initialiserer dessuten de 2 første Stringene som et String objekt med new-operatoren, det gir også forskjellig resultat.... egentlig akkurat det som sto i linken over egentlig.

Lenke til kommentar

ja, her må du nok passe på bruken av == og metoden equalsTo i String-klassen... sjekk i API'en til String-klassen så får du se hva du kan bruke... Du initialiserer dessuten de 2 første Stringene som et String objekt med new-operatoren, det gir også forskjellig resultat.... egentlig akkurat det som sto i linken over egentlig. Objekter bruker pekere som peker på objektet selv

Lenke til kommentar
Gjest Slettet+1374861

bortsett fra "RTFM" kommentaren var det ett veldig godt svar.

jeg vet selvfølgelig om bruken av equals og hvorfor new gir ulikhet mellom de to variablene/objektholderne, men akkurat det tilfellet måtte jeg har en mer nøyaktiv beskrivelse av. takk.

Lenke til kommentar
bortsett fra "RTFM" kommentaren var det ett veldig godt svar.

jeg vet selvfølgelig om bruken av equals og hvorfor new gir ulikhet mellom de to variablene/objektholderne, men akkurat det tilfellet måtte jeg har en mer nøyaktiv beskrivelse av. takk.

7116581[/snapback]

 

Ok, beklager det da. RTM bedre? ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...