МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Платформа JavaВступ План Тема 1 Поняття платформи Java. Поняття JDK. Встановлення JDK 1 Вступ 2 Платформа Java Java широко відома як новітня об'єктно-орієнтована мова, легка у вивченні й це дозволяє створювати програми, які можуть виконуватися на будь-якій платформі без яких- небудь доопрацювань (кросплатформеність). Ще з Java чомусь завжди пов'язана тема кави (зображення логотипів, назви продуктів і т.д.). Програмісти можуть додати до цього опису, що мова схожа на спрощений З або З + + з додаванням garbage collector'а - автоматичного збирача "сміття" (механізм звільнення пам'яті, яка більше не використовується програмою). Також відомо, що Java орієнтована на Internet, і найпоширеніше її застосування - невеликі програми, аплети, які запускаються в браузері і є частиною HTML-Сторінок.Якщо пошукати в Internet історію створення Java, з'ясовується, що спочатку мова називалася Oa ("дуб"), а робота з його створення почалася ще в 1990 році з досить скандальної історії всередині корпорації Sun. Ці факти вірні, однак насправді всі було ще цікавіше. Критики, у свою чергу, стверджують, що мова зовсім не така проста в застосуванні, багато чудових властивостей лише заявлені, а насправді не дуже-те працюють, а головні - програми на Java виконуються надзвичайно повільно. Отже, це просто якась модна технологія, яка тільки на годину приверне до собі увагу, а потім зникне, як і багато інших. Однак деякі факти не дозволяють погодитися з такою оцінкою. По-перше, з години офіційного оголошення Java пройшло досить багато години для "просто модної технології". По-другу, конференція розробників Java One, яка вперше була організована в 1996 році, вже через рік зібрала понад 10000 учасників і стала найбільшою конференцією зі створення програмного забезпечення у світі (кожен наступний рік число учасників зростала приблизно на 5000). Спеціальна програма Sun, що об'єднує розробників Java по всьому світу, Java Developer Connection, також була запущена в 1996 році, через рік вона нараховувала понад 100.000 розробників, а в 2000 році - більше 1,5 мільйонів. На сьогодні число програмістів на Java оцінюється в 3 мільйони. Було випущено п'ять основних версій мови, починаючи з 1.0 в 1995 році й закінчуючи 1.4 у лютому 2002 долі. Наступна версія 1.5 випущена в 2004 році. Всі версії та документацію завжди можна було безкоштовно отримати на офіційному web-сайті Java http://java.sun.com/. Один з перших продуктів для Java - JDK 1.1 (засіб розробки на Java) - протягом перших трьох тижнів після оголошення був завантажений більш 220.000 разів. Версія 1.4 була завантажена більше 2 мільйонів разів за перші 5 місяців. Практично всі провідні виробники програмного забезпечення ліцензували технологію Java і регулярно повідомляють про вихід побудованих на ній продуктів. Це й "блакитний гігант" IBM, і творець платформи Macintosh фірма Apple, і лідер в області реляційних БД Oracle, і навіть головний конкурент фірми Sun - корпорація Microsoft - ліцензувала Java ще в березні 1996 долі. Отже, Java має довгу й непросту історію розвитку, однак прийшов час розглянути, що ж вийшло у творців, якими властивостями володіє дана технологія. Саме широко відоме, і в теж час зухвалі самі бурхливі суперечки, властивість - багато- або кроссплатформеність. Уже говорилося, що воно досягається за рахунок використання віртуальної машини JVM, що є звичайною програмою, що виконується операційною системою й що надає Java-додаткам всі необхідні можливості. Оскільки всі параметри JVM специфіковані, то залишається єдина задача - реалізувати віртуальні машини на всіх існуючих і використовуваних платформах.Наявність віртуальної машини визначає багато властивостей Java. Вихідний код будь-якої програми мовою Java представляється звичайними текстовими файлами, які можуть бути створені в будь-якому текстовому редакторі або спеціалізованому засобі розробки й мають розширення .java. Ці файли подаються на вхід Java-компілятора, що транслює їх у спеціальний Java байт-код. Саме цей компактний і ефективний набір інструкцій підтримується JVM і є невід'ємною частиною платформи Java. Результат роботи компілятора зберігається в бінарних файлах з розширенням .class. Java-додаток, що складається з таких файлів, подається на вхід віртуальній машині, що починає їх виконувати, або інтерпретувати, тому що сама є програмою. Наступної по важливості властивістю є об'єктна орієнтованість Java, що завжди згадується у всіх статтях і прес-релізах. Важливо підкреслити, що в Java практично все реалізовано у вигляді об'єктів - потоки виконання (threads) і потоки даних (streams), робота з мережею, робота із зображеннями, з користувальницьким інтерфейсом, обробка помилок і т.д. Зрештою, будь-який додаток на Java - це набір класів, що описують нові типи об'єктів. Основні особливості: Насамперед, творці відмовилися від множинного спадкування. Було вирішено, що воно занадто ускладнює й заплутує програми. У мові використовується альтернативний підхід - спеціальний тип "інтерфейс". Далі, в Java застосовується стругаючи типізація. Це означає, що будь-яка змінна й будь-яке вираження має тип, відомий уже на момент компіляції. Такий підхід застосований для спрощення виявлення проблем, адже компілятор відразу повідомляє про помилки й указує їхнє розташування в коді. Пошук же виняткових ситуацій під час виконання програми зажадає складного тестування, при цьому причина дефекту може виявитися зовсім в іншому класі. Таким чином, потрібно прикладати додаткові зусилля при написанні коду, зате істотно підвищується його надійність (а це одна з основних цілей, для яких і створювалася нова мова). В Java існує всього 8 типів даних, які не є об'єктами. Вони були визначені з найпершої версії й ніколи не мінялися. Це п'ять цілочисельних типів: byte, short, int, long, а також до них відносять символьний char. Потім два дробових типи float і double і, нарешті, логічний тип boolean. Такі типи називаються прості , або примітивні (від англійського primitive), і вони докладно розглядаються в лекції, присвяченої типам даних. Всі інші типи - об'єктні або посилальні (англ. reference). Синтаксис Java чомусь багатьох увів в оману. Він дійсно створений на основі синтаксису мов C/C++, тому якщо подивитися на вихідний код програм, написаних на цих мовах і на Java , те не відразу вдається зрозуміти, яка з них на якій мові написана. Це чомусь дало багатьом привід думати, що Java - це спрощений C++ з додатковими можливостями, такими як garbage collector. Автоматичний збирач сміття (garbage collector) ми розглянемо трохи нижче, але вважати, що Java така ж мова, як і C++,- велика омана. Що ж стосується об'єктної моделі, то вона скоріше була побудована за зразком таких мов, як Smalltalk від IBM, або розроблений ще в 60-е роки в Норвезькому Обчислювальному Центрі мова Simula, на який посилається сам творець Java Джеймс Гослінг. Інша немаловажна властивість Java - легкість в освоєнні й розробці - також одержало неоднозначну оцінку. Дійсно, автори потрудилися позбавити програмістів від найпоширеніших помилок, які часом допускають навіть досвідчені розроблювачі на C/C++. І перше місце тут займає робота з пам'яттю. В Java із самого початку був введений механізм автоматичного збирання«сміття» (від англійського garbage collector). Припустимо, програма створює деякий об'єкт, працює з ним, а далі наступає момент, коли він більше вже не потрібний. Необхідно звільнити займану пам'ять, щоб не заважати операційній системі нормально функціонувати. У З/З++ це необхідно робити явно із програми. Очевидно, що при такому підході існує дві небезпеки - або видалити об'єкт, що ще комусь необхідний (і якщо до нього дійсно відбудеться обіг, то виникне помилка), або не видаляти об'єкт, що став непотрібним, а це означає витік пам'яті, тобто програма починає споживати все більшу кількість оперативної пам'яті. При розробці на Java програміст взагалі не думає про звільнення пам'яті. Віртуальна машина сама підраховує кількість посилань на кожний об'єкт, і якщо воно стає рівним нулю, те такий об'єкт позначається для обробки garbage collector. Таким чином, програміст повинен стежити лише за тим, щоб не залишалося посилань на непотрібні об'єкти. Збирач сміття - це фоновий потік виконання, що регулярно переглядає існуючі об'єкти й видаляє вже не потрібні. Із програми ніяк не можна вплинути на роботу garbage collector, можна тільки явно ініціювати його черговий прохід за допомогою стандартної функції. Ясно, що це істотно спрощує розробку програм, особливо для починаючих програмістів. Однак досвідчені розроблювачі були незадоволені тим, що вони не можуть повністю контролювати все, що відбувається з їхньою системою. Немає точної інформації, коли саме буде вилучений об'єкт, що став непотрібним, коли почне працювати (а виходить, і займати системні ресурси) потік збирача сміття й т.д. Але, при всій повазі до досвіду таких програмістів, необхідно відзначити, що більша кількість збоїв програм, написаних на С/С++, доводиться саме на некоректну роботу з пам'яттю, причому часом це трапляється навіть із широко розповсюдженими продуктами досить серйозних компаній. Крім того, особливий упор робився на легкість освоєння нової технології. Як уже було сказано, очікувалося, що Java повинна одержати максимально широке застосування, навіть у тих компаніях, де ніколи до цього не займалися програмуванням на такому рівні (побутова техніка типу тостерів і кавоварок, створення ігор і інших додатків для стільникових телефонів і т.д.). Був і цілий ряд інших міркувань. Продукти для звичайних користувачів, а не професійних програмістів, повинні бути особливо надійними. Internet став Всесвітньою Мережею, оскільки з'явилися непрофесійні користувачі, а можливість створювати аплети для них не менш приваблива. Їм був потрібний простий інструмент для створення надійних додатків. Крім введення garbage collector, були початі й інші кроки для полегшення розробки. Деякі з них уже згадувалися - відмова від множинного спадкування, спрощення синтаксису й ін. Можливість створення багатопоточних додатків була реалізована в першій же версії Java (дослідження показали, що це дуже зручно для користувачів, а існуючі стандарти опираються на телетайпні системи, які застаріли багато років тому). Інші особливості будуть розглянуті в наступних лекціях. Однак те, що створення й підтримка систем дійсно простіше на Java, чим на C/C++, давно є загальновизнаним фактом. Втім, все-таки ці мови створені для різних цілей, і кожний має свої незаперечні переваги. Наступна важлива властивість Java - безпека. Споконвічна націленість на розподілені додатки, і особливо рішення виконувати аплети на клієнтській машині, зробили питання захисту одним із самих пріоритетних. При роботі будь-якої віртуальної машини Java діє цілий комплекс мер. Далі приводиться лише короткий опис деяких з них. По-перше, це правила роботи з пам'яттю. Уже говорилося, що очищення пам'яті виробляється автоматично. Резервування її також визначається JVM, а не компілятором, або явно із програми, розроблювач може лише вказати, що він хоче створити ще один новий об'єкт. Покажчики по фізичних адресах відсутні принципово. По-друге, наявність віртуальної машини-інтерпретатора значно полегшує відсікання небезпечного коду на кожному етапі роботи. Спочатку байт-код завантажується в систему, як правило, у вигляді class-файлів. JVM ретельно перевіряє, чи всі вони підкоряються загальним правилам безпеки Java і чи не створені зловмисниками за допомогою якихось інших засобів (і чи не перекручені при передачі). Потім, під час виконання програми, інтерпретатор легко може перевірити кожну дію на допустимість. Можливості класів, які були завантажені з локального диска або по мережі, істотно розрізняються (користувач легко може призначати або скасовувати конкретні права). Наприклад, аплети за замовчуванням ніколи не одержать доступ до локальної файлової системи. Такі убудовані обмеження є у всіх стандартних бібліотеках Java. Нарешті, важлива відмінна риса Java - це його динамічність. Мова дуже вдало задумана, у його розвитку беруть участь сотні тисяч розроблювачів і багато великих компаній. Отже, підведемо підсумки. Java-Платформа має наступні переваги: - кроссплатформеність; - об'єктна орієнтованість, створена ефективна об'єктна модель; - звичний синтаксис С/С++; - убудована й прозора модель безпеки; - орієнтація на Internet-Задачі, мережні розподілені додатки; - динамічність, легкість розвитку й додавання нових можливостей; - простота освоєння.
Читайте також:
|
||||||||
|