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
LinkedList w Java'ie to taki miś koala...
Jak z metody size() w List w Java'ie dostać ujemną liczbę? ;-)
Walka z null'em - pozwólmy działać IntelliJ'owi ;-)
Moc obliczeniowa
Plusy dodatkie i plusy ujemne, czyli co może być złego, a co dobrego w AppInventorze :-)
sobota, czerwca 23, 2018
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz