Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].

Javato wysoka- poziom, niezależny od platformy, obiektowy, funkcjonalnyjęzyk programowania i środowisko wykonawcze.

Język Java wywodzi znaczną część swojej składni z C i C ++, ale jego model obiektowy jest prostszy niż ten drugi i ma mniej funkcji niskiego poziomu. Aplikacje Java są zwykle kompilowane do kodu bajtowego(nazywanego pliki klas), które mogą być wykonywane przez JVM (Java Virtual Machine), niezależnie od architektury komputera. JVM często dodatkowo kompiluje kod do natywnego kodu maszynowego w celu optymalizacji wydajności.

JVM zarządza pamięcią przy pomocy garbage collectora (zobacz garbage-collection) w celu obsługi usuwania obiektów z pamięci, gdy obiekty nie są już używane. dyscyplina pisaniaw Javie jest statyczna, silna, bezpieczna, nominatywna i manifestacyjna. Java obsługuje takie funkcje, jak refleksjai interfejs z C i C ++ przez JNI (Java Native Interface).

Java została zaprojektowana tak, aby mieć jak najmniej zależności implementacyjnych, co ma pozwolić programistom aplikacji pisać raz, uruchamiać w dowolnym miejscu, lub czasami napisz raz, uruchom wszędzie(kod, który jest wykonywany na jednej platformie, nie musi być ponownie kompilowany, aby mógł działać na innej ). Java została pierwotnie opracowana przez James Goslingw Sun Microsystems (która w pełni połączyła się z Oracle Corporation 27 stycznia 2010 r.) I została wydana w 1995 roku jako główny element platformy Java firmy Sun Microsystems. Java została zapoczątkowana jako projekt o nazwie „Oak” Jamesa Goslinga w czerwcu 1991 roku.

platforma Javato nazwa nadana przez firmę Sun (obecnie Oracle) systemom komputerowym, które mają zainstalowane narzędzia do tworzenia i uruchamiania Programy w języku Java. Platforma zawiera szeroką gamę narzędzi, które mogą pomóc programistom wydajnie pracować z językiem programowania Java.

Aby rozpocząć, pobierz zestaw Java Development Kit (JDK), który umożliwia zarówno tworzenie, jak i uruchamianie aplikacji Java.

Tło

Główna implementacja referencyjna Java jest open source (OpenJDK) i jest obsługiwana przez duże firmy, w tym Oracle, Apple, SAP i IBM.

Bardzo niewiele komputerów może bezpośrednio uruchamiać programy Java. Oprogramowanie Java często działa na serwerach. Aplikacje Java przeznaczone do bezpośredniego działania na komputerach klienckich powinny być dostarczane z własnymi instalatorami. (Uwaga: przed wersją java9 prosiłeś użytkowników końcowych o zainstalowanie tak zwanego środowiska JRE, jednak ta koncepcja została wycofana).

Java jest kompilowana do kodu bajtowego, który jest następnie kompilowany przez maszynę JVM do natywnego kodu maszynowego. Kompilacja jest wykonywana just-in-time(JIT). Początkowo było to postrzegane jako hit wydajnościowy, ale ulepszenia kompilacji JVM i JIT sprawiły, że nie stanowiło to większego problemu. W niektórych przypadkach maszyna JVM może być nawet szybsza niż kod natywny skompilowany pod kątem starszej wersji procesora ze względu na zgodność z poprzednimi wersjami. Od wersji Java 9 można ją kompilować z wyprzedzeniem(AOT).

Wersje

Wybitne wersje Java, nazwy kodowe (w nawiasach []) i daty wydania (w nawiasach) obejmują:

Java SE 15        [JSR 390]    (September 15, 2020)
Java SE 14        [JSR 389]    (March 17, 2020)
Java SE 13        [JSR 388]    (September 17, 2019)
Java SE 12        [JSR 386]    (March 19, 2019)
Java SE 11        [JSR 384]    (September 25, 2018)
Java SE 10        [JSR 383]    (March 20, 2018)
Java SE 9         [JSR 376]    (September 21, 2017)
Java SE 8 (1.8)   [JSR 337]    (March 18, 2014)
Java SE 7 (1.7)   [Dolphin]    (July 28, 2011)
Java SE 6 (1.6)   [Mustang]    (December 11, 2006)
J2SE 5.0 (1.5)    [Tiger]      (September 29, 2004)
J2SE 1.4          [Merlin]     (February 13, 2002)
J2SE 1.3          [Kestrel]    (May 8, 2000)
J2SE 1.2          [Playground] (December 4, 1998)
JDK 1.1                        (February 19, 1997)
JDK 1.0                        (January 23, 1996)
JDK Beta                       (1995)

Od Java SE 10 nowe wersje będą wydawane co sześć miesięcy.

Najnowsze stabilne wersje:

Java Standard Edition 15 (15.0.2) - (January 19, 2021)
Java Standard Edition 14 (14.0.2) - (July 14, 2020)
Java Standard Edition 13 (13.0.2) - (January 14, 2020)
Java Standard Edition 12 (12.0.2) - (July 16, 2019)
Java Standard Edition 11 (11.0.10) - (January 19, 2021)
Java Standard Edition 10 (10.0.2) - (July 17, 2018)
Java Standard Edition 9 (9.0.4) - (January 16, 2018)
Java Standard Edition 8 Update 281 (1.8.0_281) - (January 19, 2021)
Java Standard Edition 7 Update 80 (1.7.0_80) - (April 14, 2015)

Więcej nazw kodowych i dat wydania można znaleźć na stronie Nazwy kodowe Java SE. Aby zobaczyć informacje o wydaniu dla każdej wersji JDK, odwiedź artykuł w Wikipediidotyczący historii wersji oprogramowania Java.

