SlideShare a Scribd company logo
Занятие 1
Введение в язык программирования
Java
Java
Изначально язык назывался Oak («Дуб») разрабатывался Джейсоном Гослингом для
программирования бытовых электронных устройств. Впоследствии он был переименован в Java и
стал использоваться для написания клиентских приложений и серверного программного
обеспечения. Назван в честь марки кофе Java (очень популярного в 1990-е годы среди
разработчиков), которая, в свою очередь, получила наименование одноимённого острова (Ява),
поэтому на официальной эмблеме языка изображена чашка с дымящимся кофе. Существует и
другая версия происхождения названия языка, связанная с аллюзией на кофе-машину как пример
бытового устройства, для программирования которого изначально язык создавался.
it-courses.by
Java
Язык должен был воплощать следующие качества: простоту и мощь, безопасность, объектную
ориентированность, надежность, интерактивность, архитектурную независимость, возможность
интерпретации, высокую производительность и легкость в изучении. Знать о возможностях Java
весьма полезно, поскольку именно перечисленные выше свойства языка придают динамику
страницам всемирной паутины.
it-courses.by
JVM
Java Virtual Machine (сокращенно Java VM, JVM) — виртуальная машина Java — основная часть
исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина
Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы
компилятором Java (javac). JVM может также использоваться для выполнения программ,
написанных на других языках программирования. Например, исходный код на языке Ada
(Названный в честь первой программистки - Ады Лавлэйс) может быть откомпилирован в байт-код
Java, который затем может выполниться с помощью JVM.
it-courses.by
JVM
JVM является ключевым компонентом платформы Java. Так как виртуальные машины Java
доступны для многих аппаратных и программных платформ, Java может рассматриваться и как
связующее программное обеспечение, и как самостоятельная платформа. Использование одного
байт-кода для многих платформ позволяет описать Java как «скомпилировано однажды,
запускается везде» (compile once, run anywhere).
Виртуальные машины Java обычно содержат Интерпретатор байт-кода, однако, для повышения
производительности во многих машинах также применяется JIT-компиляция часто исполняемых
фрагментов байт-кода в машинный код.
it-courses.by
Простота и мощь
После освоения основных понятий объектно-ориентированного программирования вы быстро
научитесь программировать на Java. В наши дни существует много систем программирования,
гордящихся тем, что в них одной и той же цели можно достичь десятком различных способов. В
языке Java изобилие решений отсутствует — для решения задачи у вас будет совсем немного
вариантов. Стремление к простоте зачастую приводило к созданию неэффективных и
невыразительных языков типа командных интерпретаторов. Java к числу таких языков не
относится – для Вас вся мощность ООП и библиотек классов.
it-courses.by
Безопасность
В популярной литературе наших дней, особенно если речь заходит об Internet, стало модной темой
обсуждение вопросов безопасности. Люди уверены, что использование Internet в коммерческой
деятельности равносильно написанию номера своей кредитной карточки на стенке телефонной
будки. Один из ключевых принципов разработки языка Java заключался в обеспечении защиты от
несанкционированного доступа. Программы на Java не могут вызывать глобальные функции и
получать доступ к произвольным системным ресурсам, что обеспечивает в Java уровень
безопасности, недоступный для других языков.
it-courses.by
Объектная ориентированность
Забавно наблюдать, как многочисленные новые диалекты старых языков гордо объявляются
объектно-ориентированными. Поскольку при разработке языка отсутствовала тяжелая
наследственность, для реализации объектов был избран удобный прагматичный подход.
Объектная модель в Java проста и легко расширяется, в то же время, ради повышения
производительности, числа и другие простые типы данных Java не являются объектами.
it-courses.by
Надежность
Java ограничивает вас в нескольких ключевых областях и таким образом способствует
обнаружению ошибок на ранних стадиях разработки программы. В то же время в ней отсутствуют
многие источники ошибок, свойственных другим языкам программирования (строгая типизация,
например). Большинство используемых сегодня программ “отказывают” в одной из двух ситуаций:
при выделении памяти, либо при возникновении исключительных ситуаций. В традиционных
средах программирования распределение памяти является довольно нудным занятием —
программисту приходится самому следить за всей используемой в программе памятью, не забывая
освобождать ее по мере того, как потребность в ней отпадает. Зачастую программисты забывают
освобождать захваченную ими память или, что еще хуже, освобождают ту память, которая все еще
используется какой-либо частью программы.
it-courses.by
Надежность
Исключительные ситуации в традиционных средах программирования часто возникают в таких,
например, случаях, как деление на нуль или попытка открыть несуществующий файл, и их
приходится обрабатывать с помощью неуклюжих и нечитабельных конструкций. Java фактически
снимает обе эти проблемы, используя сборщик мусора для освобождения незанятой памяти и
встроенные объектно-ориентированные средства для обработки исключительных ситуаций.
it-courses.by
Интерактивность
Java создавалась как средство, которое должно удовлетворить насущную потребность в создании
интерактивных сетевых программ. В Java реализовано несколько интересных решений,
позволяющих писать код, который выполняет одновременно массу различных функций и не
забывает при этом следить за тем, что и когда должно произойти. В языке Java для решения
проблемы синхронизации процессов применен наиболее элегантный из всех когда-либо
изобретенных методов, который позволяет конструировать прекрасные интерактивные системы.
Простые в обращении изящные подпроцессы Java дают возможность реализации в программе
конкретного поведения, не отвлекаясь при этом на встраивание глобальной циклической обработки
событий.
it-courses.by
Независимость от архитектуры устройства
Вопрос о долговечности и переносимости кода важнее религиозных войн между ПК, Линуксами и
Макинтошами. Создатели Java наложили на язык и на среду выполнения несколько жестких
требований, которые на деле, а не на словах позволяют, однажды написав, всегда запускать
программу в любом месте и в любое время (где существует виртуальная Java-машина).
it-courses.by
Интерпретация
Необычайная способность Java исполнять свой код на любой из поддерживаемых платформ
достигается тем, что ее программы транслируются в некое промежуточное представление,
называемое байт-кодом (bytecode). Байт-код, в свою очередь, может интерпретироваться в любой
системе, в которой есть среда времени выполнения Java. Большинство ранних систем, в которых
пытались обеспечить независимость от платформы, обладало огромным недостатком — потерей
производительности (Basic, Perl). Несмотря на то, что в Java используется интерпретатор, байт-код
легко переводится непосредственно в “родные” машинные коды (Just In Time compilers) “на лету”.
При этом достигается весьма высокая производительность.
it-courses.by
Простота изучения
Язык Java, хотя и более сложный чем языки командных интерпретаторов, все же неизмеримо
проще для изучения, чем другие другие языки программирования, например C++. Черты языка
станут казаться вам естественным путем для решения тех или иных задач и будут способствовать
отработке хорошего стиля программирования. Поскольку объектная модель в Java одновременно
проста и выразительна, вы скоро освоитесь с объектно-ориентированным стилем создания
программ.
it-courses.by
Богатая объектная среда
Среда Java — это нечто гораздо большее, чем просто язык программирования. В нее встроен
набор ключевых классов, содержащих основные абстракции реального мира, с которым придется
иметь дело вашим программам. Основой популярности Java являются встроенные классы-
абстракции, сделавшие его языком, действительно независимым от платформы.
it-courses.by
Основные библиотеки
java.lang - Классы ядра языка (типы, работа со строками, тригонометрические функции,
обработка исключений)
java.io - Классы для различных типов ввода-вывода
java.system - Классы для работы с системой, консолью/командной строкой и т.д.
java.math - Классы для арифметических операций произвольной точности
java.net - Классы для работы в сети Интернет (сокеты, протоколы, URL)
java.util - Разноообразные полезные типы данных (стеки, словари, хэш-таблицы), даты,
генератор случайных чисел
it-courses.by
Организация оперативной памяти в Java
Каждый созданный объект занимает место в оперативной памяти
it-courses.by
Организация оперативной памяти в Java
Запись объектов в память происходит при выполнении программы, а не при написании кода.
Во многих языках программирования может возникнуть проблема: запись объекта уже в занятую
область памяти, где находится другой объект – это может привести к краху программы.
Можно заполнить объектами всю свободную память (если не удалять ненужные) – тогда
произойдет «утечка памяти».
it-courses.by
Организация оперативной памяти в Java
В C++ есть прямой доступ к памяти, в Java – нет.
Виртуальная машина Java самостоятельно управляет объектами в памяти.
Сборщик мусора избавляет программиста Java от проблем управления памятью вручную. Он
удаляет старые объекты, на которых уже нет ссылок в программе. Периодичность его работы
динамична и заранее неизвестна.
it-courses.by
Компиляция и запуск программы
Сборка (англ. assembly) — двоичный файл (состоящий из 1 и 0), содержащий исполняемый код
программы или (реже) другой подготовленный для использования информационный продукт.
Текст программы — это исходный код программы на языке java.
Дополнения — это классы, которые необходимо учитывать во время сборки (библиотеки).
В итоге мы получаем набор файлов с расширением class или jar. То есть, если мы используем
сторонние библиотеки – мы должны указать их при сборке. Это могут быть скомпилированные
классы или собранные подсистемы.
it-courses.by
Компиляция и запуск программы
В Java нет разграничения между собранной библиотекой, исполняемым приложением или же
подсистемой. Что имеется в виду, что если вы хотите создать самостоятельную сущность в едином
файле, вы создаёте jar файл. К примеру, если вы создаёте библиотеку, то это будет jar файл с
набором классов, который могут быть использованный другими разработчиками, если это
подсистема, то это часть функционала (набор классов) вынесенная за рамки основного модуля, но
используемая в нём (что то вроде частной библиотеки), и т.д..
it-courses.by
Компиляция и запуск программы
Jar-файл — это ZIP архив (то есть вы можете разархивировать его). Jar-файл должен в себе
содержать набор классов и файл META-INF/MANIFEST.MF, в котором описаны характеристики
данного jar-файла.
Манифест-файлы также могут содержать информацию о других файлах, которые не упакованы в
архив (внешние библиотеки который необходимы для функционирования, об этом будет сказано
более подробно дальше). Именно то, что информацию о jar-файле должна быть записаны в
манифесте зависит от того, как вы собираетесь использовать JAR-файл. Манифест по умолчанию
не делает никаких предположений о том, какую информацию он должен записать о других файлах.
it-courses.by
it-courses.by

