JAVA

@SuppressWarnings – co tutaj można wpisać?

@SuppressWarnings w dużym skrócie służy do „wyciszania” ostrzeżeń. Tylko, że jest tutaj mały problem – parametryzacja jest dokonana za pomocą ciągów znaków (String), co nie ułatwia korzystania z tej adnotacji. Przyjrzymy się tutaj oficjalnym literałom jak i tym wspieranym przez IntelliJ IDEA. Wspierane literały w Java 8 Jako że, literały są wspierane per wersja, będę …

@SuppressWarnings – co tutaj można wpisać? Czytaj dalej »

Meta adnotacje w Javie

@Target Określa na jakich elementach można będzie używać adnotacji. Java definiuje ponad 10 opcji. Najczęściej spotykane to:-ElementType.TYPE – jeśli chcemy aby adnotacja mogła być używana na klasach, interfejsach, enumeracjach czy rekordach-ElementType.METHOD – jeśli chcemy aby adnotacja mogła być używana na metodach-ElementType.FIELD – jeśli chcemy aby adnotacja mogła być używana na polach klasy @Retention Określa w …

Meta adnotacje w Javie Czytaj dalej »

Collections.forEach vs Stream.forEach

Obydwie metody zrobią dla nas to samo. Z tym, że wersja Collections.forEach skorzysta z iteratora kolekcji (jeśli takowy jest) a wersja Stream.forEach już nie. Co to zmienia? To, że używając Collections.forEach załóżmy na liście będziemy mieli gwarancję kolejności wykonania, niestety używając Stream.forEach już takiej nie mamy. Warto zajrzeć

Monitor w Javie

Monitor to mechanizm synchronizacji wykorzystywany do zarządzania dostępem do zasobów współdzielonych przez wiele wątków. Pozwala na uzyskanie ekskluzywnego (tylko jeden wątek w danym momencie) dostępu do zasobów. W praktyce wygląda to tak, że gdy jeden wątek jest w trakcie wykonywania metody lub bloku synchronizowanego (jeśli blok jest oparty o synchronized(this)) w klasie A, to w …

Monitor w Javie Czytaj dalej »

Java Thread Dump – jak uzyskać?

jcmd jcdm jest narzędziem diagnostycznym dostępnym w JDK (w katalogu bin). Dzięki niemu wykorzystując parametr Thread.print można uzyskać Thread Dump (pierwszy parametr to id procesu): jstack jstack jest dedykowanym narzędziem do uzyskiwania Thread Dumpów, dostępnym w JDK (w katalogu bin). W podstawowej wersji przyjmuje ono id procesu:

Java Thread Dump – co zawiera?

Zaczynając od przykładu – tutaj znajdziesz kod serwera opartego o ServerSocket. Po uruchomieniu serwera i znalezieniu jego PID. za pomocą komendy (gdzie 12108 to PID): został wygenerowany następujący Thread Dump: Struktura 1. Pierwsza część to ogólny opis zawierający: PID, datę wygenerowania oraz opis JDK: 2. Teoretycznie (według wielu opisów znalezionych w Internecie) dostajemy informacje na …

Java Thread Dump – co zawiera? Czytaj dalej »

Słowo kluczowe volatile w Java

Idea volatile wydaje się być prosta – hej JVM! nie używaj optymalizacji i pamięci podręcznej (cache), raczej sięgnij bezpośrednio do pamięci. Możliwa sytuacja bez volatile Jak widać na powyższym diagramie bez użycia słowa kluczowego volatile może się zdarzyć, że jeden wątek otrzyma przy odczycie wartość 5 a drugi 0. Prawidłową wartością jest 5, ale wątek …

Słowo kluczowe volatile w Java Czytaj dalej »