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

Java 8 #1: metody domyślne i statyczne w interfejsach

java 8 interface

Interfejsy w JDK 7 Zanim zacznę opisywać zmiany jakie zaszły w interfejsach w Javie w wersji ósmej, takie jak np. metody domyślne czy metody statyczne, spójrz na moje małe podsumowanie, jak działały one w poprzedniej wersji. Właściwości interfejsów w JDK 7: interfejs implementujesz w klasie a nie dziedziczysz (jak w przypadku klas abstrakcyjnych) interfejs może … Dowiedz się więcej

SQL #4: Transakcje, ACID i poziomy izolacji

sql transactions

Transakcja Jest to zbiór operacji na bazie danych, które stanowią pewną całość. Powinny zostać wykonane wszystkie albo żadna z nich. Nie ma mowy o częściowym wykonaniu. Warunki jakie powinny spełniać transakcje są dokładniej opisane w zasadach ACID. Przykładem transakcji może być dokonywanie przelewu bankowego. W tym kursie przedstawione zostanie działanie transakcji w PostgreSQL. W tym … Dowiedz się więcej

SQL #3: Group by, having, funkcje agregujące oraz join

sql group by having

GROUP BY i HAVING Aby zrozumieć do czego służą funkcje agregujące, wpierw musisz pojąć założenia grupowania w języku SQL. GROUP BY i HAVING służą do grupowanie danych a potem ustawienie warunku na jego wyniku. Przypomina to bardzo filtrowanie poprzez WHERE. Podstawową różnicą między nimi jest to, że WHERE filtruje wiersze przed grupowaniem i obliczeniami (decyduje, … Dowiedz się więcej

SQL #2: tworzenie schematu, zapytań i edycja danych

sql crud

Język SQL (ang. Structured Query Language) jest rodzajem deklaratywnego języka, który powstał w latach 70-siątych, do obsługi danych w bazach. Język ten w swojej istocie miał być intuicyjny i prosty, tak aby maksymalnie ułatwić programiście pracę na bazie danych. Tworzenie schematu CREATE DATABASE – tworzenie bazy danych CREATE TABLE – tworzy pojedynczą tabelę. W najprostszym … Dowiedz się więcej

SQL #1: schemat bazy danych

sql basics

Historia Koncepcja baz danych jest prawie tak stara jak cała informatyka. Ogólna idea baz danych polega na posiadaniu wyspecjalizowanego programu (silnika bazodanowego), który mógłby wyszukiwać dane przede wszystkim po ich zawartości a nie po linkach do nich. Schemat bazy danych, to inaczej sposób opisania relacji i struktur Twoich danych. Kolejnym problemem było powtarzanie się danych … Dowiedz się więcej

Java #59: struktury danych bezpieczne wątkowo

java threadsafe structures

Na koniec cyku wpisów związanych z wielowątkowością, warto przyjrzeć się, jakie struktury danych bezpieczne wątkowo oferuje programistom Java. Okazuje się, że wiele problemów zostało już dawno przez kogoś rozwiązane (co jest dość częste w programowaniu). Klasy niemodyfikowalne Pierwszym rodzajem struktur przydatnych do pracy z wątkami są klasy niemodyfikowalne. Są one szczególnie przydatne we wszelkich obiektach … Dowiedz się więcej