Скачать презентацию Введение в Java Лекции по Java Александр Харичкин Скачать презентацию Введение в Java Лекции по Java Александр Харичкин

01-Java_Intro.pptx

  • Количество слайдов: 20

Введение в Java Лекции по Java Александр Харичкин, Performance Support Manager, Net. Cracker © Введение в Java Лекции по Java Александр Харичкин, Performance Support Manager, Net. Cracker © 2013 Net. Cracker Technology Corporation Confidential

План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий Java и их практического применения • Java Everywhere • Детали курса и ссылки © 2013 Net. Cracker Technology Corporation Confidential 2

Определения Java • Java Programming Language (просто Java) — объектно-ориентированный язык программирования, разработанный компанией Определения Java • Java Programming Language (просто Java) — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (которую затем приобрела компания Oracle) • Java Platform — пакет программ, позволяющих разрабатывать и запускать программы • Java Virtual Machine (JVM) — основная часть исполняющей системы Java. JVM интерпретирует байт-код Java, предварительно созданный компилятором из исходного текста Java-программы • Java Runtime Environment (JRE) — минимальная реализация JVM, необходимая для исполнения Java-приложений (без средств разработки) • Java Development Kit (JDK) — комплект разработчика приложений на языке Java (бесплатно распространяемый), включающий JRE, компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, исходный код, различные утилиты © 2013 Net. Cracker Technology Corporation Confidential 3

План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий Java и их практического применения • Java Everywhere • Детали курса и ссылки © 2013 Net. Cracker Technology Corporation Confidential 4

Особенности Java • Объектная ориентированность • Объектно-ориентированная парадигма (наследование, инкапсуляция, полиморфизм) • Использование стандартных Особенности Java • Объектная ориентированность • Объектно-ориентированная парадигма (наследование, инкапсуляция, полиморфизм) • Использование стандартных библиотек классов, работающих с периферией (ввод/вывод, сетевое взаимодействие, графические пользовательские интерфейсы) • Надежность и безопасность • • Проверка программ на этапе компиляции Упрощенная модель управления памятью Наличие встроенных средств безопасности Защита от неавторизованного кода • Высокая производительность • Оптимизация байтового кода и трансляция в машинный код • Автоматическая сборка мусора • Возможность подключения модулей приложения, разработанных на языке платформы © 2013 Net. Cracker Technology Corporation Confidential 5

Особенности Java - продолжение • Переносимость • Нет понятия «зависимости от реализации» • Реализуется Особенности Java - продолжение • Переносимость • Нет понятия «зависимости от реализации» • Реализуется и портируется для каждой платформы • «Write Once, Run Anywhere» • Интерпретируемость • Java байт-код выполняется на любой машине, на которую установлен интерпретатор и среда исполнения • Фаза сборки на интерпретирующей платформе является простой и пошаговой • Динамичность • Сугубо динамический процесс сборки • Подключение программных модулей из любых источников • Многопоточность • Поддержка легковесных потоков-нитей исполнения программы • Реализован механизм семафоров и средств синхронизации потоков © 2013 Net. Cracker Technology Corporation Confidential 6

План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий Java и их практического применения • Java Everywhere • Детали курса и ссылки © 2013 Net. Cracker Technology Corporation Confidential 7

Технологии Java: обзор • Java Standard Edition • для использования на настольных ПК, серверах Технологии Java: обзор • Java Standard Edition • для использования на настольных ПК, серверах и другом подобном оборудовании • 850 миллионов персональных компьютеров • Java Enterprise Edition • Разработка backend-приложений для корпоративного бизнеса • Инструментарий для бизнеса, разработки, базы данных, CMS etc… • Java Micro Edition • 3+ миллиарда мобильных устройств • Android • Абсолютное большинство приложений для этой платформы разрабатываются на Java • Java FX • Платформа для создания Rich Internet Applications (RIA), которые можно просматривать на любом экране (будь то монитор или же телефон) • Java Card • для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объёмом памяти и возможностями обработки. © 2013 Net. Cracker Technology Corporation Confidential 8

