Droga Czytelniczko, Drogi Czytelniku,

Czerniak złośliwy jest często występującym nowotworem złośliwym skóry. Niestety wyniki leczenia czerniaka w Polsce należą do najgorszych w Europie. Niezrozumiałe pozostają przyczyny późnego rozpoznawania czerniaka skóry, którego diagnostyka jest najprostszą i najtańszą w całej onkologii.

Kierujemy do Ciebie prośbę o wypełnienie anonimowej ankiety, która pozwoli na ocenę naszej wiedzy o czerniaku skóry, a w szczególności o profilaktyce i leczeniu tej choroby.
Czas jaki to zajmie - około 10-15 minut.

Czy chcesz pomóc w badaniach naukowych - odpowiedzieć na nasze pytania?

TAK, wypełniam
NIE, odmawiam

Zebrane informacje wykorzystane zostaną wyłącznie do celów naukowych
Polski Serwis Naukowy - OnLine od 1999 roku RSS RSS
  auto?
Dodaj do: 
Dodaj link do serwisu Facebook   Dodaj link do opisu GG  Dodaj link do serwisu Wykop   Dodaj link do serwisu Google   Dodaj link do serwisu Twitter  Dodaj link do serwisu Wyczaj.to   Dodaj link do serwisu Gwar   Dodaj link do serwisu Delicious  Dodaj link do serwisu Digg   Dodaj link do serwisu Furl   Dodaj link do serwisu Magnolia  Dodaj link do serwisu Reddit   Dodaj link do serwisu Simpy   Dodaj link do serwisu Slashdot  Dodaj link do serwisu Technorati   Dodaj link do serwisu YahooMyWeb
Warto przeczytać:
 
Absolwenci PG zwycięzcami konkursu na prace dotyczące technologii JAVA
Damian Nowak i Wojciech Hryniewski z Wydziału Elektroniki Telekomunikacji i Informatyki Politechniki Gdańskiej wygrali szóstą edycję konkursu na najlepsze prace dyplomowe z zakresu rozwiązań internetowych realizowanych w technologii JAVA. W nagrodę otrzymali 7 tys. zł.J...
 
Przetwarzanie w chmurze i ekologiczna informatyka, Sydney, Australia
W dniach 12 - 14 grudnia 2011 r. w Sydney, Australia, odbędzie się międzynarodowa konferencja nt. przetwarzania w chmurze i ekologicznej informatyki. Przetwarzanie w chmurze zdobywa pozycję nowej, powstającej platformy, która zapewnia infrastrukturę i zasoby informa...
 
Badania naukowe odkrywają, że praca informatyka jest szczególnie stresująca
Sektor technologii informatycznej (IT) uznawany jest za siłę napędową innowacji. Niemniej według wyników ostatnich badań innowacja w sektorze jest hamowana nie ze względu na finansowanie czy infrastrukturę, ale z powodu szczególnego narażenia informatyków na wypalenie zawodo...
 
Informatyka jakościowa - różne światy i praktyki badawcze, Istambuł, Turcja
W dniach 24-26 lutego 2011 r. w Istambule, Turcja, odbędzie się wydarzenie pt. "Informatyka jakościowa - różne światy i praktyki badawcze". Wydarzenie poświęcone będzie temu, w jaki sposób praktyki naukowe z rozmaitych dyscyplin naukowych wchodzą w interakcje z informatyką...
 
Deklaratywne aspekty programowania wielordzeniowego, Austin, USA
Dnia 23 stycznia 2011 r. w Austin, USA, odbędzie się konferencja pt. "Deklaratywne aspekty programowania wielordzeniowego". Wielu producentów chipów wybiera wielordzeniowość jako sposób na zapewnienie wydajności swoim procesorom do zastosowań biurowych, przemysł...

Reklama:


Java

To hasło encyklopedii posiada podstrony: 1 [2],[3]

