Algorytmy #2: dziel i zwyciężaj

divide and conquer

Trochę historii 'dziel i zwyciężaj’ Maksyma „dziel i zwyciężaj” (ang. divide and conquer) powinna kojarzyć Ci się ze starożytnym Rzymem, gdzie główne sukcesy militarne tego Państwa, szły razem z znakomitą dyplomacją. Rzymianie, gdy tylko mogli, koncentrowali się na walce z jednym przeciwnikiem, szukając jak największej liczby sojuszników (z reguły tymczasowych), którzy mogli przyłączyć się do … Dowiedz się więcej

Algorytmy #1: rekurencja/rekursja

algorithms

Czym jest Algorytm? Za pewne zastanawiasz się co to jest algorytm i po co są one tak istotne dla programistów. Najprostsza definicja brzmi: algorytm to sposób rozwiązywania problemu. Jest ona jak najbardziej poprawna, ale aby ją trochę rozszerzyć wyobraź sobie następującą sytuację. Przed Tobą bardzo pracowity dzień i aby wykonać wszystkie czynności jakie sobie zaplanowałeś/aś, … Dowiedz się więcej

Java #17: Formatowanie łańcuchów znaków (String format)

java string format

Formatowanie łańcuchów znaków Na pewno kilka razy zastanawiałeś się, dlaczego nie można w prosty sposób formatować Stringi. Okazuje się, że w formatowanie łańcuchów znaków Javie jest to bardzo proste. Poniżej zaimplementowałem pomocniczą klasę Cat, przechowującą model danych (w tym przypadku są to 'właściwości’ kota). Metoda format Zasada tworzenia sformatowanego tekstu jest prosta. Używasz statycznej metody … Dowiedz się więcej

Java #16: obiekty POJO i losowanie liczb

java random

Obiekty POJO Obiekty POJO (Plain Old Java Object) to nic innego jak zwykłe klasy zawierające jedynie pola, domyślny konstruktor (czyli taki, którego nie implementujemy, domyślnie jest tworzony przez kompilator) i akcesory (gettery i settery do każdego z pól). Pojęcie to powstało podczas rozwoju Java Enterprise Edition, gdzie istniały już pojęcia takie jak JavaBean, EntityBean czy … Dowiedz się więcej

Java #15: funkcje matematyczne, BigInteger i BigDecimal.

java math

Funkcje matematyczne – klasa Math Zgodnie z zasadą ‘nie wymyślaj koła od nowa’ w Javie zaimplementowano prosta klasę z metodami statycznymi, przydatną do obliczeń matematycznych. Klasa nosi nazwę Math i posiada przeróżne funkcje matematyczne, które mogą być dla Ciebie przydatne. Oto one: Proste, co nie? BigDecimal Pamiętasz jedną z pierwszych lekcji, w której starałem się … Dowiedz się więcej

Java #14: Typ wyliczeniowy (enum)

java enum

Typ wyliczeniowy Poznałeś/aś już dwa rodzaje typów referencyjnych: obiekt i tablicę. Dziś zajmę się kolejnym z nich, czyli typem wyliczeniowym.  Typ wyliczeniowy to specjalny rodzaj typu referencyjnego, które z miejsca stają się klasami niezmiennymi (ang. immutable). Jak pamiętasz obiekt takiej klasy raz stworzony nie podlega później zmianie. Jest to szczególnie ważne w środowisku wielowątkowym (czyli … Dowiedz się więcej

Java #13: Importowanie klas i pakiety

java package import

Czasami do napisania kodu nie wystarczy Ci jedna klasa. Właściwie pisząc komercyjny kod prawie zawsze jest on rozłożony na setki a nawet tysiące klas. Kiedy klas jest tak dużo, nie opłaca się ich wszystkich trzymać w jednym miejscu. Tu z pomocą przychodzą pakiety, czyli katalogi, w których trzymane sią logicznie połączone ze sobą klasy. Aby … Dowiedz się więcej

Eclipse #1: środowisko programistyczne

eclipse

Aby zaprogramować efektywnie system, raczej nie pisze się go w notatniki, tylko korzysta się z wyspecjalizowanych środowisk programistycznych (IDE). W Javie dostępnych jest kilka różnych IDE. Najbardziej popularne to: NetBeanse, InteliiJ i Eclipse. W tym tutoriale skupię się na środowisku Eclipse. Pamiętaj, że aby odpalić Eclipse’a czy też jakieś inne IDE potrzebna jest zainstalowana Java … Dowiedz się więcej