Techniki Zaawansowane
8 godz. 35 min · Java · Full-stack i Programowanie
Rafał SolarskiW poczatkowych lekcjach przyjrzymy sie pokladowi, na jakim bedziemy uruchamiali nasze programy. Wykorzystamy VisualVM do podgladania parametrów JVM. Zobaczymy równiez jakie zasoby sa tam dostepne oraz dowiesz sie jak monitorowac to, czy dobrze z nich korzystamy. Opowiemy Ci tez miedzy innymi o tym, jak zrobic heap i thread dump, oraz jak wlaczyc logi GC.
Kolejne lekcje kursu zostaly poswiecone wyrazeniom regularnym. Wyrazenia regularne mozemy wykorzystac nie tylko do walidacji danych wprowadzania przez uzytkownika, ale równiez do dzielenia tekstu oraz wyluskiwania wystapien wzorców w duzym tekscie. W tym rozdziale dowiemy sie miedzy innymi tego, jak mozemy wykorzystac ten potencjal z poziomu Javy.
Dzieki typom generycznym jestesmy w stanie osiagnac bezpieczenstwo typów w trakcie kompilacji przy zachowaniu elastycznosci pisanego kodu. W nastepnym rozdziale kursu przyjrzymy sie temu, jak mozemy je wykorzystac, oraz w jaki sposób czasami nalezy z tego bezpieczenstwa zrezygnowac.
Interfejsy funkcyjne to sposób na przeniesienie odrobiny swiata programowania funkcyjnego do Javy. Gdy polaczymy je z wyrazeniami lambda oraz API strumieni pozwola nam pisac te sama logike w duzo bardziej przejrzysty sposób.
Kolekcje, czyli listy, mapy, zbiory i kolejki to jedne z najczesciej wykorzystywanych klas w codziennej pracy. To jak dobrze poznamy ich mozliwosci ma ogromny wplyw na to, w jaki sposób bedziemy podchodzili do rozwiazywania wyzwan na naszej drodze.
System plików to zasób bez którego ciezko sobie poradzic. Pozwalaja nam na dostarczanie konfiguracji, danych wejsciowych i wyjsciowych, a przez to równiez integrowanie ze soba calych systemów.W tym rozdziale nauczymy sie korzystac z tych dobrodziejstw w bezpieczny sposób wykorzystujac m.in. IO Streams.
Trzymanie daty w String to niekoniecznie najwygodniejszy sposób. Juz od pewnego czasu Java dysponuje bardzo wygodnym Date&Time API - zobaczymy, co mozemy w nim znalezc.
Wielowatkowosc nie jest prosta... i dlugo tak jeszcze pozostanie. Nawet jesli korzystamy z frameworków, które próbuja ja przed nami ukryc, to ciagle musimy byc swiadomi problemów jakie sie z nia wiaza. W tym rozdziale poznamy glówne problemy na jakie mozna natrafic programujac wielowatkowo w Javie. Poznamy równiez klasy, które zdecydowanie pomoga nam zapanowac nad ta zlozonoscia.
JDBC to najbardziej podstawowy sposób laczenia sie z baza SQL z poziomu Javy. W wielu systemach/aplikacjach stosuje sie rozwiazania ORM takie jak JPA/Hibernate. Mimo wszystko warto wiedziec jak to pod spodem dziala oraz umiec poradzic sobie w aplikacjach, gdzie wybrano bardziej "lekkie" podejscie niz Hibernate.
Na koniec kursu wykorzystamy zdobyta wiedze, aby stworzyc prosta aplikacje pozwalajaca na przechowywanie danych o wydatkach. Po stworzeniu coreu aplikacji, mozesz spróbowac uzupelnic go za pomoca GUI.
Ten kurs stworzony zostal przede wszystkim z mysla o osobach, które juz poznaly podstawy jezyka, takie jak zmienne, mechanizmy kontroli wykonania, klasy, typy generyczne.Jezeli chcesz poczuc sie swobodnie nie tylko jesli chodzi o mechanizmy jezyka, ale równiez pod wzgledem znajomosci standardowej biblioteki Javy - to kurs w sam raz dla Ciebie. Materialy beda przydatne dla studentów, którzy znaja juz podstawowa skladnie Javy; programistów Javy chcacych poszerzyc lub uporzadkowac swoja wiedze; programistów innych jezyków, którzy chca poznac inny stack technologiczny.
Cześć to jest lekcja poświęcona pracy z datami w javie
od javy 8 gruntownie przebudowano api służący do pracy z datami
dzięki temu jest ono dużo przyjemniejsze niż było wcześniej wcześniej do pracy
z datami służyła klasa date która pomimo że się nazywa date
co trzymała też time no i praca z tą klasą nie była
najwygodniejsza miała kilka takich swoich kruczyków z tego względu w javie ósmej
dodano kilka nowych typów są to klasy co ciekawe które zostały
w pewien sposób zaimportowane z biblioteki która się nazywa jodatime która
zresztą powstała z tego względu że praca z datami przy takim natywnym
wsparciu w javie nie była najwygodniejsza ze względu że tych typów jest
trochę w tym api trochę je sobie pogrupujemy najpierw
zajmiemy się klasami służącymi do pracy z czasem lokalnym a
następnie zajmiemy się klasami które są w jaki sposób przypięte jeżeli
spojrzymy na api javy służące do pracy z czasem to ten podział
jest dość intuicyjny z tego względu że jest takie jawne rozgraniczenie
które typy służą do pracy z czasem lokalnym a które do czasu takiego
właśnie z zoną w przypadku czasu lokalnego mamy do dyspozycji localdate
który służy do przechowywania po prostu samej daty localtime
który przechowuje sam czas oraz mix local daytime
który posiada jedno i drugie tutaj widzimy jak możemy utworzyć poszczególne
obiekty tych klas prawie wszystkie obiekty które służą do
pracy z datami w tym nowym api jeżeli chodzi o reprezentacje czasu
posiadają metodę now która pozwala w łatwy sposób utworzyć
ten obiekt do obecnego czasu tak tutaj jest to czas lokalny więc po
prostu jest brany czas lokalny ode mnie jest z komputera i jest spakowany
do poszczególnych obiektów tutaj widzimy też jak co zwracają to stringi
tych obiektów to jest taka tekstowa reprezentacja poszczególnych
wartości tych obiektów zobaczmy jak jeszcze możemy sobie utworzyć te obiekty
tutaj na przykładzie localdatetime możemy jawnie wskazać
o jakie wartości roku miesiąca minut
i tak dalej nam zależy tak i wtedy stworzyć sobie konkretny
obiekt poza tym że możemy wykorzystać of możemy też podać tekst
który zawiera daną datę czy dany czas plus datę w
stringu po prostu wykorzystując metodę parse tutaj jak podajemy
tę datę to jest założenie że ona jest sparsowalna
przez formater który tutaj jest podany powiedzmy bez przeciążenia
metoda jednoparametrowa wstawia taki domyślny który
jest iso local date time format iso który tutaj mam zaprezentowany
jest jednym z najpopularniejszych formatów przedstawiania daty tak
razem z czasem tutaj mamy akurat wersję bez strefy czasowej
tak bo jest to czas lokalny metoda parse jeżeli ten string który
tutaj podamy nie będzie pasował powiedzmy do tego formatera nie będzie
potrafił go obsłużyć czyli ten format będzie nieprawidłowy po prostu rzuci wyjątkiem
przy tworzeniu czasu lokalnego jeszcze ciakawą rzeczą
jest to że możemy podać strefę jest to trochę mylące zrobimy
sobie na przykład local day time now i on tutaj przyjmuje
zone id teraz co chodzi nie jest to zone id który zostanie
wypchnięty do tego obiektu tak do utworzonego obiektu
local daytime ponieważ on nie przechowuje takich informacji jest
to za to zona dla której chcemy utworzyć ten czas lokalny mogę
na przykład podać strefę czasową tutaj wykorzystując zone id of
nowego jorku tak i w ten sposób na podstawie
mojego czasu lokalnego java wyliczy sobie
jaki jest okej offset teraz w tej zonie i
mi zwróci odpowiednią godzinę tak tu jest jedenasta okej ale
ciągle to jest obiekt który reprezentuje czas lokalny
on ciągle nie jest przypięty do żadnej zony jeżeli go gdzieś przekażemy nie
będziemy pamiętali o tym że to jest z takiej zony czy z innej okej
mamy utworzony obiekt local daytime pozostałe
obiekty będzie się tworzyły analogicznie te metody jak parse of
now występują praktycznie w każdym obiekcie służącym do reprezentacji
czasu tutaj gdy już mamy obiekt przechowujący czas możemy z niego sobie wyciągnąć
poszczególne jego pola tak jak godzina minuta możemy też wykorzystać
get który zwraca nam wskazany przez nas
filtr tak przez wskazane pole tutaj w chrono field
są zdefiniowane różne pola które możemy wyciągnąć na przykład second of date to
nie jest takie nie mamy takiej metody na przykład get second of day dlatego
możemy sobie wykorzystać coś takiego poza tym inne są ciekawe takie field'y na
przykład day of week day of year tak poza tym możemy przyciąć
taki czas to jednostki która nas interesuje na przykład mamy jakiś
local daytime który ma na końcu jeszcze sekundy prawda
może to jeszcze mieć dalsze mniejsze jednostki ale my powiedzmy chcemy
mieć dokładność do minut tak możemy do tego wykorzystać metodę truncated to
i podając jako unit podać chrono unit minutes
dostaniemy wersję przeciętą w do minut to 15
sekund zostało po prostu zamienione na 0 w tym miejscu pozostałe obiekty
klasy służący do prezentacji czasu lokalnego zawierają analogiczne
metody z tego względu nie będę ich już tutaj pokazywał okej to
tyle jeżeli chodzi o te lekcje a w kolejnej lekcji już startujemy z czasami które
są w świadome strefy czasowej dzięki wielkie i do zobaczenia