Czy wiesz że...?
Java Platform, Micro Edition lub Java ME (znana wcześniej jako Java 2 Platform, Micro Edition lub J2ME) to specyfikacja opracowana przez firmę Sun Microsystems opisująca uproszczoną wersję platformy Java. Platforma Java ME została zaprojektowana z myślą o urządzeniach o bardzo ograniczonych zasobach, takich jak telefony komórkowe lub palmtopy. Ze względu na ograniczenia techniczne takich urządzeń, tj. wolniejsze procesory, mniejszą pamięć, Java ME posiada swój własny, okrojony w stosunku do Java SE zbiór klas zwanych konfiguracją (ang. configuration). Konfiguracje są uzupełniane przez profile (ang. profile) dodające do istniejących klas swoje własne klasy zapewniające wykonywanie określonych zadań na konkretnych urządzeniach. Profile mogą natomiast być wzbogacone o pakiety opcjonalne (ang. Optional Packages). Taka różnorodność API (Application Programming Interface) daje projektantom i programistom dużą elastyczność w tworzeniu oprogramowania dla urządzeń wyposażonych w różne konfiguracje sprzętowe. Środowisko Java ME posiada także w zależności od wybranej konfiguracji swoje własne maszyny wirtualne.

Kod bajtowy (ang. bytecode) – nazwa reprezentacji kodu używanej przez maszyny wirtualne oraz przez niektóre kompilatory. Kod składa się z ciągu instrukcji (których kody operacji mają zwykle długość jednego bajta, stąd nazwa), które nie odpowiadają bezpośrednio instrukcjom procesora i mogą zawierać instrukcje wysokiego poziomu (takie jak np. stwórz obiekt klasy X, połącz dwa łańcuchy itd.), jednak w przeciwieństwie do kodu źródłowego wymagają analizy tylko pojedynczych poszczególnych operacji.
Ujednoznacznienie Ten artykuł dotyczy języka programowania. Zapoznaj się również z: inne znaczenia słowa "java".

Definicja intuicyjna:
Java (wym. "dżawa") to język programowania. Programy napisane w Javie można uruchamiać na wielu urządzeniach, takich jak telefony komórkowe lub komputery oraz pod różnymi systemami operacyjnymi, przy użyciu Wirtualnej maszyny Javy, która musi być w danym środowisku zainstalowana.

Javapedia jest projektem internetowym opartym o wiki bezpośrednio zainspirowanym przez Wikipedię, którego celem jest stworzenie sieciowej encyklopedii obejmującej wszelkie aspekty platformy programowej Java. Przedsięwzięcie to zostało zapoczątkowane w czerwcu 2003 roku podczas konferencji programistycznej JavaOne. Jest ono częścią portalu java.net, który jest promowany przez firmę Sun Microsystems jako główne miejsce kontaktów dla światowej społeczności związanej z Javą.
W programowaniu asercja (ang. assertion) to predykat (forma zdaniowa w danym języku, która zwraca prawdę lub fałsz), umieszczony w pewnym miejscu w kodzie. Asercja wskazuje, że programista zakłada, że predykat ów jest w danym miejscu prawdziwy. W przypadku gdy predykat jest fałszywy (czyli nie spełnione są warunki postawione przez programistę) asercja powoduje przerwanie wykonania programu. Asercja ma szczególne zastosowanie w trakcie testowania tworzonego oprogramowania, np. dla sprawdzenia luk lub jego odporności na błędy. Zaletą stosowania asercji jest możliwość sprawdzenia, w którym fragmencie kodu źródłowego programu nastąpił błąd.

Java to obiektowy język programowania stworzony przez grupę roboczą pod kierunkiem Jamesa Goslinga z firmy Sun Microsystems. Java jest językiem tworzenia programów źródłowych kompilowanych do kodu bajtowego, czyli postaci wykonywanej przez maszynę wirtualną. Język cechuje się silnym typowaniem. Jego podstawowe koncepcje zostały przejęte z języka Smalltalk (maszyna wirtualna, zarządzanie pamięcią) oraz z języka C++ (duża część składni i słów kluczowych).

URL (ang. Uniform Resource Locator) oznacza ujednolicony format adresowania zasobów (informacji, danych, usług) stosowany w Internecie i w sieciach lokalnych.
Komputer osobisty (ang. personal computer) – mikrokomputer przeznaczony przede wszystkim do użytku osobistego, spotyka się je zarówno w domach, jak i biurach. Mają zazwyczaj postać desktopów albo notebooków. Służą głównie do uruchamiania oprogramowania biurowego, dostępu do zasobów Internetu, prezentacji treści multimedialnych (tekst, obrazy, dźwięki, filmy i inne), jak i gier.

Javy nie należy mylić ze skryptowym językiem JavaScript, z którym wspólną ma jedynie składnię podstawowych instrukcji.