Java Standard Edition © 2013 Net. Cracker Technology Corporation Confidential 9 Java Standard Edition © 2013 Net. Cracker Technology Corporation Confidential 9

Java Enterprise Edition • Java EE – стандарт для масштабируемых многоуровневых корпоративных приложений (Enterprise: Java Enterprise Edition • Java EE – стандарт для масштабируемых многоуровневых корпоративных приложений (Enterprise: много людей, много объектов, …) • Упрощает разработку таких приложений: часть работы приложения выполняется контейнером. • Обеспечивает одновременной работы пользователей с разными ролями • Актуальность и согласованность данных, отказоустойчивость, безопасность, … • Все это – в т. ч. за счет перехода от простой клиент-серверной к многоуровневой архитектуре (выделение не только web server, но и application server – уровень бизнес-логики или middle tier) © 2013 Net. Cracker Technology Corporation Confidential 10

Технологии Java: практическое применение • AWT, Swing (Standard Edition) • Универсальный инструмент разработки графических Технологии Java: практическое применение • AWT, Swing (Standard Edition) • Универсальный инструмент разработки графических интерфейсов для любой операционной системы • Java Applet (Standard Edition) • Загрузка Java-апплета «на лету» из Web-браузера • Java Servlet, Java Server Pages (Enterprise Edition) • Мощнейший инструмент разработки Backend приложений. Поддержка HTTP, Webсервисов, возможность запуска с минимальными системными требованиями или, наоборот, поддержка большого числа одновременных запросов (десятки тысяч пользователей) • Java Server Faces (Enterprise Edition) • Компонентизированный User Interface • Разработка богатых и функциональных Client-side модулей приложений. Поддержка HTTP, AJAX. © 2013 Net. Cracker Technology Corporation Confidential 11

Технологии Java: практическое применение (продолжение) • JDBC - Java Database Connectivity, JPA - Java Технологии Java: практическое применение (продолжение) • JDBC - Java Database Connectivity, JPA - Java Persistence API (SE, EE) • Связь Java-приложения с базами данных с помощью набора библиотек. • Enterprise Java Beans (EE) • Разработка модульных компонентов бизнес-приложений, поддерживающих все современные аспекты безопасности, транзакционности, распределенности. Мощнейший инструмент разработчика Enterprise • Remote Method Invocation (SE, EE) • XML (SAX, DOM) (SE, EE) • Zip, Networking, Input/Output (SE) • Language Utilities (SE) © 2013 Net. Cracker Technology Corporation Confidential 12

План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий Java и их практического применения • Java Everywhere • Детали курса и ссылки © 2013 Net. Cracker Technology Corporation Confidential 13

Высокоуровневые Java-based Frameworks • Платформы для разработки • Swing Application Framework • . . Высокоуровневые Java-based Frameworks • Платформы для разработки • Swing Application Framework • . . . (and many others) • Возможности: ‒ Жизненный цикл программы: загрузка и завершение работы ‒ Поддержка загрузки ресурсов (сообщений, картинок, цветов, шрифтов и пр. ) ‒ Поддержка асинхронных действий. ‒ Сохранение сессий между запусками приложения • Интегрированные среды разработки • Net. Beans Platform • Eclipse Platform • Intelli. J IDEA © 2013 Net. Cracker Technology Corporation Confidential 14

Java: сторонние разработчики • Apache Commons – разные полезные штуки • Ant, Maven – Java: сторонние разработчики • Apache Commons – разные полезные штуки • Ant, Maven – инструменты автоматизации (компиляции, сборки, запуска, тестирования, . . . ) • Logging (log 4 j, slf 4 j) • Apache POI – API To Access Microsoft Office Files • Spring Framework • Альтернатива Java EE для разработки приложений уровня предприятия • JBoss • Hibernate • Rich. Faces • Google Web Toolkit • Android SDK © 2013 Net. Cracker Technology Corporation Confidential 15

Java Everywhere • Amazon. com, e. Bay. com, Yandex. ru, Yahoo!. com, Linked. In. Java Everywhere • Amazon. com, e. Bay. com, Yandex. ru, Yahoo!. com, Linked. In. com, Rune. Scape. org, … • IBM, SAP • Oracle • СУБД Oracle включает JVM как свою составную часть • Идеи интерпретируемого кода стали основой общеязыковой инфраструктуры (CLI) платформы. NET от Microsoft © 2013 Net. Cracker Technology Corporation Confidential 16

План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий План лекции • Определения Java • Особенности языка и платформы Java • Обзор технологий Java и их практического применения • Java Everywhere • Детали курса и ссылки © 2013 Net. Cracker Technology Corporation Confidential 17

Что нужно уметь после курса • Не изобретать велосипед. Правильно гуглить (in English) слова Что нужно уметь после курса • Не изобретать велосипед. Правильно гуглить (in English) слова из лекции • Не гуглить, если есть имя пакета/класса (API docs, etc) • Правильно спрашивать куратора • Где лучше посмотреть …? Как в этом коде сделать …? • Почему у меня ничего не работает? • Быстро работать с IDE (рецепты IDE спрашивайте у куратора) • Уметь читать код (документация никогда не покрывает всё) • Для тренировки стоит применить в уч. проекте чужой код • Уметь писать читабельный, краткий и красивый код • Именование! Комментарии (к классам – !, к методам – ? , внутри методов – только к неочевидным местам). И др. • Отсутствие больших методов (>0. 5 -1 screen) и классов • Не говоря уже о формате кода средствами IDE и т. п. © 2013 Net. Cracker Technology Corporation Confidential 18

Что нужно уметь (особо важные темы) • Low-level coding: Java Basics, Flow control, Collections Что нужно уметь (особо важные темы) • Low-level coding: Java Basics, Flow control, Collections • Уметь проектировать программные компоненты • Применять богатый арсенал ООП в Java • Не изобретать велосипед. Постоянно осваивать паттерны ‒ Но учить их в теории толку мало, нужно уместно применять ‒ Уметь выделять компоненты важнее хитрых паттернов • SQL и доступ к БД из Java • Уметь писать сложные selects важнее широких знаний БД • Из следующих по важности навыков часто упускают: • Regular Expressions. XML (JAXP, XS, XPath) • Logging. Unit Testing. VCS (SVN, Git). Build (Ant, Maven). • Уметь видеть место частностей в общей картине © 2013 Net. Cracker Technology Corporation Confidential 19

Полезные ссылки • Софт • Java Development Kit (JDK 6, 7). Notepad++, etc • Полезные ссылки • Софт • Java Development Kit (JDK 6, 7). Notepad++, etc • IDE: Net. Beans || Eclipse JDT || Idea || JDeveloper • UML: Star UML (for Java 5); IDE plugins: Net. Beans UML (before 6. 9), Object. Aid for Eclipse (Class Diagram only); etc • Книги (для тех, у кого плохо с английским), например: • (Java 7) Г. Шилдт. Java: Руководство для начинающих, 5 е изд. – М. : «И. Д. Вильямс» , 2013 – 624 с. • (Java 6) К. Хорстманн, Г. Корнелл. Java 2. Библиотека профессионала. Том 2: тонкости программирования, 8 е изд. – 2012 – 992 с. • Ресурсы c docs. oracle. com/javase • API Docs – javadoc (+ стоит подключить src. zip к IDE!) • Java SE Tutorials (но вообще тьюториалы полезнее для Java EE) • Java Language Specification • Чтобы быстро найти пример / how to: jexp. ru и т. п. • И т. д. (требуйте с куратора и лекторов!) © 2013 Net. Cracker Technology Corporation Confidential 20