Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Безпечність. 
Ефективність. 
Підтримка багатопоточності

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Від С++ Java успадкувала потужний механізм об'єктно-орієнтованого програмування. Оскільки Java розроблювався «на пустому місці», тобто не було потреби забезпечувати сумісність з попередніми версіями, розробники мали повну свободу мислення. В результаті був сформований ясний і прагматичний підхід до об'єктів. Вільно переймаючи ідеї, які реалізовувалися протягом останніх десятиріч, мові Java… Читати ще >

Безпечність. Ефективність. Підтримка багатопоточності (реферат, курсова, диплом, контрольна)

Ефективність коду, але запобігає типових помилок, коли програміст забуває звільнити виділену пам’ять, або, навпаки, звільняє пам’ять, яка ще використовується. Java підтримує об'єктно-орієнтовану обробку виключних ситуацій подібно до С++. Але на відміну від С++ в Java обробка виключних ситуацій є обов’язковою. Тобто неможливо скомпілювати програму, яка відкриває файл, не обробивши можливі помилки типу «файл не знайдено», World Wide Web висунула Java на передній край програмування, і Java, в свою чергу, сильно вплинула і навіть змінила обличчя Internet, розширивши спектр об'єктів, які можуть розповсюджуватись у «кібер» просторі. Програми нової форми — завантажуються з віддаленого сервера і можуть запускатися динамічно, тобто без участі користувача. До появи Java такий підхід був неприпустимий з міркувань безпеки. В архітектурі зроблено ряд штучних обмежень, які роблять їх цілком безпечними. Перш за все, Java є інтерпретованою мовою і простір ресурсів Java-програми обмежений так званою віртуальною Java-машиною (VJM), яка може контролювати поведінку програми і захищати систему від побічних ефектів, які можуть виникати з вини. Крім того, в мові Java є додаткові обмеження, які не дозволять аплету стати «троянським конем». Зокрема, Java-аплет не може отримати доступ до локального жорсткого диску. При такій спробі генерується виключна ситуація.

Оскільки аплети Java інтерпретуються, а не компілюються, то їх виконання на різних платформах значно полегшується. В цьому випадку достатньо створити для кожної платформи виконуючу Java-систему. Якщо існує така система для даної операційної системи, то будь-яка Java-програма може виконуватись в даному середовищі без додаткової компіляції на цій платформі. Проте Java не є інтерпретованою мовою в чистому розумінні. Програма на Java компілюється. Результатом роботи компілятора Java є байткод (bytecode). Байткод — це оптимізований набір команд, призначений для виконання уявним пристроєм — віртуальною Java-машиною. В такий спосіб витрати на інтерпретацію зводяться до мінімуму, оскільки байткод вже є оптимізованим, і досягається досить висока продуктивність Java-програм. Наведені вище особливості дають підставу розглядати Java не як ще одну мову програмування, а як окрему інформаційну технологію. Таким чином, інтерпретація — це найлегший шлях до перенесення програм, реалізований в Java технології. Незважаючи на те, що мова Java була розроблена в розрахунку на інтерпретацію, технічно немає нічого такого, що б перешкоджало компіляції байткоду в виконуваний код. До байткоду, який пересилається по мережі, застосовується динамічна компіляція, але це ніяк не впливає на безпеку, оскільки роботу програми все ще контролює виконуюча система. Такий підхід застосовано в багатьох виконуючих системах Java, що забезпечує продуктивність на рівні оптимізованого коду С++.

Мова Java є однією з наймолодших в сімействі мов програмування і була розроблена з розрахунку на те, щоб професійний програміст міг легко її опанувати та ефективно використовувати. За основу Java взятий синтаксис С++ - безсумнівно однієї з найбільш популярних мов програмування сучасності. Проте, Java — це цілком самостійна мова програмування, і при її створенні не йшлося про будь-яку сумісність з С++. Тому деякі механізми реалізовані в Java інакше, а деякі зовсім відсутні. Ідеологічно ж Java побудована дещо інакше ніж С++. Розробники Java ґрунтувалися на досвіді розробки програм на С++ і прагнули позбутися можливостей, які зарекомендували себе непевними. Так, в Java відсутня перегриз операторів, а також автоматичне приведення несумісних типів — конструкції, які при неуважному використанні є джерелом важких для виявлення помилок. Взагалі, інтерфейси Java більш прості та прозорі для розуміння. Написати на Java програму з графічним інтерфейсом значно легше. Звичайно, простота інтерфейсів компенсується меншою гнучкістю, бібліотека Java не така багата, як стандартні бібліотеки С/С++. Але згадаймо, що Java задуманий для використання на різних платформах і тому реалізує в собі найбільш стандартні можливості задля легшої адаптації під конкретне середовище.

Від С++ Java успадкувала потужний механізм об'єктно-орієнтованого програмування. Оскільки Java розроблювався «на пустому місці», тобто не було потреби забезпечувати сумісність з попередніми версіями, розробники мали повну свободу мислення. В результаті був сформований ясний і прагматичний підхід до об'єктів. Вільно переймаючи ідеї, які реалізовувалися протягом останніх десятиріч, мові Java вдалося знайти рівновагу між парадигмою «все є об'єктом» і прагматичним підходом. Об'єктна модель Java проста і легко розширюється, в той час як просі типи, як цілі, зберігаються як дані, що не є об'єктами, що дозволяє значно підвищити швидкість при їх обробці.

Середовище Web висуває надзвичайно високі вимоги до надійності програм. Як наслідок, при розробці Java перевага була відданий можливості створення стійких до помилок програм. Java звільняє програміста від хвилювань з приводу багатьох поширених причин, які викликають помилки програмування. Як вже згадувалося, Java є строго мовою програмування. Ще виконуюча система Java бере на себе «прибирання сміття», тобто автоматично звільняє пам’ять, яка була розподілена динамічно. Звичайно, це дещо знижує які виникають при цьому. Добре написана Java-програма може сама обробляти всі помилки часу виконання.

Показати весь текст
Заповнити форму поточною роботою