Aby uzyskać pakiet Java JDK i móc tworzyć (lub uruchamiać) kod Java na swoim komputerze, potrzebujesz dostawcy pakietu instalatora Java. Java jest oprogramowaniem typu open source, ale dostawca zajmie się zbudowaniem kodu źródłowego Java w plik binarny, opakowaniem go w instalator i utrzymaniem tej wersji na komputerze (np. Z aktualizacjami zabezpieczeń).

Java jest dostępna w wersjach LTS (Long-Term-Support) i innych niż LTS. Każdy dostawca sam wybiera sposób postępowania z wersjami LTS. Niektóre (Oracle OpenJDK) mają to samo krótkie okno wsparcia dla wszystkich wersji, LTS lub nie. Niektórzy (Amazon Coretto) w ogóle nie zawracają sobie głowy wypuszczaniem wersji innych niż LTS. Większość dostawców wydaje wszystkie wersje, które będą obsługiwać wersje LTS znacznie dłużej.

Wersje LTS to: Java 8, 11 i 17.

Głównymi dostawcami są:

  • AdoptOpenJDK, znany również jako Adoptium - free, wersje LTS i wersje inne niż LTS, wersje LTS są obsługiwane przez długi czas. Zalecana.
  • Oracle OpenJDK 15- Zauważ, że są one obsługiwane tylko przez 6 miesięcy, nawet tak zwane wersje LTS (Long Term Support). Będziesz musiał zaktualizować jako aktualizacje Java.
  • Oracle JavaSE- licencjonowane dla tych, którzy chcą komercyjnego wsparcia. Wersje LTS i inne niż LTS, wersje LTS są obsługiwane przez długi czas. Dostępna jest bezpłatna, ale bardzo ograniczona pod względem licencji wersja testowa.
  • Amazon Coretto- bezpłatny, utrzymywany przez Amazon, zoptymalizowany tylko dla wersji AWS, LTS.
  • Wiele innych ofert handlowych.

Koniec publicznych aktualizacji(dawniej nazywany końcem życia, nazywany również EoPU) bezpłatną dystrybucją firmy Oracle są:

Java SE 15 -  March 2020 for OpenJDK
Java SE 14 -  September 2020 for OpenJDK
Java SE 13 -  March 2020 for OpenJDK
Java SE 12 -  September 2019 for OpenJDK
Java SE 11 -  At least September 2022 for AdoptOpenJDK
Java SE 10 -  September 2018
Java SE 9  -  March 2018
Java SE 8  -  January 2019 (commercial user) | December 2020 (personal user)
Java SE 7  -  Apr 2015
Java SE 6  -  Feb 2013
J2SE 5.0   -  Oct 2009
J2SE 1.4   -  Oct 2008

Pierwsza pomoc

Nie znasz języka Java lub potrzebujesz pomocy, aby uruchomić swój pierwszy program Java? Zapoznaj się z sekcją Samouczki Oracle Java na temat rozpoczynania pracy.

Przed zadaniem pytania wyszukaj, czy zostało zadane wcześniej (mamy wiele duplikatów, niektóre są wymienione poniżej w sekcji Często zadawane pytania) i przeczytaj Pisanie idealnego pytania, aby dowiedzieć się, jak skłonić Jona Skeeta do odpowiedzi na Twoje pytanie.

Konwencje nazewnictwa

Programy Java powinny być zgodne z następującymi konwencjami nazewnictwa, aby zwiększyć czytelność i zmniejszyć szanse na przypadkowe błędy. Przestrzegając tych konwencji nazewnictwa, ułatwisz innym zrozumienie Twojego kodu i pomożesz.

  • Nazwy typów (klasy, interfejsy, wyliczenia itp.) Powinny zaczynać się wielką literą i zaczynać się wielką literą każdego kolejnego słowa. Przykłady obejmują: String, ThreadLocal i NullPointerException. Jest to czasami nazywane PascalCase.
  • Nazwy metod i pól powinny mieć postać camelCased; to znaczy, powinny zaczynać się od małej litery i zaczynać od pierwszej litery każdego kolejnego słowa wielką literą. Przykłady: indexOf, printStackTrace, interrupt.
  • Nazwy wyrażeń stałych (static final niezmienne obiekty) powinny być zapisane w ALL_CAPS_SNAKE_CASE, z podkreśleniami oddzielającymi każde słowo. Przykłady: YELLOW, DO_NOTHING_ON_CLOSE. Dotyczy to również wartości klasy Enum. Jednak odwołania static final do niezmiennych obiektów powinny być typu camelCased.

Hello World - Twój pierwszy program

Kod typowego programu Hello World:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Kompilacja i wywołanie programu Hello World:

javac -d . HelloWorld.java
java -cp . HelloWorld

Kod źródłowy Java jest kompilowany do postaci pośredniej (instrukcje kodu bajtowego dla wirtualnej maszyny języka Java), którą można wykonać za pomocą {{ X0}} polecenie później.

Więcej informacji:

Przydatne środowiska IDE dla języka Java

Zasoby dla początkujących

Kompilatory online

Aktualizowane codziennie zasoby

Zaawansowane zasoby

Struktury, biblioteki i oprogramowanie Java

Książki i zasoby programowania Java

Często Zadawane Pytania

Ludzie często pytają o następujące tematy dotyczące języka Java:

Generał:

Ścieżka klasy:

String, StringBuilder i toString:

equals i hashCode:

Java Platform SE API:

Leki generyczne:

Klasy i obiekty:

Arytmetyka i konwersje:

Debugowanie:

Thread i wielowątkowość:

Interakcja z systemem operacyjnym:

(Redaktorzy, proszę podać tylko te pytania, które faktycznie są często zadawane).

Pokoje czatowe