Особливості мови програмування Java (лекція 1) презентация

Содержание


Презентации» Информатика» Особливості мови програмування Java (лекція 1)
Мова програмування Java та технології J2EE Лекція 1
 Особливості мови програмуванняСкорочення
 JDK = Java Development Kit
 JRE = Java Runtime Environment
Історія мови Java 
 Сучасні сфери застосування
 Розподілені інформаційні системи
 Desktop-застосування
Версії JavaSEСтандартизація 
 Розробка специфікацій Java здійснюється суспільством JCP (Java Community Process)Виробники JavaSE 
 Sun JDK (->Oracle JDK)
 IBM Java SDK
 OpenJDK	JRE	JavaSE 
 JDK – платформа для розробки
 JRE – платформа дляВідмінності від C++ 
 Ваші пропозиціїВідмінності від C++ 
 Чиста об’єктно-орієнтована мова
 Кореневий об’єкт «java.lang.Object»
 ВідсутніJAVA-ПРОГРАМАJava-програма
 Код програми пишеться на мові програмування Java у файлі *.java
Характеристики Java-програми
 Характеристики
 Незалежність від апаратного забезпечення
 Незалежність від операційних систем
Java virtual Machine (JVM)Старт JVM 
 JVM подається на вхід початковий клас
 Виконується методJVM (Java Virtual Machine)
 JVM – абстрактна обчислювальна машина
 Має власнийТипи JVM 
 Software JVM
 Sun JDK, IBM Java SDK, OpenСтруктура JVM
 JVM – це абстрактна стекова обчислювальна машина
 Має власніФункції JVM
 Інтерпретація
 Для підвищення продуктивності може бути залучений JITC (JustІнтерпретація
 JVM виконує байт код
 Виконання відбувається шляхом трансляції кожної командиJITC
 JITC (just in time compilation) – 
 Це оптимізація виконанняЗавантаження класів
 Завантаження Java-класів здійснюють завантажувачі класів (class loader)
 Завантажувачі класівПроцес завантаження класу
 В результаті клас завантажений та готовий до використання
Паралельне виконання у JVM
 JVM управляє власними потоками виконання
 Саме томуHeap, Method area
 Heap memory is the runtime data area fromGarbage Collector (1/2)
 Знаходить та звільнює місце, яке зайняте непотрібними об’єктами
Garbage Collector (2/2)
 За допомогою утиліт JVisualVM / VisualGC можна слідкуватиМоніторинг JVM
 JVisualVM
 VisualGC 
 може бути встановлений як plugin доJVisualVMJVisualVMБАЙТ-КОДБайт-код
 Набір інструкцій:
 http://en.wikipedia.org/wiki/Java_bytecode_instruction_listingsJBE - Java Bytecode EditorВЛАСТИВОСТІ МОВИ JAVAВластивості Java 
 Завдяки JVM:
 Кросплатформеність
 Простота управління пам’яттю
 Підтримка багатопоточності
Hello WorldHello World! 
 HelloWorld.java
 public class HelloWorld {
 		public static voidРесурси 
 James Gosling, Bill Joy, Guy Steele. The Java LanguageЗапитання?
 Запитання?



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Мова програмування Java та технології J2EE Лекція 1 Особливості мови програмування Java Сирота О.П.


Слайд 2
Описание слайда:
Скорочення JDK = Java Development Kit JRE = Java Runtime Environment J2SE = Java 2 Standard Edition JavaSE = Java Standard Edition J2EE = Java 2 Enterprise Edition JavaEE = Java Enterprise Edition JavaME = Java Micro Edition JVM = Java Virtual Machine

Слайд 3
Описание слайда:
Історія мови Java Сучасні сфери застосування Розподілені інформаційні системи Desktop-застосування Мобільні телефони Смартфони Побутові пристрої «Розумний дім» Предмет нашого курсу – Java SE та Java EE – розподілені інформаційні системи Процес JCP – специфікації JSR-XXX

Слайд 4
Описание слайда:
Версії JavaSE

Слайд 5
Описание слайда:
Стандартизація Розробка специфікацій Java здійснюється суспільством JCP (Java Community Process) – з 1998 р.

Слайд 6
Описание слайда:
Виробники JavaSE Sun JDK (->Oracle JDK) IBM Java SDK Open JDK

Слайд 7
Описание слайда:
JDK JRE JavaSE JDK – платформа для розробки JRE – платформа для виконання Java-програм JavaSE - API

Слайд 8
Описание слайда:
Відмінності від C++ Ваші пропозиції

Слайд 9
Описание слайда:
Відмінності від C++ Чиста об’єктно-орієнтована мова Кореневий об’єкт «java.lang.Object» Відсутні вказівники, тільки “посилання” Виділення пам’яті для об’єктів – тільки в області «heap» («куча») Java: o = new myobject() - heap C++ : o= new myobject() – heap, o = myobject() – stack. Відсутня адресна арифметика Збирання сміття Відсутнє множинне успадкування класів (можливе множинне успадкування тільки інтерфейсів) Відсутні пре-процесор та макроси Відсутнє перевантаження операторів Пакети замість просторів імен («namespace») Обробка виключних ситуацій в Java є обов’язковою та контролюється компілятором (Checked/Unchecked Exceptions) Інтроспекція, рефлексія

Слайд 10
Описание слайда:
JAVA-ПРОГРАМА

Слайд 11
Описание слайда:
Java-програма Код програми пишеться на мові програмування Java у файлі *.java Код програми компілюється компілятором javac. В результаті отримаємо байткод (файл *.class) Байткод виконується за допомогою програми java. Ця програма запускає віртуальну машину JVM (Java Virtual Machine)

Слайд 12
Описание слайда:
Характеристики Java-програми Характеристики Незалежність від апаратного забезпечення Незалежність від операційних систем Незалежність завдяки JVM

Слайд 13
Описание слайда:
Java virtual Machine (JVM)

Слайд 14
Описание слайда:
Старт JVM JVM подається на вхід початковий клас Виконується метод main початкового класу > java HelloWorld public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World!”); } }

