SlideShare a Scribd company logo
Язык программирования
Java
13 Delovaya St., Niznhy Novgorod, 603163, Russia
Tel.: +7 (8312) 778822, Fax: +7 (8312) 777790
Email: info@mera-group.com

URL: www.meranetworks.ru
История создания и
эволюция языка Java
Sun Microsystems (www.sun.com) – ныне часть
компании Oracle (www.oracle.com)

Patrick Naughton

James Gosling

Scott McNealy

Январь, 1991 г. Начало разработки нового языка программирования.
Главная причина недовольства С++:
Необходимо перекомпилировать, а зачастую и переписывать код под
каждую новую архитектуру микропроцеесора, операционную систему
и т.п.
2
История создания и
эволюция языка Java

Сентябрь, 1992 г.
Oak (дуб)

23 марта 1995 г.
Официальное объявление языка Java

1999 г. - Java 2 SE – Java 2 Standard Edition
3
Ключевые особенности
языка Java
•
•
•
•
•
•
•

архитектурная независимость и
переносимость кода
полная объектная ориентированность
устойчивость (надежность) кода
встроенный механизм поддержки
многопоточности
безопасность Java-программ
встроенная структура коллекций
удобство разработки GUI

4
Архитектурная независимость и
переносимость кода

C++
"Write Once, Run Anywhere"

Java
5
Архитектурная независимость и
переносимость кода
Байт-код – архитектурно нейтральный,
высокооптимизированный набор команд,
предназначенных для выполнения специальной
исполняющей системой.

Java
JVM (Java Virtual Machine, виртуальная Java-машина) –
исполняющая система, интерпретирующая байт-код
6
Архитектурная независимость и
переносимость кода

7
Полная объектная
ориентированность
Основная структурная единица программы – класс,
весь код Java-программы должен находиться внутри
одного или нескольких классов.

8
Устойчивость (надежность) кода
•
•
•
•
•
•

отсутствие адресной арифметики
технология «сборки мусора» (garbage
collection)
строгая типизация
отсутствие множественного наследования
классов
запрет перегрузки операторов
встроенная обработка исключений

«Java is C++ without the Guns and Knives» (С) J.Gosling

9
Поддержка многопоточности
Многопоточность Java предоставляет средства
создания приложений с множеством одновременно
активных потоков. Для эффективной работы с
потоками в Java реализован механизм семафоров и
средств синхронизации потоков: библиотека языка
предоставляет класс Thread, а система выполнения
предоставляет средства диспетчеризации и средства,
реализующие семафоры.

10
Безопасность

JVM - аналог виртуального
компьютера, расположенного
в оперативной памяти и
интерпретирующего байткод. Все действия Javaпрограммы замкнуты внутри
этого виртуального
компьютера. JVM может не
допускать деструктивных
действий Java-программ.

11
Встроенная структура коллекций
Структура коллекций (collections framework)
Java стандартизирует способ, с помощью
которого программы хранят и
обрабатывают структуры данных.
Структура коллекций

Интерфейсы

Реализации

Алгоритмы

12
Встроенная структура коллекций
Преимущества использования структуры коллекций:
1. Избавление от рутинных операций по
кодированию стандартных структур данных и
алгоритмов
2. Высокая эффективность реализации
3. Универсальность и простота изучения
(различные типы коллекций работают
похожим друг на друга образом и с высокой
степенью способности к взаимодействию)
4. Расширяемость
5. Параметризация

13
Удобство разработки GUI

В состав Java входят 2 библиотеки,
предназначенных для разработки GUI:
- AWT (Abstract Window Toolkit) –
платформно-зависимая библиотека,
вывод осуществляется через вызовы
OS API
- Swing - платформно-незаивисимая
библиотека, реализованная
полностью на Java, через OS API
выводится только окно, все
остальное рисуется средствами Java

