Jak zwykle końcówkę czerwca spędziliśmy w stolicy biorąc udział w Confiturze. Jest to największa darmowa konferencja Javova w Polsce, na której występują najbardziej znane osoby ze środowiska JVM. W tym roku odbyła się ona w nowy miejscu jakim jest budynek Expo XXI. Zapraszamy na relację!
Autor: Krzysztof Chruściel
#Book – Everest Lidera
Agnieszka zawsze dba o to, aby nigdy nie zabrakło nam kolejnych pozycji do czytania (nasz budżet na tym cierpi). Najnowszym zakupem jest książka “Everest Lidera – O wartościach, silnym zespole i skutecznym przywództwie” Anny Sarnackiej-Smith. Mimo, że nie jestem liderem, książka ta pozwoliła mi poznać tajniki bycia dobrym przywódcą. Ale czy ta książka przeznaczona jest tylko dla liderów? Zapraszam do recenzji!
Co kryje plik .class?
Dziś zejdziemy poziom niżej w stosunku do kodu, z którym mamy styczność na co dzień. Postaram się pokazać wam co znajduje się w skompilowany pliku .class oraz jaki ma to wpływ na JVM’a na przykładzie aplikacji enterprise, czyli HelloWorld. W samym skompilowanym pliku oprócz kodu bajtowego z instrukcjami dla JVM, znajdziemy także metadane. Jeśli chcesz się dowiedzieć co dokładnie siedzi w środku, zapraszam!
Bezpieczne Mapy w Javie?
W Javie istnieje kilka sposobów tworzenia bezpiecznych wątkowo Map. Przez to, iż istnieje kilka sposobów, może to prowadzić do zakłopotania, który z nich wybrać. W dzisiejszym wpisie omówimy sobie trzy najpopularniejsze sposoby tworzenia synchronizowanych map, czyli Hashtable, SynchronizedMap oraz ConcurrentHashMap, zapraszam!
C_tech #1 TDD in practice – zaproszenie na prelekcję
Już 17 maja w Katowicach obędzie się pierwsze spotkanie z serii C_tech. Są to spotkania organizowane przez firmę Connectis_, które będą się odbywać w ich siedzibie. Miło mi poinformować, iż będę występował jako pierwszy prelegent z tematem “C_tech #1 TDD in practice“.
ForkJoinPool czyli dziel i zwyciężaj
ForkJoinPool jest specyficzną pulą, która została dodana w Javie 7, jednakże na dobre zaczęto jej używać w Javie 8. Pula ta służy do realizacji zadań, które da się podzielić. Do podziału problemów stosuje ona algorytm dziel i zwyciężaj, a te podzielone zadania przydzielane są dzięki wykorzystaniu algorytmu Work-Stealing. Jest to bardzo ciekawa pula, ponieważ jest współdzielona przez cały proces uruchomiony na JVM.
Executors – tworzymy własną pulę wątków
Podczas tworzenia zadań asynchronicznych możemy wskazać własną pulę wątków. Takie rozwiązanie jest lepsze niż operowanie na domyślnej puli wątków, ponieważ pozwala nam kontrolować jej parametry. Java dostarcza przyjazny mechanizm Executors, który umożliwia tworzenie puli wątków.
CompletableFuture – dlaczego, po co, jak?
Klasa CompletableFuture jest z nami od dłuższego czasu, jednakże ostatnimi czasy stosowałem ją bardzo często. Podczas swojej pracy postanowiłem spisać między innymi na co warto zwrócić szczególną uwagę stosując CompletableFuture, jak działają poszczególne transformacje oraz jak obsłużyć sytuacje wyjątkow, zapraszam!
ThreadFactory, czyli pool-n-thread-m
Jestem zdania, że nie ma co na siłę dorzucać wielowątkowości do każdej tworzonej aplikacji, jednakże czasem dostajemy zadanie, w którym musimy zrównoleglić wykonywanie zadań. “Dobra” wielowątkowość może poprawić wydajność i czas przetwarzania naszej aplikacji, jednakże taki przywilej niesie ze sobą także różne utrudnienia takie jak choćby debugowanie. Czy możemy to jakoś uprościć?
Java 10 – czyli “var” na pokładzie
Jakiś czas temu opisywałem featury z Javy 9, tymczasem 20 marca została wydana Java w wersji 10. Po raz kolejny nie wprowadza ona tak dużych zmian jak wersja 8, jednakże pojawił się ciekawy feature zwany “local variable type inference“. Java pomimo, iż jest językiem statycznie typowanym, od wersji 10 pozwala nam na lekkie złamanie tej obietnicy,