15. sierpnia została wydana nowa wersja Javy, okraszona numerem 15. Wraz z pojawieniem się kolejnej wersji dostaniemy pakiet kilku nowych usprawnień i funkcjonalności. Jedną z nich (w trybie preview) są “zapieczętowane” klasy czy JEP 360 Sealed Classes. Zapraszam do wpisu, aby dowiedzieć się jakie problemy próbuje rozwiązać JEP 360.
java
Co jeśli pula wątków jest zajęta? – RejectedExecutionHandler
Aby przyśpieszyć wydajność naszych aplikacji bardzo często decydujemy się na zrównoleglenie pracy. Przy zmianie modelu pracy dostarczamy pulę wątków, która będzie odpowiedzialna za równoległe wykonywanie zadań. Czasami jednak przy pracy w wielowątkowym środowisku może zdarzyć się sytuacja, w której wysycimy całą pulę wątków. Java dostarcza mechanizmy (polityki), które instruują pulę jak ma się zachować w przypadku wysycenia zasobów.
SegFault Warszawa 2020
Powraca jedna z naszych ulubionych konferencji. Ten rok zaczynamy w marcu od SegFault, który powraca z formułą University. Jak zawsze mamy dla Was zniżki z tej okazji. Zapraszamy do wpisu po szczegóły.
Plik Jar z kilkoma wersjami plików – Multi-Release Jar
W dzisiejszym wpisie wykorzystamy funkcjonalność, która pojawiła się wraz z wydaniem Javy 9. Jest to funkcjonalność o nazwie Multi-Release Jar. Pozwala ona na dostarczenie jednego artefaktu z plikami w różnych wersjach. Zapraszam do wpisu po więcej szczegółów.
Java + GitHub + Travis CI czyli darmowe continuous integration
W aktualnych czasach ciężko wyobrazić sobie proces wytwarzania oprogramowania bez CI (ciągła integracja). W środowisku JVM najpopularniejszymi narzędziami do ciągłej intergacji są Jenkins i Bamboo. Niestety przy małych projektach lub projektach typu open source nie chcemy wykupywać maszyn, aby uruchomić proces CI. Rozwiązaniem tego problemu jest darmowe narzędzie Travis CI, które jest cloud’owym systemem ciągłej integracji.
Jak działa Class Loader
Kolejny z serii artykuł o Class Loaderach. W dwóch poprzednich poznaliśmy podstawowe Class Loadery wbudowane w JVM oraz w jaki sposób możemy stworzyć własny Class Loader. Dziś na tapetę weźmiemy to co dzieje się pod spodem Class Loadera. Zapraszamy!
Własny Class Loader
W poprzednim wpisie pozyskaliśmy informację na temat wbudowanych w JVM Class Loader’ów. Dowiedzieliśmy się także, że część z nich napisana jest w Javie. Informacja ta sprawia, iż sami możemy napisać własny Class Loader. Tworzenie własnych Class Loader’ów jest tematem dzisiejszego wpisu, zapraszamy!
Domyślne Class Loadery w Javie
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ć!
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.