JAVA. Przegląd metod

Wielkość: px
Rozpocząć pokaz od strony:

Download "JAVA. Przegląd metod"

Transkrypt

1 Optymalizacja JAVA Przegląd metod

2 Istota problemu Programiści pozostawiają optymalizację swoich programów na koniec pracy mając często nadzieję na uniknięcie jej w ogóle. A przecież decyzje podejmowane we wczesnym etapie projektowania mają duży wpływ na wydajność programu. W związku z tym problemy wydajności powinny być brane pod uwagę już w momencie projektowania. Kolejne slajdy ukazują, w jaki sposób decyzje podjęte we wczesnym etapie projektowania mogą mieć znaczący wpływ na wydajność aplikacji.

3 Zasady projektowania Programy dobrze zbudowane Interfejsy klas Tworzenie obiektów klasy String Wykorzystanie RMI

4 Interfejsy klas unikanie nadmiernego tworzenia obiektów (problem pętli) Zmienne typu String są niezmienne (immutable) oznacza to, że jakakolwiek modyfikacja łańcucha prowadzi do utworzenia w pamięci nowego obiektu klasy String. Żeby zmodyfikować lub stworzyć nowy napis konieczne jest utworzenie nowego obiektu.

5 Obiekty tymczasowe Rozważmy następującą możliwą implementację metody getbounds(): public class Component { protected Rectangle mybounds; public Rectangle getbounds() { return mybounds; } } Rectangle r = component.getbounds(); r.height *= 2; Ze względu na dopuszczalne modyfikacje obiektu klasy Rectangle, referencja do obiektu związanego z położeniem komponentu może zostać zmodyfikowana bez wiedzy obiektu klasy Component.

6 Obiekty tymczasowe (2) public Rectangle getbounds() { return new Rectangle(myBounds.x, mybounds.y, mybounds.height, mybounds.width); } Każde odwołanie do getbounds() tworzy nowy obiekt

7 Rozwiązanie public int getx() {return mybounds.x; } public int gety() {return mybounds.y; } public int getheight() {return mybounds.height; } public int getwidth() {return mybounds.width; } Dodatkowe metody zwracające atomowe wartości zapewniają bardziej efektywny sposób uzyskania tych samych informacji. W wyniku tych modyfikacji pakietu Swing wiele operacji wykonuje się nawet dwa razy szybciej, co ma dość duże znaczenie.

8 Rozwiązanie (2) public Rectangle getbounds(rectangle returnval) { returnval.x = mybounds.x; returnval.y = mybounds.y; returnval.height = mybounds.height; returnval.width = mybounds.width; return returnval; } Metoda wywołująca getbounds() musi utworzyć obiekt typu Rectangle, ale można go potem wykorzystać ponownie do innych podobnych wywołań. Jeżeli chcemy uzyskać dostęp do informacji o każdym z kolekcji komponentów to możemy utworzyć pojedynczy obiekt klasy Rectangle i użyć go dla uzyskania informacji o każdym z komponentów.

9 Zdalne wywoływanie metod Kiedy uzyskujemy referencję do obiektu zdalnego poprzez serwer nazw, nie otrzymujemy właściwej referencji do tego obiektu, tylko referencję do obiektu tymczasowego (stub object), który implementuje ten sam interfejs, co obiekt zdalny. Kiedy wywołujemy metodę obiektu tymczasowego, parametry metody są łączone (marshall), następnie konwertowane na strumień bajtów (proces podobny do serializacji). Obiekt tymczasowy wysyła złączone parametry poprzez sieć do obiektu szkieletowego (skeleton object), który je rozdziela a następnie wywołuje właściwą zdalną metodę, którą chcieliśmy wywołać. Wyniki działania są przekazywane z powrotem do obiektu szkieletowego, który łączy wyniki, wysyła do obiektu tymczasowego, ten je rozdziela i zwraca wartość do obiektu wywołującego.

10 Porównanie zdalnego i lokalnego wywoływania metod Zdalne tworzenie obiektów jest dużo bardziej kosztowne niż lokalne, ponieważ oprócz niego tworzone są obiekty tymczasowy i szkieletowy. Ze zdalnym wywoływaniem metod wiąże się także duża ilość danych przesyłanych przez sieć. Opóźnienia związane z łączeniem, rozdzielaniem parametrów, opóźnienia powodowane przez sieć i koszty wywołania metod sumują się klient musi zaczekać dopóki wszystkie te kroki nie zostaną wykonane. Koszty zdalnego wywoływania zależą od szybkości wykorzystywanej sieci. Różne typy danych wiążą się z różnymi kosztami łączenia: wykorzystywanie typów podstawowych nie jest bardzo kosztowne. Natomiast korzystanie z obiektów odwołujących się do wielu obiektów (np. kolekcji) jest bardzo kosztowne.

