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ść witam cię bardzo serdecznie w rozdziale poświęconym kolekcjom
w javie prawdopodobnie kolekcje są jednymi z najczęściej wykorzystywanych przez
nas klas w sdk z tego względu warto umieć się intuicyjnie
wśród nich poruszać tutaj jest pewna hierarchia tych interfejsów
i klas ich implementujących jak widzimy tych kolekcji w javie jest trochę
nie są to wszystkie ani wszystkie interfejsy jest
to pewna część z nich które najczęściej wykorzystujemy wśród nich mamy spotkame
już przez nas listę i mapę w trakcie tego rozdziału przejdziemy
po tych najważniejszych implementacjach interfejsach które tutaj widzimy też
część tych interfejsów ma kilka inkrementacji na przykład lista ma array listę i linked
listę mapa ma hash mapę i tree mapę tak z set'em jest też
podobnie no i postaramy się znaleźć powiedzmy
takie pewne wskazówki kiedy którego używać co kiedy jest
powiedzmy intuicyjnym rozwiązaniem tak również poznamy co jest
dobrą praktyką oraz czego warto się wystrzegać w kontekście pracy
z kolekcjami bardzo ważną rzeczą o której trzeba wspomnieć
w kontekście pracy ze strukturami danych jakimi de facto są kolekcje
jest tak zwana złożoność obliczeniowa i jeszcze złożoność
pamięciowa złożoność pamięciowa to jest powiedzmy koszt
przechowywania poszczególnych elementów to ile w miarę dodawania kolejnych elementów
do listy do mapy czy do jakiejś innej kolekcji jak puchnie
ten obiekt na na naszym heap'ie na przykład tak jeżeli
zaś chodzi o złożoność obliczeniową jest to pewnego rodzaju koszt
związany z wrzucaniem na przykład do listy z wyciąganiem z listy jest to
po prostu jakby złożoność poszczególnych operacji na danych
strukturach warto przynajmniej pobieżnie zaznajomić
się jak drogie jest wrzucanie do link listy do array listy jak
drogi jest powiedzmy odczyt poszczególnych wartości
na przykład w array liście i której chcemy 50 element tak
no to on robi ciach pod spodem jest zwykły array więc
odczyt poszczególnych pól na array jest praktycznie natychmiastowy tak
a w link liście żeby powiedzmy dostać 50 element
to musimy przejść po wszystkich poprzednich elementach z tego względu że w link liście
mamy tak jakby każdy element jest połączony z każdym kolejnym tak
z kolejnym po prostu używając referencji tak więc
tutaj jest to już kosztowniejsze dlatego proponuję abyś zapoznał
się z tymi złożonościami oraz chcesz dowiedzieć jak dokładnie
działają te struktury pod spodem już w implementacji to po pierwsze
proponuję ci abyś przeczytał jakąś literaturę odnośnie algorytmiki
i struktur danych mamy też taką literaturę po polsku oraz abyś
jeżeli jesteś zainteresowany tym jak ktoś zaimplementowane w javie po prostu zajrzał
do sdk to wszystko jest praktycznie napisane już w javie tam nie ma jakiejś natywnych
wywołań do jakiś powiedzmy elementów napisanych w c pod spodem
tylko tu jest wszystko w javie więc możesz mniej więcej to prześledzić okej
zapraszam cię do zapoznania się z materiałem