14
Инструментальные средства
Большая часть инструментария для разработки
Java-программ распространяется бесплатно!
1. Java Software Development Kit - Oracle
Текущая версия Java(TM) SE Development Kit 7
http://www.oracle.com/technetwork/java/javase/downlo
ads/index.html
2. RAD – средства разработки:
–
–
–
–
–
–
–

Eclipse Project (open source project)
NetBeans (open source project)
IntelliJ IDEA (JetBrains)
JCreator Pro (Xinox Software)
Symantec Cafe (Symantec)
Visual J++ (Microsoft)
Together (TogetherSoft Corporation)

15
Первая программа на Java
class FirstProg
{public static void main(String args[ ])
{
System.out.println (“Hello, world”);
}
}

1.

-> FirstProg.class

2.

16
Литература и источники
информации в сети Интернет
1.
2.
3.
4.
5.

Ноутон П., Шилдт Г. Java 2 в подлиннике. – СПб, «BHV», 2001.
Г.Шилдт. Полный справочник по Java. – М.: Вильямс, 2007.
Б. Эккель. Thinking in Java. – Спб.:Питер, 2009.
Joshua Bloch. Effective Java: Second Edition. – Prentice Hall, 2008.
М.Гранд. Шаблоны проектирования в JAVA. Каталог популярных
шаблонов проектирования, проиллюстрированных при помощи
UML. – М.: Новое знание, 2004.

•
•

http://docs.oracle.com/javase/tutorial/
http://www.intuit.ru/department/pl/javapl/

17
Ad

More Related Content

Similar to 1. java lecture intro (20)

Java: вчера, сегодня, завтра
Java: вчера, сегодня, завтраJava: вчера, сегодня, завтра
Java: вчера, сегодня, завтра
Леонид Ставила
 
0. hello java world
0. hello java world0. hello java world
0. hello java world
Oleksandr Zahoruiko
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1
Technopark
 
Lesson 01
Lesson 01Lesson 01
Lesson 01
Stormdjent
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest
 
Dz Java Hi Load 0.4
Dz Java Hi Load 0.4Dz Java Hi Load 0.4
Dz Java Hi Load 0.4
HighLoad2009
 
Java 9 - кратко о новом
Java 9 -  кратко о новомJava 9 -  кратко о новом
Java 9 - кратко о новом
Леонид Ставила
 
Dotnet
DotnetDotnet
Dotnet
MonsterXX
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработки
devclub
 
Java 2 - Java Intro
Java 2 - Java IntroJava 2 - Java Intro
Java 2 - Java Intro
Alexander Babich
 
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в java
Unguryan Vitaliy
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»
Unguryan Vitaliy
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
Media Gorod
 
Java 9 - Back to the Future
Java 9 - Back to the FutureJava 9 - Back to the Future
Java 9 - Back to the Future
Леонид Ставила
 
Платформа для консолидированного управления ресурсами ЦОД
Платформа для консолидированного управления ресурсами ЦОДПлатформа для консолидированного управления ресурсами ЦОД
Платформа для консолидированного управления ресурсами ЦОД
ARCCN
 
SAI
SAISAI
SAI
clairbee
 
Использование Java Native Interface (JNI) и кросплатформенных C/C++ реализаци...
Использование Java Native Interface (JNI) и кросплатформенных C/C++ реализаци...Использование Java Native Interface (JNI) и кросплатформенных C/C++ реализаци...
Использование Java Native Interface (JNI) и кросплатформенных C/C++ реализаци...
Stfalcon Meetups
 
New Android NDK & JNI
New Android NDK & JNINew Android NDK & JNI
New Android NDK & JNI
Stfalcon Meetups
 
Java весна 2014 лекция 1
Java весна 2014 лекция 1Java весна 2014 лекция 1
Java весна 2014 лекция 1
Technopark
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1
Technopark
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest
 
Dz Java Hi Load 0.4
Dz Java Hi Load 0.4Dz Java Hi Load 0.4
Dz Java Hi Load 0.4
HighLoad2009
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработки
devclub
 
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в java
Unguryan Vitaliy
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»
Unguryan Vitaliy
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
Media Gorod
 
