Wreszcie dali w Java coś co pomaga w przypadku zapisywania wielolinijkowych tekstów (na marginesie w PHP to już było od wieków). Czy jest to użyteczny ficzer, jak zwykle to zależy. Czasami w sofcie potrzebujemy wydrukować na ekranie/konsoli, zapisać do pliku kilka-kilkadziesiąt linijek tekstu. Na pewno jest trochę bardziej czytelniej: String oldJavaString = „Usage: route [-nNvee] […]
Tag: Java 8 (Page 1 of 2)
„Dziel i zwyciężaj” sentencja, która przydaje się w codziennym programistycznym życiu. Mamy problem, podzielmy go na mniejsze i rozwiążmy. Podobną idę mamy we frameworku Fork/Join, mamy dużo danych lub coś nam się liczy długo. To wtedy, trzeba: podzieli, zrównoleglić i na samym końcu połączyć. Możemy się wtedy spodziewać, że otrzymamy przyśpieszenie. Nie należy jednak przeginać, […]
Na wstępie można było by sobie zadać pytanie, po co wymyślono egzekutory. Przecież możemy odpalić wątki, pozarządzać, poczekać na wykonanie pracy, itd. Ale nie ma co „wymyślać koła na nowo”, a najlepszy kod to ten którego nie trzeba pisać. Należy również wspomnieć o tym, że tworzenie wątków w ramach puli jest mniej, zasobożerne niż tworzenie […]
Tworząc aplikację rozbitą na wiele wątków chcemy uzyskać jak największe przyśpieszenie poprzez zrównoleglenie wykonywania części programu. Niekiedy jednak trzeba zapewnić aby poszczególne wątki komunikowały się ze sobą lub koordynowały swoje działania. W najprostszym przypadku można użyć bloków lub metod synchronizowanych. Niekiedy potrzeba jednak użyć bardziej zaawansowanych metod, w takim przypadku możemy skorzystać z kolejki FIFO […]
Ameryki nie odkrywam bo Java 8 weszła już jakiś czas temu, ale dla odświeżenia informacji i przypomnienia ogólnie co wprowadzono. Za jakiś czas ma wejść Java 9 (terminu jak wiadomo 😀 nie ma co dokładnie określać), gdzie główny nacisk ma być położny na modułowość całego środowiska uruchomieniowego. A więc co takiego pojawiło się w javie […]
Strumienie (te związane z danymi a nie do obsługi plików) w Javie 8 to potężne narzędzie do rzucania danymi w lewo i prawo. Do ich przekształcania, filtracji, itd., dlatego warto je wziąć na tapetę i trochę się nimi pobawić. Najprościej strumień można sobie wyobrazić jako potok danych na których wykonujemy operację w różnych krokach, aż […]
Implementacje typu TreeSet i TreeMap umożliwiają porządkowanie danych, gdyż są one układane w kolekcji według operacji porównywania. Domyślnie w TreeSet i TreeMap dane są sortowane według porządku naturalnego (w kolejności: A B C D…). Jeżeli chcemy zastosować inny rodzaj sortowania powinniśmy użyć własnego komparatora podczas tworzenia instancji obiektu TreeSet lub TreeMap. Warto zauważyć ze w Javie 8 rozbudowano klasę komparatorów […]
Parę małych przykładów z użyciem kolekcji: Operacje na listach // // Tworzenie listy z tablicy // List<String> list1 = Arrays.asList(new String[]{"Pierwszy", "Drugi", "Trzeci", "Czwarty", "Piąty"}); // // Standartowe tworzenie listy // List<String> list2 = new ArrayList<>(); list2.add("Pozycja 1"); list2.add("Pozycja 2"); list2.add("Pozycja 3"); list2.add("Pozycja 4"); list2.add("Pozycja 5"); // Dodajemy duplikat list2.add("Pozycja 4"); // […]
Kolekcje w Javie oraz klasy narzędziowe z biblioteki java.util.Collections to bardzo potężne narzędzia do operowania na danych. Można stwierdzić za prawidłowe dobranie struktur danych oraz ich sposobów przechowywania, może bardzo zoptymalizować i przyśpieszyć działania programu. Czasami bardziej skutecznie niż „wysublimowane algorytmy i optymalizacje kodu”. Przy używaniu kolekcji należy brać pod uwagę, nie tylko typ i […]
Wielowątkowość w programowaniu to nie jest łatwy temat, źle użyta jest przyczyną bardzo wielu kłopotów. Ten temat będzie podzielony na parę części: Wielowątkowość cz1. – wstęp, theread, synchronizacja Wielowątkowość cz2. – komunikacja międzywątkowa, synchronizacja poprzez kolejkę Wielowątkowość cz3. – egzekutory, pule wątków, Future i Callable Wielowątkowość cz4. – framerwork Fork/Join Wielowątkowość cz5. – klasy wspomagające […]