Основни характеристики на JAVA

Java е платформено независим език

Компилаторът (javac) преобразува изходния код (.java файл) в bytecode (.class файл). JVM изпълнява байтекода, произведен от компилатора. Този байт код може да работи на всяка платформа като Windows, Linux, Mac OS и т.н. Което означава програма, която е съставена на Windows може да работи на Linux и обратно. Всяка операционна система има различни JVM, обаче изходът, който произвеждат след изпълнение на bytecode, е еднакъв във всички операционни системи.

Java е обект ориентиран език

Обектно-ориентирано програмиране е начин за организиране на програми под формата на обекти, всеки от които представлява екземпляр на клас.

В Java са реализирни, основните прнципи на обектно ориентирано програмиране:

  1. Абстракция
  2. Капсулиране
  3. Наследяване
  4. Полиморфизъм

Java не включва сложни функции като overloading на оператори, множествено наследяване,, указатели и изрично разпределение на памет. Това прави java лесен за използване.

Езикът е разработен по начин, който поставя много акцент върху ранната проверка за възможни грешки, затова компилаторът на Java е в състояние да открие грешки, които не се откриват лесно на други програмни езици. Основните характеристики на java, който го правят надежден са управлението на паметта иобработката на грешки.

Използвайки език за програмиране на Java можем да създадем разпределени приложения. Програмите на java могат да се разпространяват на повече от една системи, които са свързани помежду си с помощта на интернет връзка. Обектите на един JVM могат да изпълняват процедури на отдалечен JVM.

Java позволява писане на прорами на които две или повече части едновременно да се изпълняват, за максимално използване на процесора.

Oбщи термини в Java

Преди да се пристъпи към изучаването на Java, е необходимо да бъдат изяснени понятието Java bytecode и разликите между JVM, JRE и JDK.

Java bytecode

Java bytecode е набор от инструкции за виртуалната машина на Java. Може да се дефинира като междинен код, генериран от компилатора след компилирането на изходния код (JAVA програма). При изпълнение на JAVA програма:

  1. компилаторът преобразува изходния Java код в bytecode (машинен код под формата на .class файл) и
  2. интерпретаторът изпълнява bytecode в системата. Интерпретаторът може също да се нарече JVM (Java Virtual Machine).

Bytecode е общата част между компилатора (който го създава) и интерпретатора (който го изпълнява). С негова помощ постигаме платформена независимост в Java, тъй като bytecode може да се изпълнява във всяка платформа, в която има инсталация на Java.

Java Virtual Machine (JVM)

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

JVM изпълнява следните основни задачи:

  • Зарежда кода
  • Потвърждава кода
  • Изпълнява кода
  • Осигурява среда за изпълнение

За всяка операционна система са предвидени различни JVM, но изходът, който произвеждат след изпълнение на bytecode, е еднакъв за всяка една от тях. Ето защо Java e платформено независим език.

Java Runtime Environment (JRE)

JRE е набор от софтуерни инструменти, които се използват за разработване на Java приложения. Използва се за осигуряване на среда за изпълнение, като имплементира JVM. Физически съществува. Той съдържа набор от библиотеки + други файлове, които JVM използва по време на изпълнение.

JRE е част от JDK, но може да съществува и самостоятелно. Когато имате JRE инсталиран на вашата система, можете да стартирате Java програма, обаче няма да компилирате такава. Когато е необходимо единствено да стартирате Java програма на компютъра си, JRE е напълно достатъчна.

Java Development Kit (JDK)

Както подсказва името, JDK е пълен комплект за разработка на Java програми, който включва JRE (Java Runtime Environment), компилатори (javac) и различни инструменти като JavaDoc, Java дебъгер и т.н. Създаването, компилирането и стартирането на Java програми изисква инсталиран JDK.

Javac е основният компилатор за Java, включен в Java Development Kit. Той приема Java програма като вход и генерира Java bytecode като изход.\