Основні засади мови Java
Завантажити презентаціюПрезентація по слайдам:
Історія Java: початок Розроблялася під егідою корпорації Sun з 1991 р. З самого початку - як мова для програмування побутових пристроїв, наприклад, для дистанційного керування телевізорами. Основні вимоги - компактність та незалежність від платформи. Перша назва - Oak. Співпадіння з назвою іншої мови, тому перейменована на Java. Перші прототипи не мали особливого комерційного успіху.
Історія Java: перші успіхи Тим часом - стрімкий розвиток Інтернету. Стало ясно, що за своїми основними рисами Java прекрасно підходить для Інтернет-застосувань. 1995 р. - демонстрація технології на виставці Sun World. В першу чергу - аплети. Великий успіх. 1996 р. - перша версія набору інструментальних засобів для створення Java-застосувань. Т.зв. JDK (Java Development Kit) 1.0. Ряд слабких місць; значні виправлення в 1.1 і особливо в 1.2. Введення-виведення, обробка подій в графічних застосуваннях, система безпеки і т.п.
Історія Java: Java 2 і далі 1998 р. - версія 1.2; ключовий момент. Починаючи з цього моменту - Java 2 Platform. Нова назва пакету - Java 2 SDK (Software Development Kit). Поняття deprecated-методу. Важлива віха – Java 5. Суттєві зміни в самій мові. Найновіша версія - 6. Широко використовується 1.4. Нова назва пакету – Sun JDK. Основні конкуренти Java.
Основні платформи (технології) Java Standart Edition (SE) - базовий пакет; Java Enterprise Edition (EE) - для корпоративних клієнт-серверних застосувань; Java Micro Edition (ME) - для портативних пристроїв; зокрема, для мобільних телефонів.
Java - об’єктно-орієнтована мова Одна з найважливіших характеристик мови. Часто кажуть - “повністю об’єктно-орієнтована”. Програмний код завжди повинен бути інкапсульований у класи. Зокрема, це означає, що не може бути функцій поза класами. Таким чином, будь-яка програма, навіть найпростіша, повинна бути оформлена як клас (один або декілька).
Приклад найпростішого застосування /* The simplest program*/ public class message { static String Out="You should not trouble so simple program"; public static void main(String args[]) throws Exception {System.out.println(Out); int Ch=System.in.read(); } }
Java-застосування: продовження Метод main. Запитання: чи можна написати застосування, яке нормально працює, але не використовує методу main?
Аплети Програмні модулі, написані мовою Java, які виконуються в середовищі веб-браузера. Точніше - програмні модулі, які підключаються до веб-сторінки. При зверненні до сторінки вони завантажуються разом з нею і виконуються в середовищі броузера (тобто на стороні клієнта).
Платформна незалежність Основна ідея - модулі, написані мовою Java, повинні працювати на будь-якій машині з будь-якою архітектурою та під управлінням будь-якої операційної системи. На рівні відкомпільованих програмних модулів. Девіз Sun: “Write Once - Run Anywhere” (напиши один раз - запускай де завгодно).
Незалежність від платформи - механізм реалізації Java-програма орієнтована на виконання на деякій гіпотетичній Java-машині (з певною архітектурою, набором команд і т.п). Віртуальна машина - сукупність засобів, які емулюють роботу Java-машини та забезпечують виконання відкомпільованих Java-класів. В реалізації від Sun - HotSpot. Початковий код Java-програми компілюється не в машинно-залежний код, а в проміжний код - байт-код. Т.ч., байт-код - це послідовність відкомпільованих команд Java-машини.
Байт-код - продовження. Далі, байт-код інтерпретується віртуальною машиною, яка забезпечує його виконання. Стандартний інтерпретатор - java. Технічно, байт-код зберігається в файлі з розширенням .class. В броузері - своя віртуальна машина.
Виконання програм: загальна схема виконання Початковий код Байт-код (.class) Компіляція Інтерпретація JIT-компіляція
Поняття про JIT-компіляцію Just-In-Time-компіляція; інша назва - синхронна компіляція. Байт-код транслюється в машинний код, який зберігається в пам’яті, а потім викликається при необхідності. Для фрагментів коду, які часто повторюються (наприклад, в циклі). Можна досягти прискорення до 20-ти разів. Про створення exe-файлу мова не йде. Стандартний інтерпретатор по суті працює в режимі JIT-компіляції.
Поняття про JRE Java Runtime Environment -середовище, яке забезпечує виконання Java-програм. Інсталюється разом з SDK, але може встановлюватися і окремо.
JRE: основні функції завантаження класів; управління пам’яттю; збирання “сміття”; бібліотека класів, які входять до поставки Java.
Завантажувачі класів Як мінімум - три завантажувачі: первинний, який завантажує системні класи (як правило, з файлу rt.jar); розширений - з каталогу jre/lib/ext; системний - шукає класи в каталогах та jar-архівах, які вказані у змінній оточення CLASSPATH. При бажанні можна створити свій завантажувач.
Проблема безпеки Проблема, яка стосується як випадкових помилок, так і злонамірного коду. Будь-який код, який завантажується по мережі, вважається ненадійним.
Основні механізми безпеки рівень самої мови: виключені потенційно небезпечні можливості (перш за все - арифметика покажчиків); жорсткий контроль за виходом за межі масиву і т.п; верифікація, яка здійснюється при завантаженні класів (навіщо?); менеджер безпеки (Security Manager), який контролює потенційно небезпечні дії; використання цифрових підписів.
Основні моделі безпеки Як базова - модель в 1.0. За замовченням - застосування можуть здійснювати будь-які дії; аплети обмежені правилами “пісочниці” (sandbox).
Основні правила “пісочниці” аплет не може звертатися до локальної файлової системи; читати і записувати файли і т.п; аплет не може створювати мережних з’єднань, за винятком того сервера, з якого він був завантажений (“аплет може дзвонити тільки додому”); аплет не може запускати модулі в машинному коді; аплету не дозволяється отримувати інформацію про системні властивості (крім деяких; прохання встановити самостійно - яких саме); …
Зміни в моделі безпеки 1.1 - “надійні”, підписані аплети можуть отримувати ті ж права, що й застосування; 1.2 і далі - самі права стають вибірковими.
Менеджер безпеки: основний принцип Коли клас звертається до методу, який виконує певні операції, цей метод викликає один з методів об’єкту SecurityManager. Якщо нормально - виконання продовжується. Якщо ні - виникає виключення SecurityException.
Основні інструментальні засоби Основний пакет - SDK (Software Development Kit) від Sun. Основні програми SDK: javac - компілятор; java - інтерпретатор; jar - програма створення архівів; javadoc - автоматичне створення документації; appletviewer - програма для перегляду аплетів.
Приклад тестового запитання Дана програма, записана в файлі kl.java: public class kl { …} class OtherClass{…} Скільки файлів .class буде створено в результаті операції javac kl.java: а) один, в якому обидва класи, що входять до початкового коду, будуть об’єднані; б) два - за кількістю класів у файлі з початковим кодом; в) три - за кількістю класів плюс один, який встановлює зв’язок між цими класами; в) компілятор видасть повідомлення про синтаксичну помилку, оскільки в файлі не може бути більше за один клас; г) жодного, оскільки утиліта javac - це інтерпретатор байт-коду, а не компілятор.
Java: основні риси мови простота; об’єктна орієнтованість; розподіленість; незалежність від платформи; незалежність від архітектури; надійність; безпека; інтерпретованість; висока продуктивність; багатопоточність; динамічність.
Схожі презентації
Категорії