Obecnym właścicielem tej technologii jest Oracle Corporation.

Główne koncepcje

Autorzy języka Java określili kilkanaście kluczowych koncepcji swojego języka. Najważniejsze z nich to:

Obiektowość

W przeciwieństwie do proceduralno-obiektowego języka C++, Java jest silnie ukierunkowana na obiektowość. Wszelkie dane i akcje na nich podejmowane są pogrupowane w klasy obiektów. O obiekcie można myśleć jako o samoistnej części programu, która może przyjmować określone stany i ma określone zachowania, które mogą zmieniać te stany bądź przesyłać dane do innych obiektów. Wyjątkiem od całkowitej obiektowości (jak np. w Smalltalku) są typy proste (int, float itp.).

Kompresja danych (ang. data compression) – polega na zmianie sposobu zapisu informacji tak, aby zmniejszyć redundancję i tym samym objętość zbioru. Innymi słowy chodzi o wyrażenie tego samego zestawu informacji, lecz za pomocą mniejszej liczby bitów.
Plik (ang. file), jest to ciąg danych (inaczej zbiór danych), o skończonej długości, posiadający szereg atrybutów i stanowiący dla systemu operacyjnego całość. Nazwa pliku nie należy do niego, lecz jest przechowywana w systemie plików.
// oznacza komentarz
// w tej postaci to obiekt reprezentujący kolorowy punkt
public class Figura {
 
    // właściwości (atrybuty/pola)
    private float środekX;
    private float środekY;
    private int kolor; //tak naprawdę do przechowywania(tworzenia)
                       //koloru używa się zazwyczaj obiektu java.awt.Color
 
    // operacje (metody)
    public float obliczPole() {
        return 0;
    }
    public float obliczObwód() {
        return 0;
    }
    public void wyświetl() {...}
    ...
}
Jak widać z powyższego, silne typowanie oznacza, że każda wprowadzana zmienna czy pole musi mieć przypisany typ przechowywanych w niej danych (float oznacza typ zmiennoprzecinkowy), a każda metoda musi deklarować, jakiego typu dane zwraca (lub void, jeśli nic nie zwraca). Z przykładu widać też, że w nazwach zmiennych i metod można używać polskich liter – to zasługa wbudowanej obsługi kodowania Unicode. Pokazany w nazwach zmiennych i metod standard kodowania (polegający na pisaniu słów bez spacji, a z kapitalizowaniem drugiego i następnych słów składowych) jest nieobowiązkowy, ale jest jedną z uznanych za dobre praktyk programowania w Javie

Dziedziczenie

W Javie wszystkie obiekty są pochodną obiektu nadrzędnego (jego klasa nazywa się po prostu Object), z którego dziedziczą podstawowe zachowania i właściwości. Dzięki temu wszystkie mają wspólny podzbiór podstawowych możliwości, takich jak ich: identyfikacja, porównywanie, kopiowanie, niszczenie czy wsparcie dla programowania współbieżnego.

Przetwarzanie współbieżne (ang. concurrent computing) to przetwarzanie oparte na współistnieniu wielu wątków lub procesów operujących na współdzielonych danych. Wątki uruchomione na tym samym procesorze są przełączane w krótkich przedziałach czasu, co sprawia wrażenie, że wykonują się równolegle.
Komputer (z ang. computer od łac. computare – obliczać, dawne nazwy używane w Polsce: mózg elektronowy, elektroniczna maszyna cyfrowa, maszyna matematyczna) – urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału ciągłego.
// "extends" oznacza dziedziczenie po klasie Figura pól: środekX, środekY i kolor 
// oraz metod: obliczPole, obliczObwód i wyświetl
public class Kwadrat extends Figura {
    // dodatkowe atrybuty
    private float wierzchołekX;
    private float wierzchołekY;
    private float długośćBoku;
 
    // "przesłaniamy" operacje rodzica, dzięki czemu dla każdej zdefiniowanej Figury
    // można policzyć pole czy obwód
    @Override
    public float obliczPole() {
        return długośćBoku*długośćBoku;
    }
    ...
}

Choć C++ udostępniał dziedziczenie wielobazowe, projektanci Javy odeszli od tego pomysłu. Java umożliwia jedynie dziedziczenie jednobazowe, a więc wyłącznie jedna klasa może przekazać swoje właściwości i operacje jako podstawę do rozszerzania ich o dodatkowe możliwości. Dzięki temu wyeliminowano możliwość konfliktów między właściwościami przekazywanymi przez klasy nadrzędne.

