Integer i =xx a Integer i = new Integer ( w praktyce)

0

Hej,

To mój pierwszy post tutaj.
Mam pytanie jak w temacie jaka jest różnica PRAKTYCZNA w deklarowaniu zmiennej?

Integer i = 5; vs Integer i = new Integer(5);

Jak już napisałem chodzi o praktyczna różnicę. Kiedy deklarujemy metodą nr1 a kiedy nr 2.

Przykład:

public class Integ {

    public static void main(String args[]){
        Integer a = 2, b=2;

        Integer c = new Integer(2);
        Integer d = new Integer(2);

        System.out.println(a+b);
        System.out.println(c+d);

    }
}

Brak różnic w wynikach? Dlatego pytanie po co to?

Dzięki

1

Różnica jest w implementacji. Przypisanie skorzysta z cache które java ma dla Integerów i nie będzie alokować niektórych wartości tylko użyje tych z cache. Użycie new zawsze da ci nowy obiekt.
Różnicy w wynikach nie będzie. Będzie za to różnica w porównaniu referencji tzn w a==b vs dowolna inna para.

0

No właśnie to już wiem. Jednak nie widzę różnicy w praktyce?
Jak to można wykorzystać w programowaniu?

2

Wyobraź sobie że wykonujesz obliczenia z miliardami małych liczb. Różnica może tutaj wynosić wtedy gigabjaty ramu ;)

0

Czy to tylko o to chodzi?
To w takim razie czy nie lepiej stosować:

Integer i = Integer.valueOf(int i)
1

To akurat zadziała zupełnie tak samo jak Integer i = cośtam;, valueOf nie jest potrzebne.

0

Dzięki za odpowiedź.
http://puredanger.github.io/tech.puredanger.com/2007/02/01/valueof/ to czytałem na temat valueOf....

1 użytkowników online, w tym zalogowanych: 0, gości: 1