Plan

562 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
562
On SlideShare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Plan

  1. 1. Семинар №1. Вводное занятие 1. Введение в Java: JVM, JRE, JSDK 2. IDE Eclipse, запуск и интерфейс 3. Создание и настройка Java проекта в Eclipse 4. “Hello world!” на Java в Eclipse 5. Режим отладки в Eclipse 6. Документация Java и помощь в Eclipse 7. Правила оформления кода на языке Java 8. Введение в Java объекты 9. Примитивные типы и wrapper-классы для примитивных типов 10. Полное и короткое имя класса, import/package 11. Класс java.lang.String 12. Класс java.util.Scanner 13. Класс java.lang.Math Семинар №2. Наследование 1. Вопросы по заданиям семинара №1. Обсудить FAQ для семинара №1. 2. Напомнить Java Code Rules 3. Массивы в Java 4. Модификаторы доступа для класса и для методов/полей 5. Наследование. Ключевое слово extends. Класс java.lang.Object как корень всей иерархии Java-классов. 6. Абстрактные классы и методы. Ключевое слово abstract. 7. Интерфейсы. Ключевые слова interface и implements 8. Ключевое слово instanceof Семинар №3. Исключения. Потоки. 1. Вопросы по семинару №2 2. Исключения, ключевые слова try, catch, finally, throw, throws 3. Иерархия исключений: Throwable, Exception, RuntimeException и Error 4. Понятие потока. Корневые классы иерархии потоков: InputStream, OutputStream, Reader, Writer. Построение цепочки потоков. 5. Работа с файловой системой. Классы File, FileInputStream, FileOutputStream, FileReader, FileWriter, RandomAccessFile, BufferedInputStream, BufferedOutputStream 6. Специальные потоковые классы: ByteArrayXXX, StringXXX, DataXXX 7. Классы для связи потоков в разных форматах OuputStreamWriter, InputStreamReader Семинар №4. Вложенные классы. AWT. Swing. 1. Вопросы по заданиям семинара №3 2. Обычные, статические и анонимные вложенные классы. Модификатор final для доступа к данным из анонимных классов. 3. Примеры программ на AWT и Swing. Различия между двумя библиотеками. 4. Базовые классы java.awt.Component и javax.swing.JComponent. Панели java.awt.Panel и javax.swing.JPanel. Деревянная структура графических элементов интерфейса. 5. Понятие Event. Использование Listener. Использование Adapter. 6. Понятие LayoutManager. Использование панелей без Layout. Использование GridBagLayout.
  2. 2. Семинар №5. Generics. Работа с коллекциями в Java API. 1. Вопросы по заданиям семинара №4 2. Базовые знания о generics в Java 3. Базовые контейнерные классы: List, Set и Map. Иерархия классов. 4. Стандартные имплементации: ArrayList, LinkedList, HashMap, HashSet, TreeMap. 5. Роль функций Object.hashcode() и Object.equals() при работе с контейнерами 6. Итераторы и оператор foreach 7. Обзор классов java.utl.Collections и java.util.Arrays Семинар №6. Синхронизация. Многопоточность. 1. Вопросы по заданиям семинара №5 2. Механизм синхронизации в Java. Нити выполнения, объекты и мониторы. 3. Захват и освобождение монитора, блок synchronized 4. Класс потока Thread, запуск нового потока 5. Метод выполнения run(), время жизни потока 6. Пользовательский и Daemon потоки 7. Ожидание и прерывание потока. Методы join и interrupt 8. Исключение InterruptedException 9. Текущий поток выполнения Thread.currentThread() 10. Остановка выполнения без захвата монитора в методе Thread.sleep() 11. Захват и временное освобождение монитора. Методы wait и notify класса Object 12. Блокирование потока DeadLock. Методы stop, suspend, resume и destroy 13. Интерфейс Runnable в качестве альтернативы наследования класса Thread Семинар №7. Класс Class. Reflection API. 1. Вопросы по заданиям семинара №6 2. Класс java.lang.Class. Получение объекта класса Class: свойство .class, Object.getClass(), Class.forName() 3. Динамическое создание объекта класса через Class.newInstance() 4. Класс Method. Динамический вызов методов объекта через Method.invoke() 5. Класс java.lang.ClassLoader. Возможность динамического создания класса. Иерархия class loaders. 6. Доступ к ресурсам через Class.getResourceAsStream() и Class.getSystemResourceAsStream(). Использование java.util.Properties для быстрой загрузки стандартного ресурса. Семинар №8. JSDK 5 Extensions , Javadoc 1. Вопросы по заданиям семинара №7 2. Использование import static 3. Ключевое слово enum 4. Использование аннотаций 5. Мета-аннотации • @Retention (RetentionPolicy.SOURCE, RetentionPolicy.CLASS, RetentionPolicy.RUNTIME) • @Target (ElementType.TYPE, ElementType.FIELD и т.д.) 6. Стандартные аннотации • @Override • @ SuppressWarnings 7. Формат документации в Java 8. Комментарии Javadoc в коде
  3. 3. 9. Основные таги документации и их использование: • @author, @since, @see, @param, @return, @throws, @exception 10. Программа Javadoc (Javabinjavadoc.exe) 11. Запуск Javadoc в среде Eclipse (File->Export->Java->Javadoc) 12. Дерево пакетов и классов. Комментарии к пакету, файл package.html 13. Учебник http://java.sun.com/j2se/javadoc/writingdoccomments/index.html Семинар №9. Принципы построения сложных программ. Зависимости между модулями. MVC. 1. Отделение логики работы приложения (бизнес-логика) от пользовательского интерфейса (UI). Отделение бизнес-логики приложения от способа хранения данных (DB). Трех-уровневые приложения как стандарт для проектирования сложных программ (сначала данные, потом интерфейс, потом бизнес-логика). 2. MVC (http://en.wikipedia.org/wiki/Model-view-controller) 3. Классы типа Bean и типа Controller 4. Правило исключения взаимозависимостей между классами и между пакетами. 5. Развязка взаимной зависимости между классами через интерфейс. Проблема получения ссылки на конкретный объект. 6. Передача ссылки на конкретный объект (inversion of control, see http://www.martinfowler.com/articles/injection.html): • Dependency Injection через setter (явное и неявное) • Dependency Injection через конструктор • Использование ServiceLocator (динамический и статический). Паттерн Singleton Семинар №10. Работа с сетью. XML 1. Низкоуровневая работа с TCP через классы java.net.ServerSocket и java.net.Socket 2. Работа с HTTP через классы java.net.URL и java.net.URLConnection. Классы java.net.URLEncoder и java.net.URLDecoder. 3. Использование java.net.DatagramSocket и java.net.DatagramPacket 4. Обзор возможности асинхронной работы с сетью через пакет java.nio.* 5. Чтение XML файлов через DOM-парсер Семинар №11. Утилитные классы 1. Работа со строками: java.lang.StringBuffer, java.lang.StringBuilder, java.util.StringTokenizer, пакет java.utl.regexp и String.split() 2. Форматированный вывод: java.text.MessageFormat и java.text.NumberFormat 3. Классы для работы с датами и временем: java.util.TimeZone, java.util.Date, java.util.Calendar, java.text.SimpleDateFormat 4. Математические операции: java.util.BitSet, java.util.Random, java.lang.Math, java.math.BigInteger 5. Сведения о внутреннем состоянии JVM, запуск внешней программы: java.lang.System, java.lang.Runtime 6. Работа с потоками: java.util.concurrent.ThreadPoolExecutor и java.util.concurrent.locks.Lock
  4. 4. Семинар №12. Механизмы безопасности Java 1. Проверка прав доступа с помощью java.security.AccessController и java.lang.SecurityManager 2. Задание прав доступа через .policy файл 3. Привилегированный интервал программы Семинар №13. RMI 1. Обзор технологии RMI 2. Выполнение примера простого RMI приложения http://ccfit.nsu.ru/local/programming/java/JavaDoc-1.5/guide/rmi/hello/hello-world.html

×