Академия за модерно програмиране

виртуалната машина
модерно

Java и OOP

Разлики и характеристики на Java

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

1.1 Независимост от платформата

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

  • Език за програмиране + компилатор
  • Java виртуална машина

Разликата между Java компилатора и компилаторите на такива езици като C/C ++, Pascal е, че резултатът от компилирането на програма е файл с така наречения байт код - междинен език, който не е набор от инструкции за специфичен процесор. За да се стартира програмата, файлът на байт кода се подава към входа на виртуалната машина, която преобразува инструкциите за байт кода в инструкции на процесора. По този начин, за да се осигури междуплатформена платформа, е достатъчно да се напише Java виртуална машина за всяка операционна система. В момента тази задача е изпълнена за всички често срещани операционни системи.

1.2 Липса на директна работа с памет

Според създателите на Java повечето програми не са стабилни поради факта, че разработчиците получават директен достъп до програмната памет (в C/C ++, Pascal, тази функция е реализирана с помощта на указатели). В Java този проблем беше решен по радикален начин, като се забрани на програмиста да има директен достъп до паметта. По този начин програмите, написани на Java, са по-здрави. Увеличаването на стабилността обаче е придружено от намаляване на производителността (например всеки път, когато има достъп до елемент от масив, машината Java проверява дали масивът е надвишен).

1.3 Събиране на боклука

Друг недостатък на традиционните езици за програмиране е, че при разработването на програми се отделя много време за ръчно изтриване на създадените обекти, които вече не трябва да се използват (пишете изтриване за всяко ново в C ++ или изхвърляне за всяко ново в Pascal ). Грешките на програмиста в тази част на програмата могат да доведат до изтичане на памет по време на изпълнение. За да се реши този проблем, във виртуалната машина Java е включен компонент, който следи всички създадени обекти и премахва тези, които вече не могат да се използват. Този компонент се нарича събирач на боклук (сметосъбирач), и неговият процес е събиране на боклук. По този начин програмистът вече няма нужда да следи всички създадени обекти. Освен това в Java няма ръчно изтриване на обекти.