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ść w poprzednich lekcjach nauczyliśmy się jak parsować formatować
tworzyć robić jakieś takie podstawowe operacje na datach typu na
przykład obcinanie do jakichś sekund tak oraz teraz na
datach nauczymy się jeszcze robić jakąś taką postawową arytmetykę która może nam się przydać na
przykład jeżeli mamy jakąś datę bazową i wiemy że coś ileś trwało i
chcemy na przykład dowiedzieć jaka jest druga data tak albo na przykład dostajemy różne
elementy jakieś powiedzmy eventy w jakim systemie streamingowym i
chcemy sprawdzić czy jakieś daty mieszczą się w jakimś okresie czasu tak do
tego przydadzą nam się podstawowe operacje arytmetyczne a w przypadku
dat jeżeli powiedzmy mamy jakieś punkty w czasie i chcemy robić
powiedzmy jakąś arytmetykę to tutaj będziemy potrzebowali poza obiektami
które reprezentują punkty w czasie i jeszcze obiekty które będą reprezentowały
okres jak i długość trwania czegoś tak w javie
jest to period oraz duration one między sobą mają kilka
różnic mianowicie duration w większości służy do
przechowywania dłuższych jakichś odcinków tak nie
jest to powiedzmy nie ma ograniczenia duration że on nie może przechowywać na przykład linii nie
ma z tym problemu tak tutaj też możemy zrobić of days
ale jest między nimi jeszcze kilka innych różnic które później pokaże
zobaczmy jakie operacje możemy zrobić na tym instant tak
czyli na jakiejś liczbie powiedzmy milisekund oraz nanosekund
od 1970 możemy tutaj zrobić minus plus tak
i powiedzmy traktując to jako jakąś datę taką bazową jakiś czas
możemy dodać do tego na przykład period tak dwudniowy i wyświetlić
co nam w ten sposób wyszło mieliśmy 10 tutaj jeszcze wyświetlmy co jest w
tym instancie tak mieliśmy teraz 12 w
przypadku kiedy dodamy tutaj duration to po prostu dodamy dwie godziny
w tym momencie analogicznie działa minus odciągam
analogicznie godziny oraz 2 dni tak
no okej dobra to potrafimy dodawać odejmować na tym period jak
zobaczymy możemy jeszcze robić mnożenie tego tak a
na tym możemy robić też mnożenie ale również dzielenie
w przypadku duration teraz powiedzmy że mamy jakieś dwie
daty i ja je tutaj sobie stworzę jeżeli nie chcecie wpisywać całego
całej tej sekwencji tego formatu ale chcecie po prostu poeksperymentować to tutaj
java w doku jest przykładowy parsujący się w ciąg znaków a
nie można eksperymentować powiedzmy że to będzie jakiś w skrócie jeden
tak i dwa powiedzmy tutaj coś zmieńmy
na przykład niech tu będzie 3 dni później okej i teraz
mając te 1 i 2 a możemy wykorzystać sobie na duration zrobić
sobie between tak i tutaj możemy podać 1 i 2 i
wyświetlmy co z tutaj dostaliśmy okej dostaliśmy tutaj taki
format 72 godziny tyle wyniosły
to duration które powstało w wyniku zrobienia tego between to też możemy później
sobie zrzutować łatwo na przykład na poszczególne jakieś
mniejsze jednostki na przykład na minuty tak to dokładnie trwało tak
no i później możemy to wykorzystywać gdzieś u nas w programie okej
teraz powiedzmy że mamy jakieś dwie daty i chcemy sobie na przykład je porównać
tak chcemy sprawdzić która była pierwsza możemy zrobić sobie na przykład zone date 1
tak tutaj i możemy na nim wykorzystać metodę is before na
przykład tak możemy sobie porównać łatwo czy ona jest przed czy po nią metoda
is after wtedy działa analogicznie oczywiście można też je porównać czy one są takie
same dokładnie tak dzięki temu możemy na przykład napisać
sobie takiego ifa który sprawdzi czy przychodząca gdzieś
z zewnątrz na przykład do użytkownika sparsowana data mieści się
między na przykład tymi dwiema datami tak od i do tak i tutaj możemy
na przykład sprawdzić czy ona jest akurat jest to jest czerwiec
więc się wpasuje pomiędzy ok tyle jeżeli chodzi o porównywanie dat teraz
jeszcze mówiłem że pokaże czym się różni dokładnie period od duration duration
jest takim wrapperem na jakiś
czas trwania i tutaj chodzi o taki dokładny czas to jest taki
czas powiedzmy z dokładnością do godziny do minuty do sekundy tak zaś period
jest takim wrapperem bo powiedzmy na czas trwania ale z punktu widzenia bardziej dat
dat nie godzi tak z tego względu jeżeli mamy na przykład
zoned date time tutaj już widzimy że ta data to jest
przed zmianą na plus jeden tak czyli przed zmianą na czas zimowy i
do tej daty dodamy sobie plus czy nie robiliśmy
plus days i one powiedzmy działało tak nie przewidzianie
w poprzedniej powiedzmy w poprzednich lekcjach tutaj zobaczymy sobie teraz że inaczej
ten plus się zachował jeżeli dodaliśmy period jednego dnia a
inaczej jeżeli duration period tak jak mówiłem jest to taki wrapper na czas
na czas trwania z punktu widzenia daty i
on teraz jak dodamy to przerzuci nam dokładnie tu sobie zobaczymy
jest 28 i wylądował na 12:00 tak to jest takie
zachowanie jak byśmy zrobili plus days 1 tak czyli dodał nam w tym
momencie ile 25 godzin prawda tak spróbował
wyrównać te powiedzmy różnice jak mówiłem
plus period 1 dzień tutaj mówi dodaj mi jeden dzień nie
przejmuj się godziną tak ważne są te dni a w przypadku kiedy
mówimy plus duration jeden dzień to mówimy mu dodaj
mi dokładnie 24 godziny tak i to jest ta różnica powiedzmy przy
operacjach arytmetycznych tak samo przy odejmowaniu inaczej trochę jest
traktowany period a inaczej duration okej to jest koniec tej lekcji i
jednocześnie jest to koniec rozdziału o czasie w javie gratuluję
ci wytrwałości dzięki wielkie i do zobaczenia w kolejnych lekcjach