Przejrzałem już naprawdę sporo kanałów na YT i Twój jest moim zdaniem najlepszy, dobór tematów, sposób tłumaczenie i pokazywanie na życiowych przykładach bardzo na plus, dobra robota i oby tak dalej! :)
W żadnym z 4 znanych mi języków nie spotkałem się by ktoś tak skutecznie przekazywał wiedzę z programowania. Dlatego oglądam Twój kanał bardziej chętnie niż kanały w moim języku ojczystym :) Dziękuję za świetny materiał i pozdrawiam!
Świetnie przedstawiona wiedza, również niezwykle przyjemnie się słucha, gdy autor dobrze mówi po angielsku i nie kaleczy wymowy co na polskim IT youtubie niestety jest normą. Pozdrawiam :)
Omg świetny materiał i tłumaczenie szukałem po różnych stronach a dopiero teraz zrozumiałem, jesteś mistrzem! Wgl świetny głos jak go usłyszałem to przypomniało mi się jak oglądałem Hypera jako dzieciak i Ci co opowiadali o grach mieli podobny jak Ty ^^
Fajne mocno skoncentrowany Materiał. utrzymany wysoki poziom techniczny dużo wyrażeń Lambda i relacji do metod. Stream był dla mnie nowym zagadnieniem i jest to duże ułatwienie to jest skrócenie kodu ile pętli trzeba by napisać, żeby osiągnąć pożądany wynik. Ciekawe bardzo ciekawe.
Dobry content, po nazwie spodziewałem sie jakiegoś noob shitu ale wiedza i forma jest na b.wysokim poziomie. Nie jestem jutuberem, ale mysle ze dobrej jutuberskiej porady moge udzielić, otóż podczas nauki wole słuchać własnej muzyki niz czyjejś, zwłaszcza że każdy ma inny gust, więc ta z tła jest do wyjebania tak na przyszłość, też powinno być mniej zachodu z montażem od razu
Dzięki za komentarz! To film sprzed kilku lat, z początkowego okresu istnienia kanału, stąd obecność muzyki w tle. Od długiego czasu już jej w filmach nie ma :)
Gratuluję :) Materiał jest świetny, moze warto wrzucić wersję w języku angielskim? Można by dodać komentarz o wydajności stream'a vs pętla for, np dla sumowania.
Dzięki! Myślałem o nagraniu odcinka poświęconego wydajności streamów, bo to bardzo ciekawy i zaskakujący temat, także jest szansa, że pojawi się on w niedalekiej przyszłości :) Na filmy po angielsku też jest szansa, planuję zrobić kilka na próbę w nadchodzącym roku :)
19:30 zrobiłem startsWith("S") findFirst() na SECIE prawcowników - zawsze zwraca tego samego pracownika - jest 3 spełniających kryterium . Oczekiwałem losowych pracowników - Set nie trzyma kolejności dodawania Dlaczego tak jest ?
Nie trzyma, ale to nie oznacza, że zawsze będziesz otrzymywał losowy element. Wszystko zależy tutaj od kompilatora i od optymalizacji, których dokonuje. Należy trochę zmienić sposób myślenia o secie - zamiast myśleć "skoro set nie trzyma kolejności dodawania, w odpowiedzi będę otrzymywał losowe elementy", należy raczej myśleć "kolejność zwracania elementów z setu NIE JEST OKREŚLONA W DEFINICJI setu, więc różne kompilatory mogą wykonywać tę operację w różny sposób". Nie możesz więc założyć, że elementy będą zwracane w kolejności dodawania, ale oczywiście może tak to wyglądać i faktycznie tak jest w Twoim przypadku.
@Jak nauczyć się programowania Mam mały problem ze zrozumieniem dlaczego metoda peek jest metodą z której nie powinno się korzystać poza testowaniem aplikacji. Argument żeby nie modyfikować kolekcji oryginalnej jest uzasadniony, ale sprawdzam sobie też metody forEach i forEachOrdered. Używając tych metod również można zmieniać bezpośrednio elementy kolekcji oryginalnej, a jedyna różnica pomiędzy tymi dwiema metodami a metodą peek jest taka, że peek nie jest metodą terminalną, a zwraca ten sam stream, więc pozwala jeszcze wykonać na nim dalsze operacje. W praktyce zakładam, że tych metod pewnie i tak nie używa się poza konsolą. W kilku przypadkach pisania takich aplikacji przydaje mi się metoda peek do wyświetlania kolekcji kiedy jeszcze chcę na przykład zliczyć elementy. Czy takie korzystanie jest akceptowalne?
Zobacz ten temat: stackoverflow.com/questions/33635717/in-java-streams-is-peek-really-only-for-debugging Najważniejszy fragment to "Don't use the API in an unintended way, even if it accomplishes your immediate goal. That approach may break in the future, and it is also unclear to future maintainers." Chodzi tutaj tak naprawdę o wyrabianie w sobie dobrych nawyków. Bo podany przez Ciebie przykład - tak jak i wiele innych - nie będzie brzmiało jak coś złego czy niebezpiecznego. Uczysz się, pracujesz nad własnym projektem, więc co takiego może się stać? W tym przypadku zupełnie nic, skorzytasz z peek, osiągniesz cel i nikomu nie stanie się krzywda. Przecież wiesz, po co skorzystałeś z peek i co dzięki temu osiągnąłeś. Ale kiedyś użyjesz peek w komercyjnym projekcie, nad którym pracują inne osoby. Kod będzie bardziej rozbudowany i podczas pracy nad kolejną funkcjonalnością do kodu usiądzie jedna z tych wielu osób i nie będzie się ona spodziewała użycia peek w kodzie, a to w prostej drodze może doprowadzić do wprowadzenia do kodu trudnego do znalezienia buga. Także to wszystko to raczej kwestia konwencji. Tak samo to wygląda, gdy nazywamy zmienne czy klasy - pracując nad małym projektem nic się nie stanie, jak nazwiemy zmienne a i b, bo przecież kod jest krótki, a my pamiętamy za co te zmienne odpowiadają. Ale zrobimy tak kilka razy i zacznie nam to wchodzić w krew. A potem zaczniemy pracować nad projektami z innymi osobami i dalej będziemy nazywać zmienne w podobny sposób :) A to już będzie katastrofa. Dlatego o te dobre praktyki należy dbać już od samego początku, nawet gdy pracujemy nad własnymi, niedużymi projektami.
Mam jeszcze jedno pytanie, nie obejrzałem jeszcze wszystkich odcinków bo jestem stosunkowo początkujący ale jestem ciekaw czy w jakimkolwiek jest to zawarte, a mianowicie: 1. Z jakiego pluginu jest @Test? I do czego służy? 2. W jaki sposób uruchamiasz tylko daną funkcję? Ja mogę uruchomić tylko main() Swoją drogą bardzo podoba mi się kurs i mam nadzieję że nauczę się z niego jak najwięcej, ale przez dłuższy czas byłem w kropce przez jedną rzecz. W odcinku z programowaniem obiektowym zostałem oddelegowany do odcinka ze Stream Api, i pomyślałem, że w sumie to dobrze że nauczę się czegoś nowego. Problem w tym, że w tym odcinku wymagana jest znajomość Collectors, a jak włączyłem odcinek z Collectors to natomiast były tam streamy. Ciężko w tych filmach było mi wszystko zrozumieć, bo jedno wymagało znajomości drugiego. Mimo to dzisiaj dłużej przysiedziałem przy tym filmie ze streamami i udało się jako tako pojąć Collectory "w locie" :) Mam nadzieję że cała obiektówka pójdzie bez większych problemów bo w większości przypadków uwazam, że jest to najbardziej przystępny tutorial z Javą, przynajmniej w Polsce.
Adnotacja @Test podchodzi z biblioteki JUnit, wprowadzenie do tego tematu możesz zobaczyć tutaj: ruclips.net/video/mQUd-H2rGis/видео.html I testy działają w ten sposób, że możesz uruchamiać je niezależnie od siebie. Jeżeli chodzi o poszczególne odcinki dotyczące Javy to chociaż czasem zagadnienia się zazębiają, to faktycznie nie stanowią one spójnej całości od A do Z i czasem potrzebne jest doczytanie czegoś na własną rękę. Pełny, kompleksowy kurs Javy, szykuję na koniec 2022 roku, startuję z pracą nad nim tuż po premierze kursu Gita: gitodpodstaw.pl/ Co do odcinka o programowaniu obiektowym to powinno pójść łatwo :)
W moim przypadku, gdy zrobiłem wszystko tak samo, stworzyłem ArrayList z identyfikatorem , pokazują mi się kody poszczególnych obiektów (np.Employee@1d81eb93), nie do końca rozumiem dlaczego tak się dzieje.
Tak wygląda domyślna reprezentacja tekstowa obiektu zwracana przez Javę. Żeby wyświetlić obiekt w bardziej czytelnej dla nas formie, musimy przesłonić (override) metodę toString z klasy Object (każda klasa w Javie dziedziczy po Object, więc dziedziczy również metodę toString) czyli nadpisać domyślną implementację tej metody naszą własną implementacją: stackoverflow.com/a/31174312/1159338 W przykładzie z odcinka nie robimy tego ręcznie (jak w powyższym linku ze StackOverflow), ale używamy do tego Lomboka i adnotacji @ToString. Dodaj tę adnotację i wszystko będzie działać :)
@@JakNauczycSieProgramowania Bardzo dziękuje za wytłumaczenie, teraz już wszystko działa :) Chwilami w nauce Javy trudno jest mi się połapać z niektórymi rzeczami, niestety początki nie są łatwe, a twoje filmy mi w tym pomagają, dzięki jeszcze raz.
@@TheAlvipl To zupełnie normalne, z czasem (a przede wszystkim wraz z ilością napisanego kodu!) będzie coraz łatwiej :) Także na spokojnie, ale konsekwentnie do przodu!
Hej, czy nie wiecie . Składnia po new Employee(firstName:XYZ oraz List.of(123,234) świecą mi się na czerwono. Podejrzewam że przez to że używam Javy 8 albo nie używam jakiegoś API co to za licho?
List.of pojawiło się w Javie 9, także zamiast inicjalizować listę w ten sposób: List.of("Java", "JavaScript", "Python") zainicjalizuj ją tak: new ArrayList(Arrays.asList("Java", "JavaScript", "Python"));
Cześć, czy wszystkie testy piszesz w głównym katalogu do kodu czy robisz to w package "test"? Bo za bardzo nie ogarniam gdzie te testy w końcu pisac ;/
Jeśli chcemy znaleźć coś z bazy wg danych kryteriów, to kiedy lepiej stosować stream poprzez odebranie wszystkich elementów z bazy i ich np. "przefiltrowanie", a kiedy lepiej tworzyć własne zapytania SQL poprzez JPA, które zwrócą już oczekiwaną(przefiltrowaną) porcję elementów ? Zapewne: To zależy, ale może jakieś małe wskazówki ? Zakładam że jak baza jest bardzo duża to wtedy lepiej własne zapytanie SQL
Jeżeli chcesz coś wyszukać w bazie według podanych kryteriów, wtedy powinieneś wykonać odpowiednie zapytanie na bazie. Streamy powinieneś stosować w momencie gdy przetwarzasz dane na kilka różnych sposobów, ale źródłem zawsze jest ten sam, pierwotny, pobrany z bazy zestaw elementów.
Filter zwróci Ci wszystkie elementy, które spełniają warunek, takeWhile będzie zwracał elementy DOPÓKI jest spełniony warunek. Czyli zakładając, że mamy stream liczb: 2, 4, 6, 7, 8, 9, 10 i jako warunek podając liczby parzyste, filter zwróci: 2, 4, 6, 8, 10 a take while: 2, 4, 6 (bo przy 7 warunek nie zostanie już spełniony).
z jakich bibliotek korzystasz w tym tutorialu oprócz lomboka? próbowałem sobie zaciągnąć junit do zależności ale niestety nie moge tak jak ty dodawać adnotacji @test i tego testu odpalać.. z góry dzięki
Wiem że film ma swoje lata, ale mam pytanie: Co jeśli przy metodzie sorted chciałbym wyświetlić obiekty nie od najniższego wieku do najwyższego, ale odwrotnie? Tzn. od najwyższego wieku idąc w dół
Jak zawsze swietny material Kamil! dobra robota :) Chcialbym sie jednak dowiedziec jak utworzyc te klasy ktorych mowisz na wstepie bo nic mi sie nie chce zaimportowac i mam compilation error w IntelliJ pomimo iz dodalem plugin Lombok :/
Twój kanał odkryłem kilka tyogdni temu. Obejrzałem JAVA - Podstawy w 2h i JAVA - programowanie obiektowe w 3h - te 2 są super. Teraz obejrzałem Java stream API w 40 minut i w mniejszym stopniu do mnie przemawia ten materiał. Zdaje się, że tworząc go zakładałeś ze ogladajacy wie co to jest wyrażenie lambda, referencje do metod. Czy jest na kanale jakiś film, gdzie jest to wytłumaczone? Przejrzałem wszystko I tak ogólnie to trochę kolejność publikowania wydaje się być pokręcona. Najpierw, tzn ~2 lata temu było stream API, a późniniej (~ rok temu)podstawy JAVA. Wiem, że masz w planach kompleksowy kurs java, ale może jest na kanale gdzieś wyjaśniona lambda?
Cześć, jeżeli chodzi o poszczególne odcinki dotyczące Javy to chociaż czasem zagadnienia się zazębiają, to nigdy nie były one planowane jako pełen kurs. Także czasem potrzebne jest doczytanie czegoś i uzupełnienie wiedzy na własną rękę. Zobacz ten artykuł, bardzo fajnie są w nim lambdy wytłumaczone: www.samouczekprogramisty.pl/wyrazenia-lambda-w-jezyku-java/
tak z ciekawości.. nie odzywały się czasem do Ciebie jakieś rodzime szkoły programowania pokroju SDA czy Kodilla, abyś został u nich trenerem?? xD Ten kanał to dla mnie objawienie. Biorę właśnie udział w jednym z dużych bootcampów i regularnie korzystam z Twojej pomocy. Dziękuję!!!
Myślę, że pozostanę przy pracy na własny rachunek :) Oczywiście nie jest tak, ze kategorycznie wykluczam taką ewentualną współpracę, ale jakakolwiek współpraca - czy reklamowa na kanale czy jako prowadzący/mentor w zewnętrznej firmie - musi być w 100% zgodna z moją filozofią i przekonaniem o dawaniu jak najwyższej jakości. Z tego też powodu odrzuciłem kilka propozycji reklamowych, bo chociaż może byłoby to opłacalne z punktu widzenia finansowego, nie byłoby to coś, pod czym z czystym sumieniem mógłbym się podpisać. Mega się cieszę, że oglądasz kanał i że pomaga Ci w nauce! A od dawna tutaj jesteś?
znalazłem Twój kanał jakoś pod koniec 2019 roku jak zacząłem rozważać rozpoczęcie nauki ale dopiero od niedawna częściej tutaj zaglądam, a żałuję bo przydałby mi się znacznie wcześniej :)
aktualnie nic nie ogarniam bo programowania uczę sie półtora miesiąca gdzie strikte javy od kilku dni więc nie martwię się tym że nic nie ogarniam bo wiem że dam radę sie tego nauczyć
Jeżeli uczysz się Javy dopiero od kilku dni, to jeszcze za wcześnie na ten film. Streamy to nieco bardziej zaawansowany koncept, tak więc daj sobie jeszcze trochę czasu.
Przejrzałem już naprawdę sporo kanałów na YT i Twój jest moim zdaniem najlepszy, dobór tematów, sposób tłumaczenie i pokazywanie na życiowych przykładach bardzo na plus, dobra robota i oby tak dalej! :)
Pełna profeska, dzięki za streamy w pigułce :)
Chyba najlepszy tutorial dot. Java STREAM API spośród wszystkich materiałów na całym YT. Dzięki serdeczne. Pozdro ;-)
Dziękuję za film. Wytłumaczone w bardzo przystępny sposób i co najważniejsze na konkretnych przykładach. Pozdrawiam!
W żadnym z 4 znanych mi języków nie spotkałem się by ktoś tak skutecznie przekazywał wiedzę z programowania. Dlatego oglądam Twój kanał bardziej chętnie niż kanały w moim języku ojczystym :) Dziękuję za świetny materiał i pozdrawiam!
Mega się cieszę! A jaki język jest Twoim ojczystym?
@@JakNauczycSieProgramowania Rosyjski
Nie mówię niestety, ale uczyłem się kiedyś alfabetu, także widząc napisy co nieco potrafię zrozumieć 😃
Świetnie przedstawiona wiedza, również niezwykle przyjemnie się słucha, gdy autor dobrze mówi po angielsku i nie kaleczy wymowy co na polskim IT youtubie niestety jest normą. Pozdrawiam :)
Dzisiaj nie zaliczyłem testu na praktyki przez to, no i jestem, dzień dobry
No to na spokojnie, wiesz dzięki temu czego Ci brakuje i czego się uczyć, na kolejnym teście będzie dobrze!
Bardzo obrazowo i intuicyjnie wytłumaczone, świetny materiał
Dzięki!
Omg świetny materiał i tłumaczenie szukałem po różnych stronach a dopiero teraz zrozumiałem, jesteś mistrzem! Wgl świetny głos jak go usłyszałem to przypomniało mi się jak oglądałem Hypera jako dzieciak i Ci co opowiadali o grach mieli podobny jak Ty ^^
Czesc
Masz talent do tłumaczenia i przekazywania wiedzy
Pozdrawiam
Dzięki i też pozdrawiam!
Fajne mocno skoncentrowany Materiał. utrzymany wysoki poziom techniczny dużo wyrażeń Lambda i relacji do metod. Stream był dla mnie nowym zagadnieniem i jest to duże ułatwienie to jest skrócenie kodu ile pętli trzeba by napisać, żeby osiągnąć pożądany wynik. Ciekawe bardzo ciekawe.
Dobry content, po nazwie spodziewałem sie jakiegoś noob shitu ale wiedza i forma jest na b.wysokim poziomie.
Nie jestem jutuberem, ale mysle ze dobrej jutuberskiej porady moge udzielić, otóż podczas nauki wole słuchać własnej muzyki niz czyjejś, zwłaszcza że każdy ma inny gust, więc ta z tła jest do wyjebania tak na przyszłość, też powinno być mniej zachodu z montażem od razu
Dzięki za komentarz! To film sprzed kilku lat, z początkowego okresu istnienia kanału, stąd obecność muzyki w tle. Od długiego czasu już jej w filmach nie ma :)
jasne i zrozumiałe i duży plus za trensik w tle :)
Świetny materiał, dzięki.
Świetny materiał jak zawsze :) dzięki
Jak na razie najlepsze ćwiczenia Javy :)
Bardzo wartościowy materiał
Oby więcej takich. Pozdrawiam
Samo mięso. Dzięki za film.
Nie ma co lać wody, liczą się konkrety :D
Super materiał! Prawdziwy konkret!
Dziękuję za super content :), szacun
Dziękuję za twoje filmy!!
Gratuluję :) Materiał jest świetny, moze warto wrzucić wersję w języku angielskim?
Można by dodać komentarz o wydajności stream'a vs pętla for, np dla sumowania.
Dzięki! Myślałem o nagraniu odcinka poświęconego wydajności streamów, bo to bardzo ciekawy i zaskakujący temat, także jest szansa, że pojawi się on w niedalekiej przyszłości :) Na filmy po angielsku też jest szansa, planuję zrobić kilka na próbę w nadchodzącym roku :)
Bardzo Ci dziękuję!
19:30 zrobiłem startsWith("S") findFirst() na SECIE prawcowników - zawsze zwraca tego samego pracownika - jest 3 spełniających kryterium . Oczekiwałem losowych pracowników - Set nie trzyma kolejności dodawania
Dlaczego tak jest ?
Nie trzyma, ale to nie oznacza, że zawsze będziesz otrzymywał losowy element. Wszystko zależy tutaj od kompilatora i od optymalizacji, których dokonuje.
Należy trochę zmienić sposób myślenia o secie - zamiast myśleć "skoro set nie trzyma kolejności dodawania, w odpowiedzi będę otrzymywał losowe elementy", należy raczej myśleć "kolejność zwracania elementów z setu NIE JEST OKREŚLONA W DEFINICJI setu, więc różne kompilatory mogą wykonywać tę operację w różny sposób". Nie możesz więc założyć, że elementy będą zwracane w kolejności dodawania, ale oczywiście może tak to wyglądać i faktycznie tak jest w Twoim przypadku.
Sztos materiał, dzięki!
@Jak nauczyć się programowania
Mam mały problem ze zrozumieniem dlaczego metoda peek jest metodą z której nie powinno się korzystać poza testowaniem aplikacji. Argument żeby nie modyfikować kolekcji oryginalnej jest uzasadniony, ale sprawdzam sobie też metody forEach i forEachOrdered. Używając tych metod również można zmieniać bezpośrednio elementy kolekcji oryginalnej, a jedyna różnica pomiędzy tymi dwiema metodami a metodą peek jest taka, że peek nie jest metodą terminalną, a zwraca ten sam stream, więc pozwala jeszcze wykonać na nim dalsze operacje. W praktyce zakładam, że tych metod pewnie i tak nie używa się poza konsolą. W kilku przypadkach pisania takich aplikacji przydaje mi się metoda peek do wyświetlania kolekcji kiedy jeszcze chcę na przykład zliczyć elementy. Czy takie korzystanie jest akceptowalne?
Zobacz ten temat: stackoverflow.com/questions/33635717/in-java-streams-is-peek-really-only-for-debugging
Najważniejszy fragment to "Don't use the API in an unintended way, even if it accomplishes your immediate goal. That approach may break in the future, and it is also unclear to future maintainers." Chodzi tutaj tak naprawdę o wyrabianie w sobie dobrych nawyków. Bo podany przez Ciebie przykład - tak jak i wiele innych - nie będzie brzmiało jak coś złego czy niebezpiecznego. Uczysz się, pracujesz nad własnym projektem, więc co takiego może się stać? W tym przypadku zupełnie nic, skorzytasz z peek, osiągniesz cel i nikomu nie stanie się krzywda. Przecież wiesz, po co skorzystałeś z peek i co dzięki temu osiągnąłeś.
Ale kiedyś użyjesz peek w komercyjnym projekcie, nad którym pracują inne osoby. Kod będzie bardziej rozbudowany i podczas pracy nad kolejną funkcjonalnością do kodu usiądzie jedna z tych wielu osób i nie będzie się ona spodziewała użycia peek w kodzie, a to w prostej drodze może doprowadzić do wprowadzenia do kodu trudnego do znalezienia buga.
Także to wszystko to raczej kwestia konwencji. Tak samo to wygląda, gdy nazywamy zmienne czy klasy - pracując nad małym projektem nic się nie stanie, jak nazwiemy zmienne a i b, bo przecież kod jest krótki, a my pamiętamy za co te zmienne odpowiadają. Ale zrobimy tak kilka razy i zacznie nam to wchodzić w krew. A potem zaczniemy pracować nad projektami z innymi osobami i dalej będziemy nazywać zmienne w podobny sposób :) A to już będzie katastrofa.
Dlatego o te dobre praktyki należy dbać już od samego początku, nawet gdy pracujemy nad własnymi, niedużymi projektami.
Szkoda że nie ma kodu do skopiowania pomogło by mi to :/ Ale materiał świetnie mi wytłumaczył Stream API. Dziękuje :)
Bardzo fajne przyklady.
Dzięki Łukasz!
Dzięki tobie zrozumiałem w końcu jak działa stream. Może zrobisz odcinek o Lambda i funkcyjnym ??
Jest taki odcinek w planach, ale myślę, że będzie to nie wcześniej niż za kilkanaście tygodni.
Mam jeszcze jedno pytanie, nie obejrzałem jeszcze wszystkich odcinków bo jestem stosunkowo początkujący ale jestem ciekaw czy w jakimkolwiek jest to zawarte, a mianowicie:
1. Z jakiego pluginu jest @Test? I do czego służy?
2. W jaki sposób uruchamiasz tylko daną funkcję? Ja mogę uruchomić tylko main()
Swoją drogą bardzo podoba mi się kurs i mam nadzieję że nauczę się z niego jak najwięcej, ale przez dłuższy czas byłem w kropce przez jedną rzecz. W odcinku z programowaniem obiektowym zostałem oddelegowany do odcinka ze Stream Api, i pomyślałem, że w sumie to dobrze że nauczę się czegoś nowego. Problem w tym, że w tym odcinku wymagana jest znajomość Collectors, a jak włączyłem odcinek z Collectors to natomiast były tam streamy. Ciężko w tych filmach było mi wszystko zrozumieć, bo jedno wymagało znajomości drugiego. Mimo to dzisiaj dłużej przysiedziałem przy tym filmie ze streamami i udało się jako tako pojąć Collectory "w locie" :) Mam nadzieję że cała obiektówka pójdzie bez większych problemów bo w większości przypadków uwazam, że jest to najbardziej przystępny tutorial z Javą, przynajmniej w Polsce.
używam Mavena jeśli to ma jakieś znaczenie
Adnotacja @Test podchodzi z biblioteki JUnit, wprowadzenie do tego tematu możesz zobaczyć tutaj: ruclips.net/video/mQUd-H2rGis/видео.html
I testy działają w ten sposób, że możesz uruchamiać je niezależnie od siebie.
Jeżeli chodzi o poszczególne odcinki dotyczące Javy to chociaż czasem zagadnienia się zazębiają, to faktycznie nie stanowią one spójnej całości od A do Z i czasem potrzebne jest doczytanie czegoś na własną rękę. Pełny, kompleksowy kurs Javy, szykuję na koniec 2022 roku, startuję z pracą nad nim tuż po premierze kursu Gita: gitodpodstaw.pl/
Co do odcinka o programowaniu obiektowym to powinno pójść łatwo :)
W moim przypadku, gdy zrobiłem wszystko tak samo, stworzyłem ArrayList z identyfikatorem , pokazują mi się kody poszczególnych obiektów (np.Employee@1d81eb93), nie do końca rozumiem dlaczego tak się dzieje.
Tak wygląda domyślna reprezentacja tekstowa obiektu zwracana przez Javę. Żeby wyświetlić obiekt w bardziej czytelnej dla nas formie, musimy przesłonić (override) metodę toString z klasy Object (każda klasa w Javie dziedziczy po Object, więc dziedziczy również metodę toString) czyli nadpisać domyślną implementację tej metody naszą własną implementacją: stackoverflow.com/a/31174312/1159338
W przykładzie z odcinka nie robimy tego ręcznie (jak w powyższym linku ze StackOverflow), ale używamy do tego Lomboka i adnotacji @ToString. Dodaj tę adnotację i wszystko będzie działać :)
@@JakNauczycSieProgramowania Bardzo dziękuje za wytłumaczenie, teraz już wszystko działa :) Chwilami w nauce Javy trudno jest mi się połapać z niektórymi rzeczami, niestety początki nie są łatwe, a twoje filmy mi w tym pomagają, dzięki jeszcze raz.
@@TheAlvipl To zupełnie normalne, z czasem (a przede wszystkim wraz z ilością napisanego kodu!) będzie coraz łatwiej :) Także na spokojnie, ale konsekwentnie do przodu!
Świetny materiał
Jak zawsze same konkrety!
Świetny materiał!
Hej, czy nie wiecie . Składnia po new Employee(firstName:XYZ oraz List.of(123,234) świecą mi się na czerwono. Podejrzewam że przez to że używam Javy 8 albo nie używam jakiegoś API co to za licho?
List.of pojawiło się w Javie 9, także zamiast inicjalizować listę w ten sposób:
List.of("Java", "JavaScript", "Python")
zainicjalizuj ją tak:
new ArrayList(Arrays.asList("Java", "JavaScript", "Python"));
Dzięki ta składnia zadziałała. właściwie to nie wiem czemu używam J8.
Cześć, czy wszystkie testy piszesz w głównym katalogu do kodu czy robisz to w package "test"? Bo za bardzo nie ogarniam gdzie te testy w końcu pisac ;/
Dziękówa!
Bardzo dobry tutorial ! :)
Cieszę się, że się podoba :D
Jeśli chcemy znaleźć coś z bazy wg danych kryteriów, to kiedy lepiej stosować stream poprzez odebranie wszystkich elementów z bazy i ich np. "przefiltrowanie", a kiedy lepiej tworzyć własne zapytania SQL poprzez JPA, które zwrócą już oczekiwaną(przefiltrowaną) porcję elementów ? Zapewne: To zależy, ale może jakieś małe wskazówki ? Zakładam że jak baza jest bardzo duża to wtedy lepiej własne zapytanie SQL
Jeżeli chcesz coś wyszukać w bazie według podanych kryteriów, wtedy powinieneś wykonać odpowiednie zapytanie na bazie.
Streamy powinieneś stosować w momencie gdy przetwarzasz dane na kilka różnych sposobów, ale źródłem zawsze jest ten sam, pierwotny, pobrany z bazy zestaw elementów.
Jeszcze jedno pytanko, czy takeWhile/dropWhile różni się zastosowaniem od .filter tylko tym, że zużywa mniej pamięci?
Filter zwróci Ci wszystkie elementy, które spełniają warunek, takeWhile będzie zwracał elementy DOPÓKI jest spełniony warunek.
Czyli zakładając, że mamy stream liczb:
2, 4, 6, 7, 8, 9, 10
i jako warunek podając liczby parzyste, filter zwróci:
2, 4, 6, 8, 10
a take while:
2, 4, 6 (bo przy 7 warunek nie zostanie już spełniony).
z jakich bibliotek korzystasz w tym tutorialu oprócz lomboka? próbowałem sobie zaciągnąć junit do zależności ale niestety nie moge tak jak ty dodawać adnotacji @test i tego testu odpalać.. z góry dzięki
Używałem JUnit 5: www.baeldung.com/junit-5
Najnowszą zależność znajdziesz tutaj: mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine
@@JakNauczycSieProgramowania super :) działa! dzięki wielkie za pomoc! pozdrawiam
Wiem że film ma swoje lata, ale mam pytanie: Co jeśli przy metodzie sorted chciałbym wyświetlić obiekty nie od najniższego wieku do najwyższego, ale odwrotnie? Tzn. od najwyższego wieku idąc w dół
Wywołaj reversed() na obiekcie typu Comparator, który masz wewnątrz sorted:
.sorted(Comparator.comparing(Employee::getAge).reversed())
Jak zawsze swietny material Kamil! dobra robota :)
Chcialbym sie jednak dowiedziec jak utworzyc te klasy ktorych mowisz na wstepie bo nic mi sie nie chce zaimportowac i mam compilation error w IntelliJ pomimo iz dodalem plugin Lombok :/
dobra, nie bylo tematu! znalazlem u Ciebie filmik o lomboku i juz wszystko dziala :D
Mega!
Twój kanał odkryłem kilka tyogdni temu.
Obejrzałem JAVA - Podstawy w 2h i JAVA - programowanie obiektowe w 3h - te 2 są super.
Teraz obejrzałem Java stream API w 40 minut i w mniejszym stopniu do mnie przemawia ten materiał. Zdaje się, że tworząc go zakładałeś ze ogladajacy wie co to jest wyrażenie lambda, referencje do metod. Czy jest na kanale jakiś film, gdzie jest to wytłumaczone?
Przejrzałem wszystko I tak ogólnie to trochę kolejność publikowania wydaje się być pokręcona. Najpierw, tzn ~2 lata temu było stream API, a późniniej (~ rok temu)podstawy JAVA.
Wiem, że masz w planach kompleksowy kurs java, ale może jest na kanale gdzieś wyjaśniona lambda?
Cześć, jeżeli chodzi o poszczególne odcinki dotyczące Javy to chociaż czasem zagadnienia się zazębiają, to nigdy nie były one planowane jako pełen kurs. Także czasem potrzebne jest doczytanie czegoś i uzupełnienie wiedzy na własną rękę.
Zobacz ten artykuł, bardzo fajnie są w nim lambdy wytłumaczone: www.samouczekprogramisty.pl/wyrazenia-lambda-w-jezyku-java/
Bardzo przystępnie omówione streamy, ale zabrakło mi omówienia funkcji collect(Collectors......). Na pewno będę wracał na Twój kanał.
O Collectors jest osobny odcinek: ruclips.net/video/IFlCqMD9CNk/видео.html :)
@@JakNauczycSieProgramowania Dziękuje. To jest bardzo dobry materiał szkoleniowy.
tak z ciekawości.. nie odzywały się czasem do Ciebie jakieś rodzime szkoły programowania pokroju SDA czy Kodilla, abyś został u nich trenerem?? xD Ten kanał to dla mnie objawienie. Biorę właśnie udział w jednym z dużych bootcampów i regularnie korzystam z Twojej pomocy. Dziękuję!!!
Myślę, że pozostanę przy pracy na własny rachunek :) Oczywiście nie jest tak, ze kategorycznie wykluczam taką ewentualną współpracę, ale jakakolwiek współpraca - czy reklamowa na kanale czy jako prowadzący/mentor w zewnętrznej firmie - musi być w 100% zgodna z moją filozofią i przekonaniem o dawaniu jak najwyższej jakości. Z tego też powodu odrzuciłem kilka propozycji reklamowych, bo chociaż może byłoby to opłacalne z punktu widzenia finansowego, nie byłoby to coś, pod czym z czystym sumieniem mógłbym się podpisać.
Mega się cieszę, że oglądasz kanał i że pomaga Ci w nauce! A od dawna tutaj jesteś?
znalazłem Twój kanał jakoś pod koniec 2019 roku jak zacząłem rozważać rozpoczęcie nauki ale dopiero od niedawna częściej tutaj zaglądam, a żałuję bo przydałby mi się znacznie wcześniej :)
fajne dzieki
Good Job
Ma ktoś projekt dostępny z tego materiału?
Idea jest taka, żeby wszystko o czym opowiadam i co pokazuję, przerobić samemu :)
@@JakNauczycSieProgramowania dzięki za odpowiedź, miałem problem z kompilacją tych metod, ale już sobie poradziłem. Świetny materiał.
aktualnie nic nie ogarniam bo programowania uczę sie półtora miesiąca gdzie strikte javy od kilku dni więc nie martwię się tym że nic nie ogarniam bo wiem że dam radę sie tego nauczyć
Jeżeli uczysz się Javy dopiero od kilku dni, to jeszcze za wcześnie na ten film. Streamy to nieco bardziej zaawansowany koncept, tak więc daj sobie jeszcze trochę czasu.
7:00
że też ja wcześniej nie trafiłem na ten odcinek..
Lepiej późno niż wcale!