C# (C Sharp, dosłownie "C-krzyżyk", "cis") – obiektowy język programowania zaprojektowany przez zespół pod kierunkiem Andersa Hejlsberga dla firmy Microsoft.
Eclipse - platforma (framework) napisana w Javie do tworzenia aplikacji typu Rich Client. Na bazie Eclipse powstało zintegrowane środowisko programistyczne do tworzenia programów w Javie, które jest razem z tą platformą rozpowszechniane.

By zrekompensować spadek elastyczności wynikający z pojedynczego dziedziczenia wprowadzono interfejsy oraz podklasy umożliwiające wielokrotne dziedziczenie implementacji. Pozwalają one nazwać pewien określony zbiór operacji, dzięki czemu można określić, że dany obiekt, któremu przypisano dany interfejs (implementujący go), umożliwia wykonanie owego zestawu operacji.

Java Development Kit (JDK) - darmowe oprogramowanie firmy Sun Microsystems udostępniające środowisko niezbędne do programowania w języku Java. Produkt dostępny jest dla wielu systemów operacyjnych - najpopularniejsze wersje są dla systemów Solaris, Linux i Microsoft Windows.
Wiktionary – projekt Fundacji Wikimedia, którego założeniem jest stworzenie wolnego słownika w każdym języku opartego na mechanizmie wiki (zawierającego m.in. synonimy czy tłumaczenia). Wiktionary jest jednym z siostrzanych projektów Wikipedii.

Niezależność od architektury

Tę właściwość Java ma dzięki temu, że kod źródłowy programów pisanych w Javie kompiluje się do kodu pośredniego. Powstały kod jest niezależny od systemu operacyjnego i procesora, a wykonuje go tzw. wirtualna maszyna Javy, która (między innymi) tłumaczy kod uniwersalny na kod dostosowany do specyfiki konkretnego systemu operacyjnego i procesora. W tej chwili wirtualna maszyna Javy jest już dostępna dla większości systemów operacyjnych i procesorów.

Clojure - nowoczesny dialekt języka programowania Lisp opracowany przez Richa Hickeya. Jest to język ogólnego przeznaczenia, wspierający modyfikację uruchomionego programu i zachęcający do programowania funkcyjnego oraz współbieżnego.
Tablica w informatyce to kontener danych dostępnych, w którym poszczególne komórki dostępne są za pomocą kluczy, które najczęściej przyjmują wartości numeryczne. Rozmiar tablicy jest albo ustalony z góry (tablice statyczne), albo może się zmieniać w trakcie wykonywania programu (tablice dynamiczne).

Jednak z uwagi na to, że kod pośredni jest interpretowany, taki program jest wolniejszy niż kompilowany do kodu maszynowego. Z tego względu maszynę wirtualną często uzupełnia się o kompilator JIT. Istnieją również niezależne od Suna kompilatory Javy – przykładem podprojekt GCC o nazwie GCJ. W rezultacie powstaje szybszy kod, ale można go uruchamiać na jednej tylko platformie, a więc nie jest przenośny.

Java Platform, Enterprise Edition (zwana również jako Java Enterprise, J2EE oraz Java EE czasami tłumaczona jako Java Korporacyjna) definiuje standard tworzenia aplikacji w języku programowania Java opartych o wielowarstwową architekturę komponentową. Komponenty są zwykle osadzane na serwerze aplikacyjnym obsługującym Java Enterprise. Standard ten określa zestaw interfejsów programistycznych jakich musi dostarczać zgodny serwer aplikacyjny.
Java SE (Java Platform, Standard Edition znane wcześniej jako J2SE) – specyfikacja opracowana przez firmę Sun Microsystems opisująca podstawową wersję platformy Java. Pozwala tworzyć i uruchamiać aplikacje napisane w języku Java na komputerach stacjonarnych i serwerach. Java SE zawiera klasy pozwalające tworzyć aplikacje WWW. Stanowi podstawę dla Java EE (Java Platform, Enterprise Edition).

Sieciowość i obsługa programowania rozproszonego

