Java

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Java
Javafx logo color.png
Лого на Java езика с FX допълнение е лого на JavaFX платформа за създаване на интернет приложения
Парадигма мулти-парадигмален, обектно-ориентиран, структуриран, императивен, използващ обобщено програмиране, рефлексивен език
Реализиране през 1995
Автор Джеймс Гостлинг и
Sun Microsystems
Софтуерен разработчик Oracle Corporation
Стабилна реализация Java Standard Edition 7 Update 11 (1.7.11) 13 януари 2013;
преди 22 месеца
 (2013-01-13)
Типизация на данните строга, статична
Имплементация OpenJDK и много други
Програмни диалекти Generic Java, Pizza
Повлиян от Objective-C, C++, Smalltalk
Повлиява C#
Уебсайт За дивелопъри

Java или Джава е обектно-ориентиран език за програмиране. Кодът, написан на Java не се компилира до машинен код за определен процесор, а до специфичен за езика код, наречен байт код. Поради това за изпълнението на програма, написана на Java е необходима т. нар. Виртуална машина (на английски: Java Virtual Machine).

Подобна реализация има своите предимства и недостатъци. Сред главните предимства са:

  • лесната поносимост между различните платформи (софтуерни или хардуерни) - веднъж написана и компилирана, една Java-програма може да бъде стартирана на компютри независимо от архитектурата или от операционната им система. За целта е необходимо само да се инсталира виртуална машина за съответната платформа;
  • допълнителните действия, извършвани от виртуалната машина като освобождаване на паметта от обекти(класове) които не се използват(Garbage collector), проверка за размерността на масивите;
  • възможността за контрол на правата на потребителя на ниво виртуална машина
  • първоначално заделяна на heap, част от паметта резервирана за джава
  • висока степен на сигурност поради факта, че програмистите не работят директно с паметта и др.

Главен недостатък е необходимостта от допълнителни ресурси (под формата на процесорно време и памет) за изпълнението на самата виртуална машина.

Съществуват и компилатори, които превеждат байт кода до машинен код. Недостатъка при използването им е, че тогава програмата не може да се стартира на различни платформи.

Ранните версии на виртуалните машини страдат от слаба производителност поради необходимостта от компилиране на байт кода до машинен код. Този проблем е решен в значителна степен след въвеждането на JIT компилатора във виртуалната машина.

Факти за езика[редактиране | edit source]

Java е обектно-ориентиран и основна концепция са класовете, които се дефинират чрез свойствата (атрибутите) и поведението (методите) на обектите. Няма глобални променливи и функции - всичко се дефинира в класове. Липсва и множественото наследяване от C++ в някаква степен заместени от интерфейсите. Пример за противното е C++.

Java е език от високо ниво, който прилича на C# и C++ и донякъде на езици като Delphi, VB.NET и C. Синтаксисът на Java е сходен до този на C++ и C# и преминаването от тези езици към Java е лесно. Java програмите са обектно-ориентирани. Те представляват съвкупност от дефиниции на класове, които съдържат в себе си методи, а в методите е разположена програмната логика.

На Java се разработва изключително разнообразен софтуер: офис приложения, уеб приложения, настолни приложения, приложения за мобилни телефони, игри и много други.

В днешно време Java е един от най-популярните езици за програмиране. На него пишат милиони разработчици по цял свят. Най-големите световни софтуерни корпорации като IBM, Oracle, Google и SAP базират своите решения на Java платформата и използват Java като основен език за разработка на своите продукти. Сред "големите" Java не се ползва единствено от Microsoft, тъй като те разработват и поддържат собствена платформа, подобна на Java платформата, наречена .NET Framework и език подобен на Java, наречен C#.

Езикът Java е първоначално разработен и поддържан от Sun Microsystems, но през 2006 г. Java платформата става проект с отворен код и в момента се поддържа и развива от световната Java общност съвместно със Sun. Благодарение на отворения код популярността на Java постоянно се увеличава и броят Java разработчици непрекъснато расте.

Езикът Java се разпространява заедно със специална среда, върху която се изпълнява, наречена Java Runtime Environment (JRE). Тази среда включва т. нар. Java виртуална машина (JVM) и пакет стандартни библиотеки, предоставящи базова функционалност. Благодарение на нея Java програмите са преносими и след като веднъж бъдат написани, след това почти без промени могат да работят на стотици хардуерни платформи и операционни системи.

