java

Porównanie kolekcji w Pythonie i Javie. Czyli po co nam słownik w programowaniu?

Jeżeli tak jak ja zaczęliście swoją przygodę z programowaniem od Javy, a potem poznawaliście inne języki, pewnie zwróciliście uwagę na różnicę w kolekcjach (czyli strukturach danych) pomiędzy językami. Może zauważyliście różnice w nazewnictwie, albo w składni, a z czasem skojarzyliście które metody są swoimi odpowiednikami. Postanowiłem wziąć na tapet kolekcje z dwóch popularnych języków – Pythona i Javy – i zrobić małe podsumowanie wiedzy. Lista, królowa kolekcji! Lista w Pythonie, podobnie […]

Operator warunkowy w Javie

Pamiętam, że gdy pierwszy raz zobaczyłem składnię operatora warunkowego nie za bardzo wiedziałem o co w tym chodzi. Było to jednak na samym początku nauki programowania i dość szybko zrozumiałem jego wagę w pisaniu czytelnego kodu. Dziś jest to chyba najczęściej stosowane przeze mnie uproszczenie składni w Javie. Jedna linia zamiast kilku. O co chodzi w operatorze warunkowym? Jest to po prostu zamienienie instrukcji warunkowej if-else do postaci trójargumentowego operatora: booleanValue ? […]

try, catch, finally… Obsługa wyjątków w Javie

Wyjątki są nierozłączną częścią programowania i choćbyśmy nie wiem jak się starali, to i tak nie uchronimy się przed ich pojawieniem. Jednak możemy odpowiednio zabezpieczyć się na wypadek wystąpienia wyjątku, czyli „wyłapać” wyjątek za pomocą bloków try, catch i finally. Wyobraźmy sobie program, który obsługuje dane obywateli. Obiekt Citizen ma między innymi pola z imieniem, nazwiskiem i adresem. Obiekt Address natomiast ma pole miasto (obiekt klasy City). Poniższy […]

Java. Pytania rekrutacyjne dla Juniora: Zarządzanie pamięcią w Javie. Czyli co to jest garbage collector?

Gdzie przechowywane są zmienne i obiekty w Javie? Chyba każdy kto czyta ten wpis musiał słyszeć określenie garbage collector. Wiedza o tym jak działa „śmieciarz” jest jedną z fundamentalnych przy pracy z Javą i często pojawia się na rozmowach rekrutacyjnych. Jednak zacznijmy od początku. W Javie za zarządzanie pamięcią odpowiada wirtualna maszyna, czyli JVM (ang. Java Virtual Machine). Wyręcza ona w tym zakresie programistę, który nie musi przejmować […]

Java. Pytania rekrutacyjne dla Juniora: Co to jest String Pool i porównania Stringów (łańcuchów).

Pytanie to może wydawać się proste, bo już po samej nazwie możemy domyślać się o co chodzi ze String Pool. Jednak na wstępie warto przytoczyć pojęcie mutowalności (zmienności) obiektów, a właściwie to niemutowlności (niezmienności) na przykładzie łańcuchów znaków, czyli Stringów.  Czym jest String Pool? Co to znaczy, że String jest niemutowalny? Otóż po utworzeniu nowego obiektu klasy String nie możemy go już zmienić. Wykonując operacje na łańcuchach w tle […]

Java. Pytania rekrutacyjne dla Juniora: Czy streamy (strumienie) są lazy i co to znaczy?

Kontynuując serię pytań o strumieniach, warto rozwinąć kwestię czasu, w którym wykonują się operacje pośrednie.  Operacje pośrednie w strumieniu są lazy Operacje pośrednie są lazy, czyli mają wartościowanie leniwe. Mianowicie każda pośrednia operacja nie jest wykonywana dopóki nie zostanie wywołana operacja końcowa. Operacje pośrednie dostarczają jedynie nowe strumienie. Jak już wspomniałem we wcześniejszym wpisie nie jest wymagane użycie jakiejkolwiek operacji końcowej, tak więc zadeklarowane operacje […]

Java. Pytania rekrutacyjne dla Juniora: Rodzaje operacji w streamach (strumieniach).

Streamy w Javie wprowadzano w wersji 8 i znacznie ułatwiły przeprowadzanie wielu operacji na kolekcjach, często zastępując mniej czytelne pętle. I choć idea strumieni jest w miarę jasna warto przed rozmową kwalifikacyjną przypomnieć sobie trochę szczegółów o budowie i rodzajach operacji na streamach. Dwa rodzaje operacji na streamach – pośrednie i końcowe. Struktura strumienia, czy też jego rurociąg (ang. pipeline), składa się z trzech elementów: źródła (np. kolekcji) przekształconego w strumień; […]

Przewiń do góry