> For the complete documentation index, see [llms.txt](https://programmingfundamental.gitbook.io/programmingwithjava/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://programmingfundamental.gitbook.io/programmingwithjava/obektno-orientirano-programirane-1-chast/laboratorno-uprazhnenie-1/osnovi-na-programiraneto-s-java-za-nachinaeshi/osnovni-kharakteristiki-na-java.md).

# Основни характеристики на 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 позволява писане на прорами на които две или повече части едновременно да се изпълняват, за максимално използване на процесора.‎
