Który przykład bardziej efektywny?

0

Witam!
Które rozwiązanie jest bardziej zalecane:

int liczby = SomeClass.getLiczby();
System.out.println(liczby.getPierwsze() + " " + liczby.getNiePierwsze());

czy

System.out.println(SomeClass.getLiczby().getPierwsze() + " " + SomeClass.getLiczby().getNiePierwsze());

To jest oczywiście jakiś tam głupi przykład ale chodzi o to, że jak wykonujemy dużo metod z danego obiektu to lepiej go przypisać do jakiejś zmiennej czy pisać tak jak w drugim przykładzie. Wydaje mi sie ze 1 przykład obciąża bardziej pamięć chociaż z drugiej strony on chyba tylko referencje przypisuje więc nie powinno to być "ciężkie".

1

Drugi wygląda całkiem imponująco/efektownie i zdecydowanie wzbudza respekt.
Jeżeli natomiast chodziło o efektywność, pierwszy przykład może być nieco szybszy (zakładając, że liczby to obiekt, a nie prymityw), lecz optymalizacja CSE powinna coś takiego wykryć i tak czy siak przekształcić do pierwszej formy automatycznie. Imho.
Niemniej sam preferuję tę pierwszą.

0

Szczerze wolę wersję pierwszą.
Jak coś się chrzani to łatwiej to potem debugować, nie trzeba kombinować ze "step in" i "step out".

int liczby liczby.getPierwsze()?

0

Z punktu widzenia bytecode'u nie ma żadnej różnicy. JVM wykona dokładnie taki sam zestaw instrukcji dla obu przypadków. Jedyna różnica to czytelność kodu i, jak ktoś już napisał, łatwość debugowania.
Poza tym ten kod się nie skompiluje, bo wywołujesz metodę na czymś, co obiektem nie jest.

0

SomeClass oczywiście jest obiektem jakiejś tam klasy, nie ważne to jest w tym momencie...

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