Java 9: modularyzacja kodu i mechanizm jshell

java 9

W tej notce dowiesz się o większości istotnych zmianach jakie zaszły w Java 9. Potraktuj go jako przewodnik dla doświadczonego programisty. Większość z nich to poprawki jakie programiści JDK musieli zawrzeć po wydaniu Java 8. Aby w pełni zrozumieć ten wpis polecam wpierw zapoznać się z kursem odnośnie wszystkich zmian, jakie zaszły w JDK 8*. … Dowiedz się więcej

Steve Jobs: recenzja filmu (2015) oraz biografii

Steve Jobs movie and book

Gdybym miał za zadanie wypisać stu najbardziej wpływowych osób przełomu tysiącleci, na pewno jednym z nich byłby właśnie Steve Jobs. Kim jednak właściwie była ta tajemnicza osoba? Jak to się stało, że hippis z kalifornijskiej klasy średniej, który nie był ani wybitnym inżynierem, ani programistą, tak bardzo wpłynął na całą historię przemysłu elektronicznego? Steve Jobs … Dowiedz się więcej

Cyfrowy nomadyzm #2: rezerwacje lotów i hoteli

digital nomad

Rezerwacje lotów i hoteli W kolejnej części mój poradnik cyfrowego nomada, postara przybliżyć Ci w jaki sposób efektywnie i tanio rezerwować noclegi w hotelach oraz loty samolotami. Dodatkowo podaję Ci też interesujące wskazówki, jak przedostać się pomiędzy lotniskiem a Twoim miejscem pobytu, oraz na co zwracać uwagę przy wyborze linii lotniczych. Wyszukiwarki lotów eSky Całkiem … Dowiedz się więcej

Java 8 #6: DateTime API – daty i czas

date api

Nowe DateTime API Nie rzadko w Twojej implementacji będziesz korzystał z danych, które będą wymagać przypisania do nich odpowiednich wartości dat czy czasu. Do JDK w wersji 7 programiści Java byli zmuszeni do korzystania z prostych i mało udanych implementacji zawartych w klasach Date i Calendar. Największe wyzwania jakie stały przed twórcami nowego DateTime API … Dowiedz się więcej

Java 8 #5: zastosowanie Stream API w przetwarzaniu danych

stream api

Ukoronowaniem wszystkich poprzednich lekcji odnośnie Javy 8, jest właśnie biblioteka Stream API. To ona wymusiła na programistach poważne zmiany w samej semantyce języka Java, takich jak choćby lambdy, a co za nimi idzie interfejsy funkcyjne. Strumieniem nazywamy specjalną sekwencję operacji, które można wykonywać jedną po drugim (w formie tzw. pipeline’u), tak aby przekształcić go do … Dowiedz się więcej

Java 8 #4: Optional – pozbądź się null pointerów

typ opakowujacy optional

Czym jest Optional? Jednym z najczęstszych zarzutów do języka Javy jest to, że nie jest to język, które w łatwy sposób radzi sobie z brakiem przypisanej referencji do obiektu (czyli po prostu z null pointerem). Częstość z jaką programiści Javy musieli radzić sobie z nieprzewidywanymi wyjątkami typu null pointer (ang. null pointer exception), że w … Dowiedz się więcej

Java 8 #3: interfejsy funkcyjne – przegląd

przegląd interfejsów funkcyjnych

Różne interfejsy funkcyjne W poprzednim wpisie postarałem się wytłumaczyć, że wyrażenie lambda można z łatwością przekształcić na znaną już Ci klasę anonimową i na odwrót. Nie znaczy to jednak, że obie te struktury są dokładnie tym samym. Będąc bardziej ścisłym wyrażenie lambda jest udostępnioną możliwością przekształcenia fragmentu kodu na obiekt. Wzorcem dla każdego z tych … Dowiedz się więcej

Java 8 #2: wyrażenia lambda i interfejs funkcyjny

lambda expression

Wyrażenie lambda Wyrażenia lambda (ang. lambda expression) są próbą zaimplementowania koncepcji związanych z programowaniem funkcyjnych* w pełni obiektowym języku jakim jest Java. Koncept ten jest bardzo stary, o czym możesz się przekonać czytając chociażby blog Martina Fowlera**. Dotychczas w Javie pewną brzydką alternatywą dla wyrażeń lambda były klasy anonimowe. Sam przyznasz jednak, że nie są … Dowiedz się więcej