More Related Content

PPT
0. hello java world
ODP
Java 9 - кратко о новом
PDF
терминология vol.2
PDF
Терминология как основной способ поиска разработчиков или как не опозорится п...
PDF
Что должен уметь Linux программист
PPTX
Что такое Java? Кто такой Java разработчик?
PDF
DevOps guide for awesome quality assurance
PPT
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
0. hello java world
Java 9 - кратко о новом
терминология vol.2
Терминология как основной способ поиска разработчиков или как не опозорится п...
Что должен уметь Linux программист
Что такое Java? Кто такой Java разработчик?
DevOps guide for awesome quality assurance
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...

Viewers also liked (11)

PDF
How Airbnb is Changing Vacation Rentals Forever
PDF
Airbnb Marketing Plan _ Sample
PPTX
Using big data to increase the bottom line for vacation rental management com...
PPTX
Customer Service for Vacation Rentals
PPTX
Comparing Airbnb, HomeAway and TripAdvisor Vacation Rentals
PDF
Joe Zadeh, Airbnb presentation at Lean Startup SXSW, Austin
PDF
Airbnb deck
PDF
Business Model - Airbnb
PDF
airbnb Pitch Deck - Redesigned
PDF
A Guide to Marketplaces
PPTX
How Airbnb is Changing Vacation Rentals Forever
Airbnb Marketing Plan _ Sample
Using big data to increase the bottom line for vacation rental management com...
Customer Service for Vacation Rentals
Comparing Airbnb, HomeAway and TripAdvisor Vacation Rentals
Joe Zadeh, Airbnb presentation at Lean Startup SXSW, Austin
Airbnb deck
Business Model - Airbnb
airbnb Pitch Deck - Redesigned
A Guide to Marketplaces
Ad