11 Interfejs zdalnych obiektów Należy zwracać uwagę na niepotrzebną wymianę informacji pomiędzy zdalnymi systemami. Jeżeli program wywołujący potrzebuje otrzymać kilka wartości czy obiektów trzeba, jeśli to możliwe, dokonać tego w jednym zdalnym wywołaniu. Jeżeli program wywołujący nie potrzebuje przechowywać referencji do zdalnego obiektu metoda nie powinna jej zwracać. Analogicznie, jeżeli zdalna metoda nie potrzebuje kopii obiektu to, szczególnie w przypadku złożonych obiektów, nie należy ich używać jako parametrów metod.

12 Analiza miar Program obiektowy Narzędzia analizujące kod Generowanie metryk obiektowych Modyfikowanie projektu

13 JStyle Umożliwia między innymi analizę: poprawności nazewnictwa klas i interfejsów, oraz ich uporządkowania, stylu kodowania umożliwiającego ponowne wykorzystanie kodu, niepoprawnych sposobów obsługi wyjątków, nieefektywnego projektu programu, metryk zorientowanych obiektowo z uwzględnieniem specyfiki języka Java.

14 Miary projektu Number of Packages, Modules, Interfaces, Classes Reuse Ratio (Liczba nadklas) / (Całkowita liczba klas) Specialization Ratio (Liczba podklas) / (Liczba nadklas) Average Inheritance Depth (Suma głębokości wszystkich klas) / (Całkowita liczba klas)

15 Miary modułu Total Number of Lines Number of Comment Lines Number of Blank Lines Comment Density Number of Classes and Interfaces

16 Miary klas Fan-in (Liczba klas zależnych od danej klasy) Fan-out (Liczba klas używanych przez daną klasę) Response for Class (Miara podaje liczbę metod, wewnętrznych i zewnętrznych dostępnych w klasie) Miara spójności strukturalnej klasy (LCOM) liczba rozłącznych zbiorów metod, gdzie każde dwie metody w tym samym zbiorze korzystają z przynajmniej jednej lokalnej zmiennej instancyjnej. Miara o wartości 1 reprezentuje spójną klasę, podczas gdy całkowicie niespójna klasa miałaby wartość równą całkowitej liczbie metod w klasie.

17 Miary metod Number of Statements Number of Exceptions Thrown Cyclomatic Number (liczba linowo niezależnych ścieżek programu) Halstead Measures (Długość programu, Słownik programu, Objętość kodu, Poziom programu, Skala trudności programu, Przewidziane błędy)

18 Optymalizacja kodu źródłowego Poprawianie wydajności

