Java #54: synchronizacja wątków (synchronized)

java synchronized

Praca w wielowątkowym środowisku stwarza wiele możliwości, ale też problemów. Jednym z nim jest synchronizacja wątków pracujących na tych samych zasobach. Częstym problemem, pojawiającym się w programowaniu współbieżnym, jest tzw. wyścig (ang. race condition). Pojawia się on wtedy, gdy wiele wątków wykonuje swoją pracę na tych samej sekcji krytycznej bez synchronizacji. Świetnym przykładem takiego zachowania … Dowiedz się więcej

Java #44: klasy zagnieżdżone (nested classes)

java inner static classes

Ostatnim tematem na poziomie średnio-zaawansowanym, o którym opowiem, są klasy zagnieżdżone. Wiem, że brzmi to dość enigmatycznie, ponieważ, dotąd pokazywałem jedynie kod zawarty tylko w jednej klasie. Jednak język Java daje dużo większe możliwości, niż na pierwszy rzut oka, można by się spodziewać. Klasy wewnętrzne można po prostu zdefiniować jako klasy w innej klasie. Klasy … Dowiedz się więcej

Java #24: blok statyczny i toString

java static blocks

Blok statyczny Dziś dokończenie lekcji odnośnie słowa kluczowego static. Poza polami i metodami Java umożliwia też tworzenie bloków statycznych*. Ogólnie, jeśli zobaczysz gdzieś słowo static to powinno dla Ciebie być znakiem, że nie mamy tu do czynienia z programowanie obiektowym. Często o Javie słyszysz, że jest to język w pełni obiektowy (w przeciwieństwo do np. C++). Osoby, używające tej … Dowiedz się więcej

Java#23: pola statyczne i stałe

java static fields constants

Pola statyczne i metody Pamiętasz pewnie z kursu dotyczącego podstaw programowania, że alternatywą dla programowania obiektowego jest programowanie strukturalne (oparte na metodach statycznych). Każda metoda statyczna (czyli klasowa) musi zawierać wszystkie wewnętrzne komponenty (użyte inne metody czy pola) statyczne. O ile używanie statycznych metod w innych metodach statycznych jest jak najbardziej logiczne, o tyle, możesz … Dowiedz się więcej

Java #5: Metody statyczne i metoda main

java static methods

Metody statyczne Na pewno spotkałeś/aś się z określeniem, że w Javie wszystko jest klasą. W rzeczywistości faktem jest, że każdy napisany przez nas kod MUSI zawierać się w jakiejś klasie. To wymuszenie sprawia, że Java faktycznie jest językiem w pełni obiektowym. Jednak jest sposób, aby pisać kod bez stosowania obiektów. Z pomocą przychodzą tu metody … Dowiedz się więcej