Слайд 15
Описание слайда:
JVM (Java Virtual Machine) JVM – абстрактна обчислювальна машина Має власний набір інструкцій Нічого не знає про мову Java Виконує байт-код (bytecode) – набір інструкцій JVM Class-файли Містять байткод та допоміжну інформацію Java-програми компілюються у байт-код та розповсюджуються у вигляді “class”-файлів або їх архівів (“jar”-файлів) Non-Java JVM? Мови із статичною типизацією: Ada, C, Pascal Мови із динамічною типізацією (скриптові мови) – починаючи з JDK 7

Слайд 16
Описание слайда:
Типи JVM Software JVM Sun JDK, IBM Java SDK, Open JDK Hardware JVM PicoJava, ARM Jazelle Embedded JVM Портативні пристрої, побутові пристрої - Java 2 Micro Edition – Scelmer CEE-J, Jeode Веб-броузери - аплети

Слайд 17
Описание слайда:
Структура JVM JVM – це абстрактна стекова обчислювальна машина Має власні потоки виконання (JVM Thread) Містить загальні для всіх потоків виконання області Heap, Method Area

Слайд 18
Описание слайда:
Функції JVM Інтерпретація Для підвищення продуктивності може бути залучений JITC (Just In Time Compiler). Class Loader – завантаження класів Завантаження, зв’язування, ініціалізація класів Garbage Collector (GC) - збирання сміття Здійснюється неявний виклик, якщо в області “heap” неможливо виділити пам’ять Для явного виклику GC застосовуються System.gc() – але такого краще не робити Розмір “heap” встановлюється параметром -Xmx Паралельне виконання Можливість одночасної роботи декількох потоків виконання

Слайд 19
Описание слайда:
Інтерпретація JVM виконує байт код Виконання відбувається шляхом трансляції кожної команди байт-коду в машинний код Така трансляція відбувається постійно під час виконання кожної команди з байт-коду