19 Inicjalizacja klas i obiektów klas public class cls_init1 { static class Dane { private int dzien; private String nazwa; Data(int i, String s) { dzien = i; nazwa = s; } } Dane tydzien [] = { new Dane(1, "Poniedziałek"), new Dane(2, "Wtorek"), new Dane(3, "Środa"), new Dane(4, "Czwartek"), new Dane(5, "Piątek"), new Dane(6, "Sobota"), new Dane(7, "Niedziela") };

20 Inicjalizacja klas i obiektów klas (2) public class cls_init2 { static class Dane { private int dzien; private String nazwa; Dane(int i, String s) { dzien = i; nazwa = s; } } static Dane tydzien [] = { new Dane(1, "Poniedziałek"), new Dane(2, "Wtorek"), new Dane(3, "Środa"), new Dane(4, "Czwartek"), new Dane(5, "Piątek"), new Dane(6, "Sobota"), new Dane(7, "Niedziela") }; public static void main(string args[]) { final int N = ; cls_init2 x; Stoper t = new Stoper(); for (int i = 1; i <= N; i++) x = new cls_init2(); t.podaj_czas("dane zadeklarowane jako statyczne"); } }

21 Wstawianie metod public class meth_inline { public static int min(int a, int b) { return (a < b? a : b); } public static void main(string args[]) { final int N = ; int a = 5; int b = 17; int c; Stoper t = new Stoper(); for (int i = 1; i <= N; i++) c = (a < b? a : b); t.podaj_czas("wstawiony kod metody"); } }

22 Synchronizacja metod public class meth_sync { public void meth1() {} public synchronized void meth2() {} public static void main(string args[]) { final int N = ; meth_sync x = new meth_sync(); // metoda nie zsynchronizowana Stoper t = new Stoper(); for (int i = 1; i <= N; i++) x.meth1(); t.podaj_czas("metoda nie zsynchronizowana"); // metoda zsynchronizowana t.wyzeruj(); for (int i = 1; i <= N; i++) x.meth2(); t.podaj_czas("metoda zsynchronizowana"); } }

23 Porównanie czasów wywołań metod Jeśli metoda nie wykorzystuje zmiennych instancyjnych należy zadeklarować ją jako statyczną. Jeśli metoda nie musi być przykryta przez klasy, które ją dziedziczą należy zadeklarować ją jako finalną. Jeśli metoda nie będzie wywoływana spoza swojej klasy należy zadeklarować ją jako prywatną.

24 Zmienne Zmienne typu int oraz zmienne referencyjne to zmienne o najszybszym dostępie. Wartości typu int, boolean, byte, short oraz char przechowywane w zmiennych zajmują zawsze 32 bity i wykorzystują ten sam kod bitowy do odczytania i zapisania wartości. W tablicach natomiast zmienne typu boolean i byte przechowywane są jako 8-bitowe wartości, zmienne typu short i char jako 16-bitowe wartości, zmienne int i float jako 32-bitowe, natomiast long i double jako wartości 64-bitowe.

25 Zmienne typu String String str = testowy ; str = str + abc ; Zmienna str początkowo odnosi się do łańcucha testowy ale po wykonaniu drugiej instrukcji wskazuje już na nowy łańcuch składający się z połączenia str i abc. Wykorzystanie metody append() do tworzenia łańcuchów jest dużo bardziej wydajne niż zastosowanie operatora +.

26 Porównywanie stringów String s1 = abc ; String s2 = def ; To wynik porównania: s1 == s2 if (s1 == s2 s1.equals(s2))...

27 Uzyskiwanie długości zmiennych typu String // wywołanie metody length() int licznik = 0; Stoper t = new Stoper(); for (int i = 0; i < s.length(); i++) { if (s.charat(i) == 'x') licznik++; } t.podaj_czas("wywołanie metody length()"); // wyliczona długość łańcucha licznik = 0; t.wyzeruj(); for (int i = 0, dlugosc = s.length(); i < dlugosc; i++) { if (s.charat(i) == 'x') licznik++; } t.podaj_czas("wyliczona długość łańcucha");

28 Buforowanie // odczytywanie pojedynczych znaków FileInputStream fis = new FileInputStream(args[0]); int licznik = 0; int c; Stoper t = new Stoper(); while ((c = fis.read())!= -1) if (c == 'x') licznik++; t.podaj_czas("odczytywanie pojedynczych znaków"); fis.close(); // odczyt z buforowaniem fis = new FileInputStream(args[0]); byte buf[] = new byte[1024]; licznik = 0; int n; t.wyzeruj(); while ((n = fis.read(buf)) > 0) for (int i=0; i < n; i++) if (buf[i] == 'x') licznik++; t.podaj_czas("odczyt z buforowaniem"); fis.close();

29 Klasa ArrayList kontra klasa LinkedList W przypadku LinkedList czas wstawiania jest znacząco krótszy. Wynika to z tego, że wstawienie elementu na początek struktury ArrayList wymaga przesunięcia wszystkich elementów o jedno miejsce dalej, natomiast w przypadku LinkedList dodanie elementu jako pierwszego polega tylko na ustawieniu odpowiednich połączeń (referencji, wskaźników). ArrayList ma dużą przewagę jeżeli chcemy często odczytywać elementy losowo, struktura LinkedList, w przypadku losowego dostępu do jej elementów wymusza dużą ilość iteracji w celu odnalezienia właściwego.

30 Optymalizacja B-kodu. Kompilatory Just-In-Time. Optymalizacja adaptacyjna rozwiązuje problemy kompilatorów JIT wykorzystując fakt, że większość czasu wykonania programu dotyczy bardzo niewielkiego fragmentu kodu. Zamiast kompilować metoda po metodzie, kompilator Java HotSpot uruchamia program za pomocą interpretera i analizuje kod wyszukując tzw. gorące punkty (hot spots) krytyczne miejsca w kodzie programu, które zajmują bardzo dużo czasu wykonania. Dopiero wtedy kompiluje wyszukane fragmenty kodu.

31 Optymalizacja kodu wykonywalnego Profiler jest narzędziem wręcz niezbędnym do przeprowadzenia procesu optymalizacji. Pozwala na uzyskanie informacji o miejscach w programie, które powodują obniżenie wydajności, wykorzystują najwięcej czasu procesora, metodach, które są wywoływane najczęściej oraz o zużyciu pamięci. Pakiet JDK zawiera taki profiler, jest on dostępny po użyciu następującej opcji: C:\>java -Xrunhprof:[:help] [<option>=<value>,...] Przykład: java -Xrunhprof:cpu=samples,file=log.txt,depth=3 FooClass

32 Jprobe, OptimizeIt Runtime Heap Summary Instance Summary Garbage Monitor Heap Usage Chart Checkpoints (Request Garbage Collection, Current Values, Clear Current) Timing methods (Elapsed Time, CPU Time) Method Object Count, Number of Calls Heap Metrics

33 Przykład public class HuffmanCodec public HuffmanCodec(String filename) public int loadfile(string filename) public int code(string outfilename) public int decode(string outfilename) abstract class HuffmanTools static int power(int n1, int n2) static String addzeros(string bin) static int bin2dec(string bin) static String dec2hex(int dec) static String dec2bin(int dec) static void sortlist(arraylist listofelems, int[] chararray) static Node createtree(arraylist listofelems) static void searchtree(object root, String temp, String[] resultarray) static int findstring(string s, String[] a) static int codetofile(fileinputstream in, FileOutputStream out, String[] alphabet) abstract class HElem public int getvalue() public void setvalue(int newvalue) class Elem extends Helem public Elem(int newchr, int newvalue) public void setchr(int newchr) public int getchr() class Node extends Helem public Node(int newvalue)

34 Przykład (2) Number of Interfaces 0 1 Number of Static Methods 10 5 Cyclomatic Number 12 6 Program Effort

35 Przykład (3) Modyfikacja struktury klas Huffman v Classic JVM Huffman v czas w ykonania (ms)

36 Przykład (4) Użycie opcji kompilatora -O Huffman v Classic JVM Huffman v czas w ykonania (ms)

37 Przykład (5) Kompilator JIT Classic JVM Huffman v2.0 JVM HotSpot czas w ykonania (ms)

38 Przykład (6)

39 Przykład (7) Struktura danych HashMap 700 JVM HotSpot tablice czas w ykonania (ms)

40 Przykład (8) Metody klas Javy tobinarystring() 5500 JVM HotSpot dec2bin() czas w ykonania (ms)

41 Przykład (9) Operacje wejścia/wyjścia BufferedStream 1900 JVM HotSpot FileStream czas w ykonania (ms)

42 Przykład (10) Przetwarzanie łańcuchów char[] i SB 8600 JVM HotSpot String czas w ykonania (ms)

43 Przykład (11) Obliczanie długości łańcucha length() 7500 JVM HotSpot int czas w ykonania (ms)

44 Przykład (12) Procentowy wzrost wydajności po zastosowaniu modyfikacji Modyfikacja struktury klas z wykorzystaniem miar oprogramowania 20,49% Użycie opcji kompilatora -O 4,94% Użycie kompilatora Just-In-Time 81,25% Wykorzystanie struktury HashMap 90,27% Użycie metody tobinarystring() 9,83% Użycie klasy BufferedStream zamiast FileStream 65,45% Użycie StringBuffer i char[] do przetwarzania łańcuchów 5,49% Eliminacja wywołań metody length() w pętli 2,66% Inicjalizacja wielkości struktury HashMap 1,06% 0,00% 20,00% 40,00% 60,00% 80,00% 100,00% procent

45 Podsumowanie Bardzo ważne jest utworzenie poprawnego projektu, dobrze zbudowanego programu. Konieczna jest znajomość miar obiektowych. Następnym krokiem jest wykorzystanie odpowiedniego kompilatora. Projekt HotSpot firmy Sun ma ogromne znaczenie dla dalszego rozwoju języka Java.

46 Podsumowanie (2) Wykorzystanie profilera do wykrycia gorących punktów w programie pozwala analizować tylko te miejsca w programie, które naprawdę tego wymagają. Jeżeli zastosujemy odpowiednie, wydajniejsze mechanizmy i struktury języka Java to wynikiem może być tylko bardzo efektywny, poprawnie napisany program w języku Java. Bardzo ważny wniosek dotyczy kolejności kroków optymalizacji. Optymalizacja kodu źródłowego jest opłacalna tylko po wcześniejszym wykorzystaniu profilera. Modyfikacje kodu, nawet bardzo wydajne, wykonane w nieodpowiednich miejscach, nie przyniosą spodziewanych korzyści.

47 EJB Komponenty Enterprise JavaBeans 2.0 Interfejsy EJB encji i sesji Klienci odlegli i lokalni EJB sesji i encji EJB wiadomości Obsługa wyjątków Transakcje Zabezpieczenia

48 J2EE Architektura J2EE Struktura warstw......komponenty......kontenery.... Role w procesie tworzenia aplikacji J2EE Interfejsy programowania aplikacji (API) Transakcje, zabezpieczenia, usługi nazewnicze

49 Technologia JavaServlet Kontener servletów Zarządzanie pamięcią przez servlet Cykl życia servleta Wydajność i bezpieczeństwo servletów Zastosowania servletów (Servlet generujący fragmenty kodu HTML, Servlet generujący kod XML, Servlet generujący dane binarne, Servlet przetwarzający dane, Servlet współpracujący z apletem, Servlet jako proxy pomiędzy apletami, Łańcuch servletów, Servlet przekierowujący żądania, Servlet w mechanizmie autoryzacji klienta, Aplikacje WWW w technologii JavaServlet) Kierunki rozwoju technologii JavaServlet

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

Wykład 2: Podstawy Języka

Wykład 2: Podstawy Języka Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Definicje klas i obiektów. Tomasz Borzyszkowski

Definicje klas i obiektów. Tomasz Borzyszkowski Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Model pamięci. Rafał Skinderowicz

Model pamięci. Rafał Skinderowicz Model pamięci Rafał Skinderowicz Czym jest model pamięci Model pamięci dotyczy programów współbieżnych W programie współbieżnym może się zdarzyć, że dany wątek nie będzie widział od razu wartości zmiennej

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

Programowanie obiektowe. Wprowadzenie 1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Spis treści. 1 Java T M

Spis treści. 1 Java T M Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Dziedziczenie. Tomasz Borzyszkowski

Dziedziczenie. Tomasz Borzyszkowski Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 2

Języki i techniki programowania Ćwiczenia 2 Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

Wykład 6: Dziedziczenie

Wykład 6: Dziedziczenie Wykład 6: Dziedziczenie Dziedziczenie Jeden z filarów obiektowości. Budowa jednej klasy na bazie drugiej, przez dodawanie/przesłanianie jej składowych: nad-klasa klasa bazowa pod-klasa klasa pochodna od

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne import javax.swing.*; import java.util.*; public class Napis4 { String wynik = ""; static int ile_obiektow

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 6 Program wykładu Pojęcie interfejsu i implementacji Hermetyzacja Pakiety w Javie Składowe statyczne Kompozycja - korzystanie z gotowych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

Bardziej szczegółowo

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Tomasz Kuczyński Dział Aplikacji Tomasz Nowak Zespół Bezpieczeństwa Wrocław, 2.12.2010 r. Konferencja i3: internet

Bardziej szczegółowo

Programowanie w języku Java 7 z biblioteką SWING

Programowanie w języku Java 7 z biblioteką SWING Programowanie w języku Java 7 z biblioteką SWING Opis Szkolenie przeznaczone jest dla osób bez większego doświadczenia w programowaniu. Pokrywa ono większość składni języka Java, skupiając się na podstawowych

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Programowanie wieloplatformowe w Java

Programowanie wieloplatformowe w Java Programowanie wieloplatformowe w Java dr Krzysztof Podlaski 1 Kwestie organizacyjne Wykład: 15 godzin Zaliczenie test Ćwiczenia 30 godzin (dr K.Podlaski) Zaliczenie projekt Konsultacje: do ustalenia, Kontakt:

Bardziej szczegółowo

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

Bardziej szczegółowo

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Programowanie obiektowe i język Java

Programowanie obiektowe i język Java Programowanie obiektowe i język Java Tomasz Głowacki Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych i ich zastosowań

Bardziej szczegółowo

NETBEANS PROFILER TOMASZ ŁUKASZUK

NETBEANS PROFILER TOMASZ ŁUKASZUK NETBEANS PROFILER TOMASZ ŁUKASZUK STRESZCZENIE: Dokument zawiera podstawowe informacje dotyczące programu NetBeans Profiler. Stanowi uproszczoną instrukcję jego używania. Dotyczy NetBeans Profiler w wersji

Bardziej szczegółowo

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy

Bardziej szczegółowo

Algorytmy i Struktury Danych. Anna Paszyńska

Algorytmy i Struktury Danych. Anna Paszyńska Algorytmy i Struktury Danych Anna Paszyńska Tablica dynamiczna szablon Array Zbiory Zbiory template class Container {public: virtual ~Container() { }; virtual int Count() const = 0;

Bardziej szczegółowo

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski Realizacja ekstensji klasy Paulina Strzelecka, Tomasz Roszkowski Przechowywanie obiektów (odwolañ do obiektów) w Javie typ wbudowany - tablica zbiór klas kontenerowych Paulina Strzelecka, Tomasz Roszkowski

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r. Programowanie w Javie cz. 1 Wstęp Łódź, 24 luty 2014 r. Prawdy i mity o Javie Java jest techniką webową? (tak, platforma Java EE, aplety) Java jest bezpieczna? (tak, aplety, brak operowania na pamięci)

Bardziej szczegółowo

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW 1. Procedura korzystania ze strumieni danych Aby utworzyć plik: 1) Należy utworzyć obiekt (np. typu FileOutputStream), powiązany ze plikiem danych binarnych (np.

Bardziej szczegółowo

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego

Bardziej szczegółowo

2. Składnia, środowisko i konwencje w Javie

2. Składnia, środowisko i konwencje w Javie Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda Najważniejsze platformy mobilne Android ios Windows Phone 8.1 BlackBerry OS Sailfish OS Tizen Brew Android

Bardziej szczegółowo

KLASY, INTERFEJSY, ITP

KLASY, INTERFEJSY, ITP KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG Budowa aplikacji w technologii Enterprise JavaBeans Maciej Zakrzewicz PLOUG Plan prezentacji Przegląd architektur aplikacji rozproszonych: CORBA, SOAP, EJB Wprowadzenie do Enterprise JavaBeans (EJB) Budowa

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Klasy w C++

Zaawansowane programowanie w języku C++ Klasy w C++ Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

Bardziej szczegółowo

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych Plan prezentacji Budowa aplikacji w technologii Enterprise JavaBeans Przegląd architektur aplikacji rozproszonych: CORBA,, Wprowadzenie do Enterprise JavaBeans () Budowa komponentów sesyjnych Budowa komponentów

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Programowanie w środowiskach graficznych. Wykład 3 Język C# Programowanie w środowiskach graficznych Wykład 3 Język C# 1 Zagadnienia 1. Wprowadzenie 2. Przestrzenie nazw 3. Typy, parametry, konwersje 4. Klasy 5. Instrukcje sterujące 6. Właściwości 7. Interfejsy,

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza Akademia ETI Wprowadzenie do programowania w Javie PG Java User Group 1 Dlaczego Java? Najpopularniejszy język programowania obiektowego Łatwy w nauce Dostępny na wiele platform 2 Platformy Java Java Standard

Bardziej szczegółowo

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

Bardziej szczegółowo

TYPY GENERYCZNE (GENERICS)

TYPY GENERYCZNE (GENERICS) TYPY GENERYCZNE (GENERICS) ZAGADNIENIA: wprowadzenie, konwencje, metody, typy surowe parametry ograniczone podtypy, dziedziczenie, symbole wieloznaczne, ograniczenia. MATERIAŁY: http://docs.oracle.com/javase/tutorial/java/generics/

Bardziej szczegółowo

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Materiały pomocnicze do wykładu 3 - Elementy języka Java Materiały pomocnicze do wykładu 3 - Elementy języka Java 1) Typy danych Typy całkowite Typ Rozmiar Zakres przechowywanych danych byte 8 bitów -128 do 127 short 16 bitów -32768 do 32767 int 32 bity -2147483648

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Podstawy otwartych języków programowania Język Java

Podstawy otwartych języków programowania Język Java Podstawy otwartych języków programowania Język Java Wiktor Wandachowicz Platforma Java Stworzona przez Sun Microsystems, Inc. J2SE Java 2 Standard Edition (platforma ogólnego przeznaczenia/desktop) J2EE

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo