Zaoenia projektowe Javy prostota proste podstawowe pojcia programowanie

  • Slides: 5
Download presentation
Założenia projektowe Javy • prostota, – proste podstawowe pojęcia, programowanie w Javie nie powinno

Założenia projektowe Javy • prostota, – proste podstawowe pojęcia, programowanie w Javie nie powinno wymagać długiego szkolenia • obiektowość, – język zaprojektowany od początku z myślą o obiektowości, • znajomy wygląd, – podobieństwo do C/C++, • odporność i bezpieczeństwo, – kontrola w czasie kompilacji i wykonania, – brak wskaźników, – stworzona do pracy w rozproszonym środowisku, • neutralność architektury i przenaszalność – bajtkod i JVM, – ścisła definicja wbudowanych typów danych, • • wysoka wydajność, język interpretowany, z wątkami i dynamicznym łączeniem 12/13/2021

Główne cechy • • typy wbudowane • byte (8), short(16), int (32), long(64), •

Główne cechy • • typy wbudowane • byte (8), short(16), int (32), long(64), • float (32), double (64), • char (16, unicode), • boolean, operatory • takie jak w C/C++ (dodany >>> do bezznakowego przesuwania w prawo, + do łączenia napisów), tablice • naprawdę są, są tworzone dynamicznie, jest sprawdzanie poprawności odwołań, napisy • obiekty Javy, • String i String. Buffer, nie ma goto, są wielopoziomowe instrukcje break i continue, zarządzanie pamięcią z odśmiecaniem • jest new ale nie ma delete, wbudowana obsługa współbieżności • synchronized, model monitorów. 12/13/2021

Co usunięto z C/C++ • • • nie ma typedef (są klasy), nie ma

Co usunięto z C/C++ • • • nie ma typedef (są klasy), nie ma preprocesora (np. #define (są stałe)), nie ma plików nagłówkowych (kompilator generuje z plików źródłowych pliki binarne z niezbędnymi informacjami), nie ma struktur i unii (są klasy), nie ma funkcji (są metody), nie ma wielodziedziczenia klas (jest wielodziedziczenie interfejsów), nie ma instrukcji goto (choć słowo goto jest zastrzeżone), nie ma przeciążania operatorów (ale jest dociążanie metod), nie ma niejawnych przekształceń (koercji) typów (można je zapisywać jawnie), nie ma wskaźników (są klasy, zmienne których wartościami sa obiekty albo null, tablice, obiekty reprezentujące napisy), nie ma delete (jest automatyczne odśmiecanie). 12/13/2021

Co jest z C/C++ • • • klasy, konstruktory, new (konieczne do tworzenia obiektów,

Co jest z C/C++ • • • klasy, konstruktory, new (konieczne do tworzenia obiektów, sama deklaracja zmiennych nie wystarcza), this, metody finalize (zamiast destruktorów), podklasy, sterowanie dostępęm do składowych: • public, • protected, • private, • bez nazwy (przyjacielski) zmienne klasowe i instancyjne, abstrakcyjne klasy i metody, większość składni (i semantyki) instrukcji i wyrażeń. 12/13/2021

Łyżka dziegciu • Java jest prosta: • „The Java language specification” (wyd. 1) Goosling,

Łyżka dziegciu • Java jest prosta: • „The Java language specification” (wyd. 1) Goosling, Joy, Steele, 1996, 821 str. • „The Java language specification” (wyd. 2) Goosling, Joy, Steele, Bracha 2000, ok. . 450 str. (wyrzucono opis standardowych pakietów), • „Język C++” (2 -ga wesja, 91/93), Stroustrup, 700 str. (wydanie polskie) • „Język C++” (3 -cia wesja, 97+), Stroustrup, 976 str. (wydanie polskie) (dodano opis standardowych bibliotek), • do Javy jest świetna dokumentacja: • To prawda, ale (dane o jdk 1. 3): • tutorial (b. dobry zresztą) 16, 7 M • spec. języka (p. wyżej) 1, 6 M • pozostała dokumentacja 112, 5 M (w tym opis API 97, 3 M) • Java jest szybka i wydajna: • bez komentarza 12/13/2021