Слайд 20
Описание слайда:
JITC JITC (just in time compilation) – Це оптимізація виконання байт-коду Кешування машинного коду для раніше трансльованого байткоду >java -version java version "1.6.0_21" Java(TM) SE Runtime Environment (build 1.6.0_21-b07) Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)

Слайд 21
Описание слайда:
Завантаження класів Завантаження Java-класів здійснюють завантажувачі класів (class loader) Завантажувачі класів організовані у дерево Кожний наступний завантажувач класів бачить тільки ті класи, які завантажені попереднім завантажувачем

Слайд 22
Описание слайда:
Процес завантаження класу В результаті клас завантажений та готовий до використання Не плутати з інстаціюванням класу Крок 1 – завантаження Пошук class-файлу Завантаження байткоду Крок 2 – зв’язування Верифікація байткоду Підготовка класу (відтепер за допомогою Reflection API можна динамічно звернутися до класу, його методів та полів). Розіменування усіх класів, на які посилається даний клас Крок 3 – ініціалізація Виконання блоків статичної ініціалізації Ініціалізація статичних полів

Слайд 23
Описание слайда:
Паралельне виконання у JVM JVM управляє власними потоками виконання Саме тому Java містить конструкції для роботи з багатопоточністю на рівні мови (наприклад, ключове слово synchronized) Кожний потік виконання містить свій регістр PC та стек Кожний потік виконання виконує байткод

Слайд 24
Описание слайда:
Heap, Method area Heap memory is the runtime data area from which memory for all class instances and arrays is allocated. Non-heap memory method area. It stores per-class structures such as a runtime constant pool, field and method data, and the code for methods and constructors memory required for the internal processing or optimization of the JVM. GC очищує Heap Memory

Слайд 25
Описание слайда:
Garbage Collector (1/2) Знаходить та звільнює місце, яке зайняте непотрібними об’єктами Алгоритм GC заснований на ідеї поколінь (most objects die young) Heap поділяється на покоління (розміри «поколінь» та ньюанси алгоритму GC є предметом тонкої настройки)

Слайд 26
Описание слайда:
Garbage Collector (2/2) За допомогою утиліт JVisualVM / VisualGC можна слідкувати за роботою GC

Слайд 27
Описание слайда:
Моніторинг JVM JVisualVM VisualGC може бути встановлений як plugin до JVisualVM JConsole

Слайд 28
Описание слайда:
JVisualVM

Слайд 29
Описание слайда:
JVisualVM

Слайд 30
Описание слайда:
БАЙТ-КОД

Слайд 31
Описание слайда:
Байт-код Набір інструкцій: http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings

Слайд 32
Описание слайда:
JBE - Java Bytecode Editor

Слайд 33
Описание слайда:
ВЛАСТИВОСТІ МОВИ JAVA

Слайд 34
Описание слайда:
Властивості Java Завдяки JVM: Кросплатформеність Простота управління пам’яттю Підтримка багатопоточності Інші властивості: Чиста об’єктно-орієнтована мова

Слайд 35
Описание слайда:
Hello World

Слайд 36
Описание слайда:
Hello World! HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World!”); } } javac HelloWorld.java -> HelloWorld.class java HelloWorld

Слайд 37
Описание слайда:
Ресурси James Gosling, Bill Joy, Guy Steele. The Java Language Specification. - Addison Wesley. - 3 edition. - 2005. - 688p. -http://java.sun.com/docs/books/jls/ Tim Lindholm, Frank Yellin. The Java Virtual Machine Specification, Second Edition. - Prentice Hall. - 1999. – 496p. - http://java.sun.com/docs/books/jvms/ Java SE 6 Documentation http://download.oracle.com/javase/6/docs/ Java Tutorials http://download.oracle.com/javase/tutorial/index.html Bill Venners. The Java Virtual Machine. Chapter 5 of Inside the Java Virtual Machine. http://www.artima.com/insidejvm/ed2/jvm.html

Слайд 38
Описание слайда:
Запитання? Запитання?


Скачать презентацию на тему Особливості мови програмування Java (лекція 1) можно ниже:

Похожие презентации