Dzięki wykorzystaniu reguł obiektowości, Java nie widzi różnicy między danymi płynącymi z pliku lokalnego a danymi z pliku dostępnego przez HTTP czy FTP.

Biblioteki Javy udostępniają wyspecjalizowane funkcje umożliwiające programowanie rozproszone – zarówno między aplikacjami Javy (RMI) jak i między aplikacją Javy a aplikacjami napisanymi w innych językach (CORBA, usługi sieciowe). Inne biblioteki udostępniają możliwość pisania aplikacji uruchamianych w przeglądarkach internetowych (aplety Javy) oraz aplikacji działających ciągle po stronie serwera (serwlety).

JavaFX Script - skryptowy język programowania przeznaczony do tworzenia Rich Internet Application uruchamianych na wirtualnej maszynie Javy. Wchodzi w skład rodziny JavaFX. JavaFX Script ma w założeniu stać sie konkurentem dla Adobe Flash i Flex, technologii AJAX oraz Microsoft Silverlight.
Adobe Flash (dawniej Macromedia Flash) – program komputerowy, technologia tworzenia animacji z wykorzystaniem grafiki wektorowej na zasadzie klatek kluczowych. Powstałe pliki .swf, zwane często "plikami Flash" można odtwarzać na stronie za pomocą przeglądarki internetowej z zainstalowaną odpowiednią wtyczką (np. Adobe Flash Player) lub w oddzielnym programie do tego przeznaczonym. Od wersji Flash 5, program wyposażony został w język programowania do obsługi zdarzeń (np. kliknięcie elementu myszą) – ActionScript. Dzięki temu we Flashu można tworzyć programy, interaktywne animacje i programy, np. popularne w sieci WWW gry Flash. Oprócz tego, pliki Flash są wykorzystywane do internetowych reklam i prezentacji. Istnieją również strony internetowe całkowicie oparte na plikach Flash.

Niezawodność i bezpieczeństwo

W zamierzeniu Java miała zastąpić C++ – obiektowego następcę języka C. Jej projektanci zaczęli od rozpoznania cech języka C++, które są przyczyną największej liczby błędów programistycznych, by stworzyć język prosty w użyciu, bezpieczny i niezawodny.

O ile po pięciu odsłonach Javy jej prostota jest dyskusyjna, o tyle język faktycznie robi dużo, by utrudnić programiście popełnienie błędu. Przede wszystkim Java ma system wyjątków czyli sytuacji, gdy kod programu natrafia na nieprzewidywane trudności, takie jak np.:

Domena internetowa – element adresu DNS wykorzystywanego do nazywania urządzeń w Internecie. Dla przykładu adres Wikipedii pl.wikipedia.org składa się z trzech nazw domenowych rozdzielonych kropkami.
Delphi – język programowania, którego można używać w środowiskach firmy Borland, Embarcadero, Microsoft (Delphi Prism), oraz w środowisku Lazarus. Narzędzia te są zintegrowanymi środowiskami programistycznymi typu RAD, działającymi zgodnie z zasadą dwustronnej edycji.
  • operacje na elemencie poza zadeklarowaną granicą tablicy lub elemencie pustym
  • czytanie z niedostępnego pliku lub nieprawidłowego adresu URL
  • podanie nieprawidłowych danych przez użytkownika
  • W innych językach programowania programista oczywiście może wprowadzić wewnętrzne testy sprawdzające poprawność danych, pozycję indeksu tablicy, inicjalizację zmiennych itd., ale jest to jego dobra wola i nie jest to jakoś szczególnie wspierane przez dany język. W Javie jest inaczej – obsługa wyjątków jest obowiązkowa, bez tego program się nie skompiluje. Przy tym obiekty wchodzące w skład pakietu standardowego Javy (i gros obiektów z pakietów pochodzących od poważnych programistów niezależnych) implementują wyjątki w każdym miejscu kodu, którego wykonanie jest niepewne ze względu na okoliczności zewnętrzne.

    Silna typizacja to system typów w języku programowania, w którym każde wyrażenie ma ustalony typ i nie można go używać w kontekście przeznaczonym dla innych typów.
    FTP (ang. File Transfer Protocol – Protokół Transferu Plików) – protokół typu klient-serwer, który umożliwia przesyłanie plików z serwera i na serwer poprzez sieć TCP/IP. Protokół ten jest zdefiniowany przez IETF w RFC 959.

    Sama obsługa wyjątków polega na napisaniu kodu, który wykona się w odpowiedzi na taką sytuację nadzwyczajną. Może to być np. podstawienie wartości domyślnej przy natrafieniu na nieprawidłową wartość parametru, zaniechanie danej akcji i powrót do stanu stabilnego czy choćby zapisanie pracy przed wyjściem. W sytuacji wyjątkowej program przerywa normalne wykonanie i tworzy specjalny obiekt wyjątku odpowiedniej klasy, który "wyrzuca" z normalnego biegu programu. Następnie zdefiniowany przez użytkownika kod "łapie" ten obiekt wyjątku i podejmuje odpowiednie działanie. Działanie może być dwojakiego typu: wspomniane wyżej środki zaradcze lub odrzucenie takiego "śmierdzącego jaja" dalej, do bloku programu, który nakazał wykonanie wadliwej operacji. Takie podawanie sobie wyjątku może być wieloetapowe i jeśli skończy się w bloku głównym programu powoduje jego przerwanie i ogłoszenie błędu krytycznego.

    GNU Classpath to powstający od roku 1998 zestaw podstawowych bibliotek programistycznych służących programowaniu w języku Java. Celem jest stworzenie wolnej implementacji specyfikacji standardowej biblioteki klas dla tego języka w pełni kompatybilnej z sunowską własnościową implementacją. GNU Classpath stanowi część oprogramowania tworzonego przez FSF w ramach projektu GNU.
    Wikibooks zwane pierwotnie Wikimedia Free Textbook Project to jeden z projektów Fundacji Wikimedia, uruchomiony 10 lipca 2003 r. Jest to projekt siostrzany Wikipedii, który ma na celu poszerzanie i rozpowszechnianie darmowych, otwartych do edycji materiałów edukacyjnych, takich jak podręczniki szkolne, akademickie, poradniki, instrukcje obsługi oraz im podobne. Wikibooks są dostępne na zasadach Licencji Wolnej Dokumentacji GNU.

    Oprócz systemu wyjątków Java od wersji 1.4 ma dwa inne systemy wspomagające pisanie niezawodnych programów: logowanie i asercje. Pierwsze pozwalają na zapisanie w plikach dziennika przebiegu działania programu, z dodatkową możliwością filtrowania zawartości, określenia poziomu logowanych błędów itp. Drugie rozwiązanie pozwala na upewnienie się, że pewne założenia co do określonych wyrażeń (np. że liczba, z której wyciągamy pierwiastek jest nieujemna) są prawdziwe. Asercje są o tyle ciekawe, że działają tylko z odpowiednią opcją wykonania programu, dzięki czemu programista może sprawdzić działanie programu, a później bez wysiłku spowodować pominięcie testowej części kodu po prostu przez ominięcie tej opcji.

    Apache Ant to narzędzie służące do zautomatyzowania procesu budowy oprogramowania. Podobne do programu Make ale napisane w języku Java do wykorzystania przede wszystkim z programami napisanymi w tym języku.
    Polimorfizm (z gr. wielopostaciowość) - mechanizmy pozwalające programiście używać wartości, zmiennych i podprogramów na kilka różnych sposobów. Inaczej mówiąc jest to możliwość wyabstrahowania wyrażeń od konkretnych typów.

    Krytyka i kontrowersje

    Język Java pomimo swoich wielu zalet, ma wiele wad w tym takie, które wzbudzają liczne kontrowersje:

  • Najczęściej wymienianą wadą języka Java jest to, że programy pisane w Javie wykonują się wolniej niż programy pisane w językach natywnie kompilowanych (np. C++). Zarzut ten odnosi się szczególnie do starych wersji Javy, kiedy zaawansowane mechanizmy takie jak JIT albo współbieżny odśmiecacz nie były dostępne. Obecnie zdania są mocno podzielone. Można podać przykłady programów zarówno takich, które w Javie będą wykonywały się wolniej niż w C++, jak i takich, które będą wykonywały się szybciej.
  • Javie zarzuca się, że niezbyt dobrze nadaje się do zastosowań czasu rzeczywistego. Głównym problemem jest brak przewidywalności wydajności oraz nieoczekiwane przestoje powodowane działaniem odśmiecacza. W nowych wersjach Javy ten drugi problem został radykalnie ograniczony, jednak nadal do zastosowań czasu rzeczywistego lepiej stosować języki natywnie kompilowane.
  • Często Javie zarzucane jest to, że ma mniejszą funkcjonalność niż np. C++, co ogranicza programistę. Jako przykład przywołuje się czasami fakt, że aby uruchomić niewielki program trzeba napisać dłuższy kod programu. Niektórzy jednak zwracają uwagę, że również język C++ nie ma wielu elementów, które można znaleźć w Javie jak np. klasy anonimowe, odśmiecacz pamięci, system pakietów, dynamiczne ładowanie klas czy reflection API.
  • Java wymusza konwersję typów prostych (np. int) na odpowiadający typ referencyjny (np. java.lang.Integer) przy pracy z kolekcjami, co może mieć negatywny wpływ na wydajność w specyficznych sytuacjach i zmniejsza czytelność programu. Typy generyczne, wprowadzone w wersji 5 oraz tzw. autoboxing, czyli automatyczna konwersja pomiędzy typami prostymi i ich obiektowymi odpowiednikami usunęły problem czytelności. Programista może już także wybrać, jakim algorytmem zostanie zaimplementowana dana kolekcja (np. lista może być zaimplementowana jako tablica o zmiennym rozmiarze, drzewo, albo lista jednokierunkowa), co pozwala na poprawienie wydajności.
  • JavaScript (JS) – obiektowy skryptowy język programowania, stworzony przez firmę Netscape, najczęściej stosowany na stronach internetowych. Pod koniec lat 90. XX wieku organizacja ECMA wydała na podstawie JavaScriptu standard języka skryptowego o nazwie ECMAScript. Głównym autorem JavaScriptu jest Brendan Eich.
    NetBeans – projekt otwartego oprogramowania mający za zadanie dostarczanie jak najlepszych narzędzi programowania. Dwa najważniejsze produkty to NetBeans IDE oraz NetBeans Platform.


    czytaj dalej: [2], [3]




    Czy wiesz że...? beta

    Interfejs klasy — w obiektowych językach programowania interfejs jest abstrakcyjną reprezentacją klasy pozwalającą na korzystanie z niej niezależnie od faktycznej implementacji. Interfejs pozwala na enkapsulację wielu różnych obiektów utworzonych w oparciu o odmienne klasy, które zawierają implementację wspólnego interfejsu. W języku C++ interfejs może być zdefiniowany jako klasa abstrakcyjna. W Javie, C#, Object Pascalu oraz PHP stosuje się w tym celu specjalną deklarację ze słowem interface.
    System operacyjny (ang. skrót OS Operating System) – oprogramowanie zarządzające sprzętem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.
    Oracle Corporation (NASDAQ: ORCL) - amerykańska firma zajmująca się tworzeniem oprogramowania do szeroko rozumianej obsługi przedsiębiorstw a w szczególności systemów zarządzania bazą danych (zobacz: baza danych Oracle). Oracle jest trzecim pod względem przychodów sprzedawcą oprogramowania na świecie po firmach Microsoft i IBM.
    Programowanie obiektowe (ang. object-oriented programming) — paradygmat programowania, w którym programy definiuje się za pomocą obiektów — elementów łączących stan (czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań.
    Wikimedia Commons – jeden z siostrzanych projektów Fundacji Wikimedia utworzony jako magazyn ilustracji, zdjęć i plików multimedialnych dla wszystkich wersji językowych Wikipedii i projektów Fundacji Wikimedia.
    Unicode (zwany czasem po polsku Unikod) – komputerowy zestaw znaków mający w zamierzeniu obejmować wszystkie pisma używane na świecie. Definiują go dwa standardy – Unicode oraz ISO 10646. Znaki obu standardów są identyczne. Standardy te różnią się w drobnych kwestiach, m.in. Unicode określa sposób składu.
    Procesor (ang. processor), także CPU (ang. Central Processing Unit) – urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je i wykonuje jako rozkazy. Wykonuje on ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora.
    Powyższa treść oraz zamieszczone w niej powiązane definicje/pojęcia - udostępniane są na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach, z możliwością obowiązywania dodatkowych ograniczeń. Zobacz szczegółowe informacje o warunkach korzystania

    Wszystkie hasła znajdujące się w naszym mirrorze Wikipedii mają znaczenie informacyjne i edukacyjne.
    Nie mogą być traktowane jako porady.