Платформа для консолидированного управления ресурсами ЦОД
Платформа для консолидированного управления ресурсами ЦОДПлатформа для консолидированного управления ресурсами ЦОД
Платформа для консолидированного управления ресурсами ЦОД
ARCCN
 
Использование Java Native Interface (JNI) и кросплатформенных C/C++ реализаци...
Использование Java Native Interface (JNI) и кросплатформенных C/C++ реализаци...Использование Java Native Interface (JNI) и кросплатформенных C/C++ реализаци...
Использование Java Native Interface (JNI) и кросплатформенных C/C++ реализаци...
Stfalcon Meetups
 
Java весна 2014 лекция 1
Java весна 2014 лекция 1Java весна 2014 лекция 1
Java весна 2014 лекция 1
Technopark
 

More from MERA_school (9)

2. java lecture syntax
2. java lecture syntax2. java lecture syntax
2. java lecture syntax
MERA_school
 
10. java lecture generics&collections
10. java lecture generics&collections10. java lecture generics&collections
10. java lecture generics&collections
MERA_school
 
9. java lecture library
9. java lecture library9. java lecture library
9. java lecture library
MERA_school
 
8. java lecture threads
8. java lecture threads8. java lecture threads
8. java lecture threads
MERA_school
 
7. java lecture events
7. java lecture events7. java lecture events
7. java lecture events
MERA_school
 
6. java lecture swing
6. java lecture swing6. java lecture swing
6. java lecture swing
MERA_school
 
5. java lecture io
5. java lecture io5. java lecture io
5. java lecture io
MERA_school
 
4. java lecture exceptions
4. java lecture exceptions4. java lecture exceptions
4. java lecture exceptions
MERA_school
 
3. java lecture classes
3. java lecture classes3. java lecture classes
3. java lecture classes
MERA_school
 
2. java lecture syntax
2. java lecture syntax2. java lecture syntax
2. java lecture syntax
MERA_school
 
10. java lecture generics&collections
10. java lecture generics&collections10. java lecture generics&collections
10. java lecture generics&collections
MERA_school
 
9. java lecture library
9. java lecture library9. java lecture library
9. java lecture library
MERA_school
 
8. java lecture threads
8. java lecture threads8. java lecture threads
8. java lecture threads
MERA_school
 
7. java lecture events
7. java lecture events7. java lecture events
7. java lecture events
MERA_school
 
6. java lecture swing
6. java lecture swing6. java lecture swing
6. java lecture swing
MERA_school
 
5. java lecture io
5. java lecture io5. java lecture io
5. java lecture io
MERA_school
 
4. java lecture exceptions
4. java lecture exceptions4. java lecture exceptions
4. java lecture exceptions
MERA_school
 
3. java lecture classes
3. java lecture classes3. java lecture classes
3. java lecture classes
MERA_school
 
Ad

