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.
Jeżeli chcemy się połączyć z sqlite czy jakąkolwiek inną bazą
jdbc potrzebujemy driver jeżeli używamy
systemu budowania na przykład jak maven gradle sbt
czy jakieś inne to wystarczy że dodamy sobie zależność zazwyczaj
ten driver jdbc znajduje się już na jakimś repozytorium
artefaktów czyli na przykład w naszym przypadku są jary tak
możemy je sobie po prostu pobrać tak nasz system budowania
będzie to robił jeżeli nie używamy żadnego systemu budowania
z jakiś powodów możemy po prostu znaleźć sobie gdzieś w internecie samego
jara pobrać go sobie ręcznie nawet w takich repozytoriów z których korzysta
maven czy jakieś inne systemy oraz dodać sobie tego jara po prostu
do klas patha jest to bardziej uciążliwe z tego względu że za każdym
razem jeżeli ktoś powiedzmy sobie pobierze nasz projekt na przykład
jakiś nasz współpracownik i będzie chciał go skompilować uruchomić tak
to będzie musiał też pobrać tego jara i dodać go sobie na class path
w idei na przykład tak okej załóżmy że używam maven musimy
znaleźć grupę oraz artefakt naszej
zależności w tym celu możemy sobie wykorzystać jakąś taką przeglądarkę
do repozytoriów maven'owych między innymi do maven central i
tak dalej ja używam w tym wypadku mvn repository kropka com
tak no i tutaj po prostu sobie wpisałem że szukamy sql
i tak no i mi wyskoczyło no i tutaj wybrałem sobie powiedzmy
najwyższą wersję tak najświeższą tak w momencie też
możemy przy okazji zobaczyć czy czy projekt żyje faktycznie tak czy są jakieś uaktualnienia
okej i tutaj pojawiają się nam powiedzmy
wpisy do plików z zależnościami odpowiednio dla różnych powiedzmy systemów
nas interesuje maven klikamy to nam się kopiuje okej i teraz w idei
znajdujemy sobie nasz pom xml i tutaj jest sekcja dependencies
i tutaj sobie po prostu wklejamy tak i pokazuje
nam się okienko maven project needs to be imported tak
on zauważył że się zmienił pom więc teraz chcemy żeby on zaimportował tę listę
te rzeczy jak klikniemy import changes tutaj w external libraries
od razu widzimy wam się pojawił ten z sqlite jdbc jeżeli
nam znieknęło to okienko zamknęliśmy je czy coś innego zrobiliśmy to jeszcze możemy
na przykład wywołać w okienku maven tak tutaj
maven projects możemy sobie zrobić reimport of maven project tu
sobie kliknąć to po prostu tak tutaj też przy okazji jak tu jesteśmy to możemy
sobie zobaczyć co w tym driverze jest też widzimy że tutaj są
między innymi klasy implementujące connection
tak z jdk oraz
jdbc jdbc w przypadku sqlite
to jest klasa które implementuje driver i jest to nic innego jak klasa
która jest w stanie zmontować connection to jeżeli używamy mavena
to jest wszystko tak możemy też sobie to sprawdzić wpisując
teraz wyszukując klasy jdbc którą wcześniej widzieliśmy
która była w tym pakiecie właśnie sqlite'a w tym jarze i widzimy że tutaj z poziomu idei
ona jest dostępna tak jeżeli nie chcesz używać mavena czy jakiegoś
innego systemu budowania który po prostu ci pobiera te jary to możesz to po prostu
zrobić za niego tak znaleźć to gdzieś w internecie pobrać te jary
na this do siebie i dodać później przy kompilacji przy uruchomieniu do klas path w
tym celu też tak jak wcześniej możemy sobie znaleźć tego jara na nvm repository kropka com
tylko tutaj zamiast już brać powiedzmy ten wpis do dependency
tutaj możemy wpisać sobie na jar i on nam po prostu
pobierze tego jara w tym momencie tak okej jak mamy już tego jara
w jakimś innym miejscu to teraz wystarczy że wejdziemy w file project
structure i tutaj mamy libraries tak
klikamy tam coś takiego plusika wybieramy java
i on nam wyświetla powiedzmy pozwala wybrać co chcemy dodać
tak znajdujemy naszego java dodajemy
tak okej teraz mu się zmieniła ikonka też
on jest traktowany teraz po prostu jako zależność i
tutaj zobaczymy sobie możemy sobie znaleźć
klasę jdbc na przykład ze sqlite z kolei widzimy że intellij widzi
teraz te zależność tak te rzeczy które są w tym jarze to
by się coś pojawiło w external libraries w zależności od tego gdzie umieściliśmy
tego jara jakby się nie znajdował w root tak czy powiedzmy
w podkatalogach projektu to by tutaj wyądował tak okej teraz
kiedy już mamy dodanego naszego drivera możemy zacząć pracę z bazą ja
w kolejnych lekcjach będę wykorzystywał wersji z mavenem ale nie ma
to większego znaczenia dzięki wielkie i do zobaczenia