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

Нажмите для полного просмотра!
Особливості мови програмування Java (лекція 1), слайд №1Особливості мови програмування Java (лекція 1), слайд №2Особливості мови програмування Java (лекція 1), слайд №3Особливості мови програмування Java (лекція 1), слайд №4Особливості мови програмування Java (лекція 1), слайд №5Особливості мови програмування Java (лекція 1), слайд №6Особливості мови програмування Java (лекція 1), слайд №7Особливості мови програмування Java (лекція 1), слайд №8Особливості мови програмування Java (лекція 1), слайд №9Особливості мови програмування Java (лекція 1), слайд №10Особливості мови програмування Java (лекція 1), слайд №11Особливості мови програмування Java (лекція 1), слайд №12Особливості мови програмування Java (лекція 1), слайд №13Особливості мови програмування Java (лекція 1), слайд №14Особливості мови програмування Java (лекція 1), слайд №15Особливості мови програмування Java (лекція 1), слайд №16Особливості мови програмування Java (лекція 1), слайд №17Особливості мови програмування Java (лекція 1), слайд №18Особливості мови програмування Java (лекція 1), слайд №19Особливості мови програмування Java (лекція 1), слайд №20Особливості мови програмування Java (лекція 1), слайд №21Особливості мови програмування Java (лекція 1), слайд №22Особливості мови програмування Java (лекція 1), слайд №23Особливості мови програмування Java (лекція 1), слайд №24Особливості мови програмування Java (лекція 1), слайд №25Особливості мови програмування Java (лекція 1), слайд №26Особливості мови програмування Java (лекція 1), слайд №27Особливості мови програмування Java (лекція 1), слайд №28Особливості мови програмування Java (лекція 1), слайд №29Особливості мови програмування Java (лекція 1), слайд №30Особливості мови програмування Java (лекція 1), слайд №31Особливості мови програмування Java (лекція 1), слайд №32Особливості мови програмування Java (лекція 1), слайд №33Особливості мови програмування Java (лекція 1), слайд №34Особливості мови програмування Java (лекція 1), слайд №35Особливості мови програмування Java (лекція 1), слайд №36Особливості мови програмування Java (лекція 1), слайд №37Особливості мови програмування Java (лекція 1), слайд №38

Содержание

Вы можете ознакомиться и скачать презентацию на тему Особливості мови програмування Java (лекція 1). Доклад-сообщение содержит 38 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Мова програмування Java та технології J2EE
Лекція 1
Особливості мови програмування Java


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

Слайд 4





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

Слайд 5





Стандартизація

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

Слайд 6





Виробники JavaSE

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

Слайд 7





JDK	JRE	JavaSE

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

Слайд 8





Відмінності від C++

Ваші пропозиції
Описание слайда:
Відмінності від 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)
Інтроспекція, рефлексія
Описание слайда:
Відмінності від 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-ПРОГРАМА
Описание слайда:
JAVA-ПРОГРАМА

Слайд 11





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

Слайд 12





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

Слайд 13





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

Слайд 14





Старт JVM

JVM подається на вхід початковий клас
Виконується метод main початкового класу
> java HelloWorld
public class HelloWorld {
		public static void main(String[] args) {
			System.out.println(“Hello World!”);
	}
}
Описание слайда:
Старт 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
Описание слайда:
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
Веб-броузери - аплети
Описание слайда:
Типи 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
Описание слайда:
Структура 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
Паралельне виконання
Можливість одночасної роботи декількох потоків виконання
Описание слайда:
Функції JVM Інтерпретація Для підвищення продуктивності може бути залучений JITC (Just In Time Compiler). Class Loader – завантаження класів Завантаження, зв’язування, ініціалізація класів Garbage Collector (GC) - збирання сміття Здійснюється неявний виклик, якщо в області “heap” неможливо виділити пам’ять Для явного виклику GC застосовуються System.gc() – але такого краще не робити Розмір “heap” встановлюється параметром -Xmx Паралельне виконання Можливість одночасної роботи декількох потоків виконання

Слайд 19





Інтерпретація
JVM виконує байт код
Виконання відбувається шляхом трансляції кожної команди байт-коду в машинний код
Така трансляція відбувається постійно під час виконання кожної команди з байт-коду
Описание слайда:
Інтерпретація 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)
Описание слайда:
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)
Завантажувачі класів організовані у дерево
Кожний наступний завантажувач класів бачить тільки ті класи, які завантажені попереднім завантажувачем
Описание слайда:
Завантаження класів Завантаження Java-класів здійснюють завантажувачі класів (class loader) Завантажувачі класів організовані у дерево Кожний наступний завантажувач класів бачить тільки ті класи, які завантажені попереднім завантажувачем

Слайд 22





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

Слайд 23





Паралельне виконання у JVM
JVM управляє власними потоками виконання
Саме тому Java містить конструкції для роботи з багатопоточністю на рівні мови (наприклад, ключове слово synchronized)
Кожний потік виконання містить свій регістр PC та стек
Кожний потік виконання виконує байткод
Описание слайда:
Паралельне виконання у 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
Описание слайда:
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 є предметом тонкої настройки)
Описание слайда:
Garbage Collector (1/2) Знаходить та звільнює місце, яке зайняте непотрібними об’єктами Алгоритм GC заснований на ідеї поколінь (most objects die young) Heap поділяється на покоління (розміри «поколінь» та ньюанси алгоритму GC є предметом тонкої настройки)

Слайд 26





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

Слайд 27





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

Слайд 28





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

Слайд 29





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

Слайд 30





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

Слайд 31





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

Слайд 32





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

Слайд 33





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

Слайд 34





Властивості Java

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

Слайд 35





Hello World
Описание слайда:
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
Описание слайда:
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
Описание слайда:
Ресурси 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





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



Похожие презентации
Mypresentation.ru
Загрузить презентацию