Similar to Lesson 01 (20)

ODP
Java: вчера, сегодня, завтра
PDF
15 HappyDev-lite-2015 autumn. Анна Тарасенко. Java в современном мире, вторая...
PPT
Ввведение в java
PPT
Введение в язык программирования «Java»
PPTX
Java Core. Lecture# 1. Intro
PDF
01 - Java. Введение в Java
PPT
1. java lecture intro
PDF
WordPress Shortcode
PPTX
PPTX
Programming Java - Lection 01 - Basics - Lavrentyev Fedor
PPTX
Курс Java-2016. Занятие 01. Введение в Java как технологию
PPTX
1 лекция
PDF
лекция 01 прогр на java (тсн) - введение в java
PDF
Java осень 2013 лекция 1-1
PPTX
Введение в java
PPT
Java. Lecture 01. Introducing Java
PDF
Глава1: Обзор технологии Java
PDF
Java весна 2014 лекция 1
PPTX
Dz Java Hi Load 0.4
PDF
1. Введение в Java
Java: вчера, сегодня, завтра
15 HappyDev-lite-2015 autumn. Анна Тарасенко. Java в современном мире, вторая...
Ввведение в java
Введение в язык программирования «Java»
Java Core. Lecture# 1. Intro
01 - Java. Введение в Java
1. java lecture intro
WordPress Shortcode
Programming Java - Lection 01 - Basics - Lavrentyev Fedor
Курс Java-2016. Занятие 01. Введение в Java как технологию
1 лекция
лекция 01 прогр на java (тсн) - введение в java
Java осень 2013 лекция 1-1
Введение в java
Java. Lecture 01. Introducing Java
Глава1: Обзор технологии Java
Java весна 2014 лекция 1
Dz Java Hi Load 0.4
1. Введение в Java
Ad

