Algorytmy – Fibonacci

Algorytmy są jednym z najwinniejszych tematów na rozmowach kwalifikacyjnych czy to w teorii czy w sprawdzeniu umiejętności programowania. W tym wpisie zajmę się opisaniem algorytmu Fibonacci w Javie. Fibonacci to seria liczb naturalnych gdzie każda kolejna liczba jest równa sumie licz dwóm poprzednim. Pierwsze dwie liczby w ciągu Fibonacci’ego są zawsze 1, 1. Wynika to …

Algorytmy – Fibonacci Read More »

Git – merge vs. rebase

Dziś przedstawię różnicę pomiędzy merge a rebase. Obie komendy służą do rozwiązania tego samego problemu. Do włączenia zmian z jednego branch’a do innego branch’a. Innymi słowy służą do synchronizacji duch gałęzi np lokalnej i zdalnej. Robią to jednak na rożne sposoby. Ale zacznijmy od początku. Zakładając gałąź główną „master” tworzymy z niego branch’a pobocznego na …

Git – merge vs. rebase Read More »

Sposoby obsługi wyjątków cz.2

W sytuacjach kiedy nie korzystamy z bloku try-catch a mamy fragment kodu który może wygenerować wyjątek to możemy skorzystać ze słowa throws lub throw. Throws jest stosowane w sygnaturze metody i jeżeli dotyczy on wyjątku kontrolowanego to dodanie tego słowa jest wymagane. W przypadku wyjątków nie kontrolowanych nie to już wymagane. Natomiast słowa throw używany …

Sposoby obsługi wyjątków cz.2 Read More »

Tworzenie własnych wyjątków

Aby nasz system był odporny na błędy programista może napisać własne wyjątki które zostaną przechwycone w bloku try-catch. Ma to zastosowanie gdy w standardowej hierarchii Javy nie ma wyjątku który odpowiadał by potrzebom naszej aplikacji. Tworząc własny wyjątek możemy poinformować użytkownika co poszło nie tak. Warto tutaj pamiętać aby nazwa klasy kończyła się słowem Exception …

Tworzenie własnych wyjątków Read More »

Sposoby obsługi wyjątków

Jednym za sposobów na obsługę wyjątków jest wykorzystanie bloku try-catch. Polega to na próbie przechwycenia/”złapania” wyjątku i na wykonaniu kodu w bloku catch. Blok try-catch przedstawie na podstawie RunTimeExcetion: InputMismatchException. Na początku wywołujemy metodę która prosi użytkownika o podanie liczby. Następnie w bloku try umieściliśmy ten element programu który może wywołać wyjątek poprzez podanie błędnego …

Sposoby obsługi wyjątków Read More »

Exceptions – wyjątki

Wyjątek jest to obiekt który ma za zadanie ujawnienie nieprawidłowości w kodzie. Dzięki niemu możemy zabezpieczyć aplikacje przed nie przewidzianym zachowaniami. Wszystkie wyjątki są uporządkowane zgodnie z hierarchią dziedziczenia klas wyjątków: Klasą wspólną dla wszystkich wyjątków jest Throwable która dzieli się na Error oraz Exception. Natomiast klasa Exception dzieli się na dwie grupy: checked exceptions …

Exceptions – wyjątki Read More »

Klasa StringBuilder i StringBuffer

Metody dla tych klas są takie same i są one mutowalne. Rożnica pomiędzy klasami polega na możliwości zastosowania w systemie/programie wielowątkowej. Klasą która może być wykorzystana w wielowątkowości jest StringBuffer. Z drugiej jednak strony instancje klasy StringBuilder są nieznacznie szybsze od StringBuffer z powodu braku synchronizacji. W przypadku budowania długich napisów najlepiej jest korzystać z …

Klasa StringBuilder i StringBuffer Read More »

Metody klasy String

Kilka metod klasy String: Trzeba pamiętać że w obiektach String tak samo jak przy tablicach indeksowanie znaków zaczyna się od 0 length – zwraca długość łańcucha znaków String words = „Dziś jest poniedziałek”; System.out.println(words.length()); // 22 String productName = „Coca” + „Cola”; int length = productName.length(); // 8 contains – sprawdza czy w łańcuchu znaków …

Metody klasy String Read More »

Klasa String

Klasa String jest klasą wbudowaną w Javę. Służy ona do reprezentacji tekstów. String jest także obiektem i jest on immutable czyli niezmienny. Czyli raz utworzonego String nie da się zmienić. Wszystkie więc operacje które mogą „zmienić” Stringa tak naprawdę zwracają nowy zmieniony obiekt String. Ma to duże znaczenie w przypadku tworzenia dużej ilości napisów powstałych …

Klasa String Read More »

Operacje na strumieniach – metody

Strumienie wykorzystują następujące metody: filter() map() forEach() limit() count() flatMap() peek() allMatch() collectors() reduce() findFirst() min() max() Metoda filter () – zwraca strumień zawierający tylko te elementy dla których filtr zwrócił wartość true z oryginalnego strumienia. Filtrowanie najlepiej stosować na początku, wówczas pozostałe metody zostaną wykonane już tylko na przefiltrowanych wartościach. Warunek filtru może zostać …

Operacje na strumieniach – metody Read More »