Keresés

Új hozzászólás Aktív témák

  • Sirpi
    senior tag

    Totál nem értem.
    Egyrészt ha 10-et adok meg (előjeles egész 8biten) akkor megegyezik, ha 1000, akkor meg nem? Ez elég nagy logikai bukfenc.

    Azt is írják, hogy a == nem a két értéket hasonlítja össze, hanem a két címet, amin tárolja a változó tartalmát. Vagyis ha nem ugyanazon a címen tárolja őket, akkor nem lehetnek egyformák. Akkor 127-nél kisebb számnál hogyan lehet egyforma címen két különböző változó értéke?

    Furthermore, == operators in Java is used to compares two memory references and not values.
    Object1 located at say 1000 and contains value 6.
    Object2 located at say 1020 and contains value 6.
    Object1 == Object2 is False as they have different memory locations though contains same values.

    Oké, nem csak a Java-val, az angollal is küzdök, de mit olvastam/értettem félre?

    A jvm a -128 és +127 közötti Integereket cache-eli, hogy memóriát és cpu-t spóroljon, így ha ebben az intervallumban hozol egy példányt létre, akkor a cache-ből fogja kiszedni és nem csinál újat (kivéve, ha olyat írsz, hogy new Integer(10), akkor nem tudja a cache-t használni).

Új hozzászólás Aktív témák