Lesson 01

  • 1. Занятие 1 Введение в язык программирования Java
  • 2. Java Изначально язык назывался Oak («Дуб») разрабатывался Джейсоном Гослингом для программирования бытовых электронных устройств. Впоследствии он был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Назван в честь марки кофе Java (очень популярного в 1990-е годы среди разработчиков), которая, в свою очередь, получила наименование одноимённого острова (Ява), поэтому на официальной эмблеме языка изображена чашка с дымящимся кофе. Существует и другая версия происхождения названия языка, связанная с аллюзией на кофе-машину как пример бытового устройства, для программирования которого изначально язык создавался. it-courses.by
  • 3. Java Язык должен был воплощать следующие качества: простоту и мощь, безопасность, объектную ориентированность, надежность, интерактивность, архитектурную независимость, возможность интерпретации, высокую производительность и легкость в изучении. Знать о возможностях Java весьма полезно, поскольку именно перечисленные выше свойства языка придают динамику страницам всемирной паутины. it-courses.by
  • 4. JVM Java Virtual Machine (сокращенно Java VM, JVM) — виртуальная машина Java — основная часть исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java (javac). JVM может также использоваться для выполнения программ, написанных на других языках программирования. Например, исходный код на языке Ada (Названный в честь первой программистки - Ады Лавлэйс) может быть откомпилирован в байт-код Java, который затем может выполниться с помощью JVM. it-courses.by
  • 5. JVM JVM является ключевым компонентом платформы Java. Так как виртуальные машины Java доступны для многих аппаратных и программных платформ, Java может рассматриваться и как связующее программное обеспечение, и как самостоятельная платформа. Использование одного байт-кода для многих платформ позволяет описать Java как «скомпилировано однажды, запускается везде» (compile once, run anywhere). Виртуальные машины Java обычно содержат Интерпретатор байт-кода, однако, для повышения производительности во многих машинах также применяется JIT-компиляция часто исполняемых фрагментов байт-кода в машинный код. it-courses.by
  • 6. Простота и мощь После освоения основных понятий объектно-ориентированного программирования вы быстро научитесь программировать на Java. В наши дни существует много систем программирования, гордящихся тем, что в них одной и той же цели можно достичь десятком различных способов. В языке Java изобилие решений отсутствует — для решения задачи у вас будет совсем немного вариантов. Стремление к простоте зачастую приводило к созданию неэффективных и невыразительных языков типа командных интерпретаторов. Java к числу таких языков не относится – для Вас вся мощность ООП и библиотек классов. it-courses.by
  • 7. Безопасность В популярной литературе наших дней, особенно если речь заходит об Internet, стало модной темой обсуждение вопросов безопасности. Люди уверены, что использование Internet в коммерческой деятельности равносильно написанию номера своей кредитной карточки на стенке телефонной будки. Один из ключевых принципов разработки языка Java заключался в обеспечении защиты от несанкционированного доступа. Программы на Java не могут вызывать глобальные функции и получать доступ к произвольным системным ресурсам, что обеспечивает в Java уровень безопасности, недоступный для других языков. it-courses.by
  • 8. Объектная ориентированность Забавно наблюдать, как многочисленные новые диалекты старых языков гордо объявляются объектно-ориентированными. Поскольку при разработке языка отсутствовала тяжелая наследственность, для реализации объектов был избран удобный прагматичный подход. Объектная модель в Java проста и легко расширяется, в то же время, ради повышения производительности, числа и другие простые типы данных Java не являются объектами. it-courses.by
  • 9. Надежность Java ограничивает вас в нескольких ключевых областях и таким образом способствует обнаружению ошибок на ранних стадиях разработки программы. В то же время в ней отсутствуют многие источники ошибок, свойственных другим языкам программирования (строгая типизация, например). Большинство используемых сегодня программ “отказывают” в одной из двух ситуаций: при выделении памяти, либо при возникновении исключительных ситуаций. В традиционных средах программирования распределение памяти является довольно нудным занятием — программисту приходится самому следить за всей используемой в программе памятью, не забывая освобождать ее по мере того, как потребность в ней отпадает. Зачастую программисты забывают освобождать захваченную ими память или, что еще хуже, освобождают ту память, которая все еще используется какой-либо частью программы. it-courses.by
  • 10. Надежность Исключительные ситуации в традиционных средах программирования часто возникают в таких, например, случаях, как деление на нуль или попытка открыть несуществующий файл, и их приходится обрабатывать с помощью неуклюжих и нечитабельных конструкций. Java фактически снимает обе эти проблемы, используя сборщик мусора для освобождения незанятой памяти и встроенные объектно-ориентированные средства для обработки исключительных ситуаций. it-courses.by
  • 11. Интерактивность Java создавалась как средство, которое должно удовлетворить насущную потребность в создании интерактивных сетевых программ. В Java реализовано несколько интересных решений, позволяющих писать код, который выполняет одновременно массу различных функций и не забывает при этом следить за тем, что и когда должно произойти. В языке Java для решения проблемы синхронизации процессов применен наиболее элегантный из всех когда-либо изобретенных методов, который позволяет конструировать прекрасные интерактивные системы. Простые в обращении изящные подпроцессы Java дают возможность реализации в программе конкретного поведения, не отвлекаясь при этом на встраивание глобальной циклической обработки событий. it-courses.by
  • 12. Независимость от архитектуры устройства Вопрос о долговечности и переносимости кода важнее религиозных войн между ПК, Линуксами и Макинтошами. Создатели Java наложили на язык и на среду выполнения несколько жестких требований, которые на деле, а не на словах позволяют, однажды написав, всегда запускать программу в любом месте и в любое время (где существует виртуальная Java-машина). it-courses.by
  • 13. Интерпретация Необычайная способность Java исполнять свой код на любой из поддерживаемых платформ достигается тем, что ее программы транслируются в некое промежуточное представление, называемое байт-кодом (bytecode). Байт-код, в свою очередь, может интерпретироваться в любой системе, в которой есть среда времени выполнения Java. Большинство ранних систем, в которых пытались обеспечить независимость от платформы, обладало огромным недостатком — потерей производительности (Basic, Perl). Несмотря на то, что в Java используется интерпретатор, байт-код легко переводится непосредственно в “родные” машинные коды (Just In Time compilers) “на лету”. При этом достигается весьма высокая производительность. it-courses.by
  • 14. Простота изучения Язык Java, хотя и более сложный чем языки командных интерпретаторов, все же неизмеримо проще для изучения, чем другие другие языки программирования, например C++. Черты языка станут казаться вам естественным путем для решения тех или иных задач и будут способствовать отработке хорошего стиля программирования. Поскольку объектная модель в Java одновременно проста и выразительна, вы скоро освоитесь с объектно-ориентированным стилем создания программ. it-courses.by
  • 15. Богатая объектная среда Среда Java — это нечто гораздо большее, чем просто язык программирования. В нее встроен набор ключевых классов, содержащих основные абстракции реального мира, с которым придется иметь дело вашим программам. Основой популярности Java являются встроенные классы- абстракции, сделавшие его языком, действительно независимым от платформы. it-courses.by
  • 16. Основные библиотеки java.lang - Классы ядра языка (типы, работа со строками, тригонометрические функции, обработка исключений) java.io - Классы для различных типов ввода-вывода java.system - Классы для работы с системой, консолью/командной строкой и т.д. java.math - Классы для арифметических операций произвольной точности java.net - Классы для работы в сети Интернет (сокеты, протоколы, URL) java.util - Разноообразные полезные типы данных (стеки, словари, хэш-таблицы), даты, генератор случайных чисел it-courses.by
  • 17. Организация оперативной памяти в Java Каждый созданный объект занимает место в оперативной памяти it-courses.by
  • 18. Организация оперативной памяти в Java Запись объектов в память происходит при выполнении программы, а не при написании кода. Во многих языках программирования может возникнуть проблема: запись объекта уже в занятую область памяти, где находится другой объект – это может привести к краху программы. Можно заполнить объектами всю свободную память (если не удалять ненужные) – тогда произойдет «утечка памяти». it-courses.by
  • 19. Организация оперативной памяти в Java В C++ есть прямой доступ к памяти, в Java – нет. Виртуальная машина Java самостоятельно управляет объектами в памяти. Сборщик мусора избавляет программиста Java от проблем управления памятью вручную. Он удаляет старые объекты, на которых уже нет ссылок в программе. Периодичность его работы динамична и заранее неизвестна. it-courses.by
  • 20. Компиляция и запуск программы Сборка (англ. assembly) — двоичный файл (состоящий из 1 и 0), содержащий исполняемый код программы или (реже) другой подготовленный для использования информационный продукт. Текст программы — это исходный код программы на языке java. Дополнения — это классы, которые необходимо учитывать во время сборки (библиотеки). В итоге мы получаем набор файлов с расширением class или jar. То есть, если мы используем сторонние библиотеки – мы должны указать их при сборке. Это могут быть скомпилированные классы или собранные подсистемы. it-courses.by
  • 21. Компиляция и запуск программы В Java нет разграничения между собранной библиотекой, исполняемым приложением или же подсистемой. Что имеется в виду, что если вы хотите создать самостоятельную сущность в едином файле, вы создаёте jar файл. К примеру, если вы создаёте библиотеку, то это будет jar файл с набором классов, который могут быть использованный другими разработчиками, если это подсистема, то это часть функционала (набор классов) вынесенная за рамки основного модуля, но используемая в нём (что то вроде частной библиотеки), и т.д.. it-courses.by
  • 22. Компиляция и запуск программы Jar-файл — это ZIP архив (то есть вы можете разархивировать его). Jar-файл должен в себе содержать набор классов и файл META-INF/MANIFEST.MF, в котором описаны характеристики данного jar-файла. Манифест-файлы также могут содержать информацию о других файлах, которые не упакованы в архив (внешние библиотеки который необходимы для функционирования, об этом будет сказано более подробно дальше). Именно то, что информацию о jar-файле должна быть записаны в манифесте зависит от того, как вы собираетесь использовать JAR-файл. Манифест по умолчанию не делает никаких предположений о том, какую информацию он должен записать о других файлах. it-courses.by