1. java lecture intro

  • 1. Язык программирования Java 13 Delovaya St., Niznhy Novgorod, 603163, Russia Tel.: +7 (8312) 778822, Fax: +7 (8312) 777790 Email: [email protected] URL: www.meranetworks.ru
  • 2. История создания и эволюция языка Java Sun Microsystems (www.sun.com) – ныне часть компании Oracle (www.oracle.com) Patrick Naughton James Gosling Scott McNealy Январь, 1991 г. Начало разработки нового языка программирования. Главная причина недовольства С++: Необходимо перекомпилировать, а зачастую и переписывать код под каждую новую архитектуру микропроцеесора, операционную систему и т.п. 2
  • 3. История создания и эволюция языка Java Сентябрь, 1992 г. Oak (дуб) 23 марта 1995 г. Официальное объявление языка Java 1999 г. - Java 2 SE – Java 2 Standard Edition 3
  • 4. Ключевые особенности языка Java • • • • • • • архитектурная независимость и переносимость кода полная объектная ориентированность устойчивость (надежность) кода встроенный механизм поддержки многопоточности безопасность Java-программ встроенная структура коллекций удобство разработки GUI 4
  • 6. Архитектурная независимость и переносимость кода Байт-код – архитектурно нейтральный, высокооптимизированный набор команд, предназначенных для выполнения специальной исполняющей системой. Java JVM (Java Virtual Machine, виртуальная Java-машина) – исполняющая система, интерпретирующая байт-код 6
  • 8. Полная объектная ориентированность Основная структурная единица программы – класс, весь код Java-программы должен находиться внутри одного или нескольких классов. 8
  • 9. Устойчивость (надежность) кода • • • • • • отсутствие адресной арифметики технология «сборки мусора» (garbage collection) строгая типизация отсутствие множественного наследования классов запрет перегрузки операторов встроенная обработка исключений «Java is C++ without the Guns and Knives» (С) J.Gosling 9
  • 10. Поддержка многопоточности Многопоточность Java предоставляет средства создания приложений с множеством одновременно активных потоков. Для эффективной работы с потоками в Java реализован механизм семафоров и средств синхронизации потоков: библиотека языка предоставляет класс Thread, а система выполнения предоставляет средства диспетчеризации и средства, реализующие семафоры. 10
  • 11. Безопасность JVM - аналог виртуального компьютера, расположенного в оперативной памяти и интерпретирующего байткод. Все действия Javaпрограммы замкнуты внутри этого виртуального компьютера. JVM может не допускать деструктивных действий Java-программ. 11
  • 12. Встроенная структура коллекций Структура коллекций (collections framework) Java стандартизирует способ, с помощью которого программы хранят и обрабатывают структуры данных. Структура коллекций Интерфейсы Реализации Алгоритмы 12
  • 13. Встроенная структура коллекций Преимущества использования структуры коллекций: 1. Избавление от рутинных операций по кодированию стандартных структур данных и алгоритмов 2. Высокая эффективность реализации 3. Универсальность и простота изучения (различные типы коллекций работают похожим друг на друга образом и с высокой степенью способности к взаимодействию) 4. Расширяемость 5. Параметризация 13
  • 14. Удобство разработки GUI В состав Java входят 2 библиотеки, предназначенных для разработки GUI: - AWT (Abstract Window Toolkit) – платформно-зависимая библиотека, вывод осуществляется через вызовы OS API - Swing - платформно-незаивисимая библиотека, реализованная полностью на Java, через OS API выводится только окно, все остальное рисуется средствами Java 14
  • 15. Инструментальные средства Большая часть инструментария для разработки Java-программ распространяется бесплатно! 1. Java Software Development Kit - Oracle Текущая версия Java(TM) SE Development Kit 7 http://www.oracle.com/technetwork/java/javase/downlo ads/index.html 2. RAD – средства разработки: – – – – – – – Eclipse Project (open source project) NetBeans (open source project) IntelliJ IDEA (JetBrains) JCreator Pro (Xinox Software) Symantec Cafe (Symantec) Visual J++ (Microsoft) Together (TogetherSoft Corporation) 15
  • 16. Первая программа на Java class FirstProg {public static void main(String args[ ]) { System.out.println (“Hello, world”); } } 1. -> FirstProg.class 2. 16
  • 17. Литература и источники информации в сети Интернет 1. 2. 3. 4. 5. Ноутон П., Шилдт Г. Java 2 в подлиннике. – СПб, «BHV», 2001. Г.Шилдт. Полный справочник по Java. – М.: Вильямс, 2007. Б. Эккель. Thinking in Java. – Спб.:Питер, 2009. Joshua Bloch. Effective Java: Second Edition. – Prentice Hall, 2008. М.Гранд. Шаблоны проектирования в JAVA. Каталог популярных шаблонов проектирования, проиллюстрированных при помощи UML. – М.: Новое знание, 2004. • • http://docs.oracle.com/javase/tutorial/ http://www.intuit.ru/department/pl/javapl/ 17