Czy obiekt może zmieniać dynamicznie alokacje pamięci

0

Załóżmy że mamy klasę

public class Obiekt{
    int a;
    int b;
    string text;


//getery i setery
}

Gdy utworzymy dwa obiekty i wypełnimy jeden wartościami np 1, 3, "jakistekstdłuuuuuugi", a do drugiego ustawimy wartości null, to czy oba będą alokować tyle samo miejsca w pamięci?

0

zarowno w javie jak i c# drugi obiekt nie zajmie miejsca (co nie zmienia faktu ze sama referencja bedzie miala rozmiar 4 lub 8 bajtow, w zaleznosci od tego czy masz 32 czy 64 bitowe srodowisko)
edit: oczywiscie to co opisalam wyzej dotyczy ustawienia nulla dla pola/zmiennej referencyjnej. w sytuacji gdy stworzysz obiekt i nie ustawisz mu pol na sensowne wartosci to jest oczywiscie tak jak pisze @krzysiek050.

1
katelx napisał(a):

zarowno w javie jak i c# drugi obiekt nie zajmie miejsca (co nie zmienia faktu ze sama referencja bedzie miala rozmiar 4 lub 8 bajtow, w zaleznosci od tego czy masz 32 czy 64 bitowe srodowisko)

Obiekt zajmie miejsce i to w obu przypadkach tyle samo. Ten pierwszy będzie miał jednak połączenie z kolejnymi obiektami, ale sam rozmiar obiektu tej klasy się nie zmieni.

0

Obiekt zajmie miejsce i to w obu przypadkach tyle samo.

Obiekt != Referencja.

W rzeczywistości jest tak jak to opisała katelx. Z tym, że niektóre JVM na systemach 64 bitowych i tak rezerwują na referencje tyle pamięci, co na systemach 32 bitowych.

0

@Lectre, przecież jasno jest napisane że zostaną stworzone 2 obiekty, więc jakim cudem mają nie zając miejsca?

0

mamy obiekt z polami do których przypisujemy null, następnie w tym obiekcie zmieniamy pole string text na np: "4programmers", i w tym momencie zmienia się rozmiar obiektu czy zostaje taki sam?

1

Rozmiar obiektu twojej klasy się nie zmieni, ale (pomijając kwestię internowania stringów) zostanie stworzony nowy obiekt "4programmers" który zajmie dodatkowe miejsce.

0
Wanda nie chciała napisał(a):

mamy obiekt z polami do których przypisujemy null

Przede wszystkim, nie przypiszesz null do intów.

0
somekind napisał(a):
Wanda nie chciała napisał(a):

mamy obiekt z polami do których przypisujemy null

Przede wszystkim, nie przypiszesz null do intów.

czepiasz się :)

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