Версии на Java[редактиране | edit source]

Java се разработва в няколко направления:

  • Java Standard Edition - базовата версия която се използва за разработка на клиентски приложения и т.нар. Java аплети.
  • Java Enterprise Edition - базирана е върху Standard Edition, използва се най-често при сървърните приложения в интернет под формата на т.нар. Java сървлети и Java Server Pages (JSP), но освен това включва и голям брой други софтуерни технологии.
  • Java Micro Edition - самостоятелна олекотена версия за работа на устройства с ограничена изчислителна мощност като мобилни телефони, смартфони, PDA устройства и други.

Към настоящият момент са известни следните версии на езика:

  • 1.0
  • 1.1
  • 1.2 с пазарно наименование Java 2, с което наименование се разпространяват и следващите версии. Тази версия включва значителни промени в API включени към езика
  • 1.3
  • 1.4
  • 1.5 с пазарно наименование Java 5. Тази версия включва значителни промени както в API, така и в синтаксиса на езика.
  • 1.6 с пазарно наименование Java 6. Тази версия на езика включва допълнения към API и по-бърза виртуална машина.
  • 1.7 с пазарно наименование Java 7. Тази версия на езика изключва неодобрените методи от предните версии.

Исторически факти[редактиране | edit source]

Първоначалната версия на езика, наричана още Oak, е разработвана в продължение на 18 месеца — от пролетта на 1991 до лятото на 1992 — от Патрик Нотън (Patrick Naughton), Майк Шеридан (Mike Sheridan) и Джеймс Гослинг (James Gosling), както и от още десет разработчика. Поръчката е била на компютърния производител Sun Microsystems. Проектът е носил името „The Green Project“ (Зеленият проект). Един от основните разработчици е Джеймс Гослинг, който се смята и за един от бащите на езика. Истинския пробив започва с версиите 1.3 и 1.4 през 1998. Днес Java е много широко разпространена в сървърните приложения.


Документация[редактиране | edit source]

Javadoc е сложна документална система, създадена от Sun Microsystems, използвана е от много Java разработчици. Тя доставя на разработчиците организирана система за документирането на техния код. За разлика от нормалните коментари в Java и C се поставят с /* и */, за няколко редове коментар, Javadoc коментарите има допълнителна звездичка в началото така ,че таговете са /** и */.

Примери[редактиране | edit source]

Следното е пример за java код коментиран с Javadoc-стил коментари:

/**
 * Програма ,която прави полезни работи.
 */
public class Program {
 
  /**
   * Главен метод.
   * @param args аргументите
   */
  public static void main(String[] args) {
    //do stuff
  }
}

Синтаксис[редактиране | edit source]

Примерът "Здравей, свят!"[редактиране | edit source]

В този пример на конзолен екран се извежда текстът „Здравей, свят!“:

 public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Здравей, свят!");
    }
 }

Основни типове данни[редактиране | edit source]

Тип Описание Брой битове Стойности
boolean Логическа стойност 1 true, false
byte Цяло число 8 -128 до 127
char Цяло (не отрицателно) число или знак 16 0 до 65535 или \u0000 до \uffff
short Цяло число 16 - 32768 до 32767
int Цяло число 32 - 2147483648 до 2147483647
long Цяло число 64 - 9223372036854775808 до

9223372036854775807

float Дробно число 32 ± 1,40239846x10−45 до

±3,40282347x10+38

double Дробно число 64 ±4,940656sadad45841246544x 10−324 до

±1,79769313486231570x10+308

На ниво виртуална машина типовете float и double са представени според нормата IEEE 754.

Ключови думи[редактиране | edit source]

Следните думи не могат да се използват в имената на функции или променливи:

abstract   do         if         package    synchronized
boolean    double     implements private    this
break      else       import     protected  throw
byte       extends    instanceof public     throws
case       false      int        return     transient
catch      final      interface  short      true
char       finally    long       static     try
class      float      native     strictfp   void
const      for        new        super      volatile
continue   goto       null       switch     while
default

Коментари[редактиране | edit source]

// ... - коментари до края на реда
/* ... */ - Блок-коментар
/** ... */ - Java-Doc коментар

Външни препратки[редактиране | edit source]