ClassLoader’y są mechanizmem odpowiedzialnym za ładowanie klas. Pełnią one bardzo istotną rolę w trakcie działania wirtualnej maszyny Javy. ClassLoader’y są to klasy napisane w Javie, no dobra to kto załadował pierwszą klasę? Zapraszam do wpisu, aby się tego dowiedzieć!
Autor: Krzysztof Chruściel
Stos operandów i tablica zmiennych lokalnych
Aby zrealizować obietnicę “Write Once Run Everywhere” autorzy Javy musieli rozwiązać kilka problemów. Jednym z nich była zmienna liczba rejestrów procesora. Rozwiązaniem tego problemu było zastosowanie stosu jako struktury danych do wykonywania operacji na operandach. Aby przekonać się jak to działa “pod spodem” zapraszam do wpisu!
Sprawdzamy rozmiar naszych obiektów z Java Object Layout
Jeśli ktoś podobnie jak ja zastanawia się “ciekawe ile ten obiekt zajmuje miejsca w pamięci?” to mam dla was dobrą wiadomość! Java Object Layout (JOL) jest mini-programem, który potrafi policzyć jaki będzie rozmiar obiektu przechowywanego w pamięci. Oczywiście dobrze wiemy, iż w aktualnych czasach pamięć jest “tania”, jednakże jeśli chcielibyśmy się przekonać, który obiekt zajmuje mniej miejsca w pamięci to zapraszam do artykułu.
Manipulacja kodem bajtowym z JiteScript
W moim przypadku praca z kodem bajtowym zawsze uczy mnie czegoś nowego. Postanowiłem dodać ten wpis, aby zachęcić was do eksperymentów. Aktualnie kompilator oraz JIT wykonuje za nas całą robotę. Prowadzi to do sytuacji, w których bardzo wiele aspektów języka przyjmujemy na zasadzie “no bo tak jest”. Odczarujmy trochę ten kod bajtowy!
Daemon Thread – wątek demoniczny
Chociaż tytuł wpisu brzmi bardzo złowieszczo to nie zapowiada on niczego złego. Pojęcie wątków demonicznych pojawiło się już we wpisie związanym z ThreadFactory, natomiast dziś chciałbym przedstawić wam jak tworzyć takie wątki. Ponadto odpowiemy sobie na pytanie kiedy warto stosować ten typ zadań.
Exchanger – czyli wymieniamy obiekty pomiędzy wątkami
Dalej pozostajemy w tematach związanych z pakietem java.util.concurrent. Dzisiejszy synchronizator pracy to Exchanger. Jak nazwa sugeruje służy on do wymiany danych pomiędzy dwoma wątkami. Podczas tworzenia tego synchronizatora określamy jakiego typu dane chcemy wymienić. Dane zostaną wymienione dopiero, gdy dwa wątki będą gotowe.
Stany wątków w Javie
Stany wątków są częstym pytaniem na rozmowie kwalifikacyjnej z działu wielowątkowości. W Javie wątki mogą znajdować się w sześciu stanach. Każda zmiana stanu poprzedzona jest jakimś zdarzeniem. Co to za zdarzenia? Zapraszam do wpisu, aby się o tym dowiedzieć!
Relacja – CoreDump Kraków 2018
W listopadzie 2018 roku w Krakowie odbyła się pierwsza edycja konferencji CoreDump. Była to od dłuższego czasu wyczekiwana przez nas konferencja. Wyczekiwana, ponieważ znając organizatorów spodziewaliśmy się dużej ilości ciekawych informacji. Zapraszamy na krótką relację z tego wydarzenia.
CyclicBarrier – cykliczny synchronizator
Ostatnio poznanym sychronizatorem pracy był CountDownLatch. Był to bezpieczny wątkowo mechanizm odliczania, który pozwala uruchomić zadanie, gdy licznik wynosi zero. Podobnym sposobem synchronizacji pracy jest CyclicBarier. Różni się on nieznacznie od CountDownLatch, ale po szczegóły zapraszam do wpisu.
Konferencja “Automatyzacja testowania – prawdy i mity”
29 listopada odbędzie konferencja pt. “Automatyzacja testowania prawdy i mity“. Organizowana jest ona przez firmę SuccessPoint. Wydarzenie będzie odbywać się w Centrum Konferencyjnym Golden Floor Plaza w Warszawie. Jest to konferencja, na której poruszane są tematy związane z testowaniem automatycznym. Serdecznie zapraszamy do udziału.