sobota, czerwca 23, 2018

Po Devoxx'ie

Od środy do wczoraj byłem na konferencji (Devoxx).

I potwierdza się moje przekonanie, że z wiekiem i posuwaniem się technologii w wieku konferencje stają się bardziej miejscem do spotkania znajomych niż nauczenia czegoś nowego ;-)

Potwierdza się też to, że o wiele istotniejsze od technologii są podstawy ;-)

Mieliśmy też konkurs i w naszym konkursie wzięło udział blisko 200 osób, a najtrudniejsze pytanie było podstępne ;-)

Oto pytanie:

Tylko 34.5% uczestników odpowiedziało dobrze ;-)

Wielu dało się zrobić na szaro, bo pytanie specjalnie było tak zrobione ;-)

Początek nie jest trudny, bo new ArrayList<>(1024*1024) potrzebuje stworzyć w środku siebie tablicę na 1024*1024 elementy w środku, co zajmie koło 4MB. Będzie ona wypełniona null'ami.
Czyli pierwsza część to około 4MB.
Chociaż naturalne jest dopatrywanie się, że będzie to więcej, bo przecież gdyby tam trzymać tyle liczb ile jest miejsca to każda z tych liczb sama z siebie zajmowałaby 4 bajty, a do tego cały obiekt w koło niej zajmowała by jeszcze więcej....

Później ta ArrayList'a zostaje użyta do inicjalizacji LinkedList, i tu się można zrobić znowu na szaro ;-)
Bo można zapomnieć, że ta wcześniejsza ArrayList'a choć ma miejsce na ponad milion liczb to tak naprawdę jej rozmiar jest równy 0 ;-)
Przez to w trakcie inicjalizacji LinkedList nie stworzą się żadne dodatkowe struktury poza samą LinkedList...
A, że operujemy tutaj MB, to można przyjąć, że ta LinkedList zajmie koło 0MB.

I tak prawidłową odpowiedzią będzie ~4MB i ~0MB ;-)

Podobne postybeta
Jak z metody size() w List w Java'ie dostać ujemną liczbę? ;-)
LinkedList w Java'ie to taki miś koala...
Walka z null&#39;em - pozwólmy działać IntelliJ&#39;owi ;-)
Moc obliczeniowa
1.3 σ w kierunku średniej ;-), czyli wcześniej wstaję

Brak komentarzy:

Prześlij komentarz