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.
Jak w ogóle w javie pracować z plikami zacznijmy od
tego że chcemy coś albo odczytać albo zapisać musimy sobie zadać od razu jedno pytanie
w jaki sposób chcemy odczytywać i zapisywać jaki ma być dostęp
do naszego pliku czy ma być on sekwencyjny czy swobodny zauważ że jeżeli
mamy dane typu jakiś tekst na przykład jakiś
tekst w którym chcemy coś zliczyć coś powiedzmy przepisać ten tekst gdzie indziej
przeformatować go lub zmienić powiedzmy jego kodowanie
zazwyczaj będziemy czytali ten plik linia po linii znak po znaku prawda
w sposób sekwencyjny przykładem takiego tekstu może być lorem ipsum tak
jakiś dokument jakiś pdf tak doc i tak
dalej xml jason nieważne prawda w każdym razie ten
plik będziemy czytali po fragmencie możliwe że od początku do końca możemy
też czytać plik w sposób random access tak to jest ten dostęp swobodny
wtedy kiedy interesuje nas na przykład tylko bajt
od któregoś do któregoś offsetu prawda na przykład interesuje nas tylko od
setnego do 120 offsetu bajt prawda te bajt
nas interesuje to wtedy możemy sobie zrobić random access ok w
zależności od tego który z tych dostępów wybierzemy będziemy używali
innych klas w przypadku dostępu sekwencyjnego użyjemy strumieni iostream
które są trochę podobne do tych strumieni z lambd no i tam jest powiedzmy ileś
tam klas które do tego służą a w przypadku dostępu swobodnego
będziemy używali random access file który w odróżnieniu od streamów też
jedną klasą możemy jednocześnie zapisywać i odczytywać o tym wszystkim dowiemy się już w
poszczególnych lekcjach poza tym że wiemy jak odczytywać tak
czy sekwencyjnie czy swobodnie to jeszcze warto sobie zadać pytanie co my odczytujemy
i jaki chcemy powiedzmy w postaci czego
chcemy otrzymywać te elementy które czytamy czy mają być to bajty które mają sens
na przykład w jakichś plikach graficznych czy w jakich powiedzmy niskopoziomowych
plikach chociaż nie wiem baz danych czy jakiś storage tak czy
może raczej interesuje nas już tekst powiedzmy nie interesuje nas to jak to jest
składowane w bajtach tak tylko samo znaczenie już powiedzmy tych bajtów na przykład
jeżeli czytamy jakiś plik i csv i jakieś json'y to interesuje
nas powiedzmy sam tekst później już odpowiednio sobie znajdą odpowiednio format
tego pliku odpowiednio je sobie zrzutujemy już na string na
na jakieś integery i tak dalej