Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Темы для рефератов.docx
Скачиваний:
16
Добавлен:
10.02.2015
Размер:
32.39 Кб
Скачать

Темы для докладов для семинарских занятий по Java на базе научно-практической платформы ивМиИт.

Темы для рефератов имеют очень широкий разброс в сложности и, соответственно, в объеме. Но я постарался разбить темы таким образом, чтобы они не оказались слишком большими. Конечно, будет хорошо, если вы возьмете незнакомую тему, разберетесь в ней и представите нам свое видение. Это будет крайне полезно для вас.

Формат реферата может быть любой: вордовский файл, презентация или, совсем идеально, видеолекция (запись экрана с озвучкой).

Почти в каждом реферате должен встречаться код, будь то исходники рассматриваемой коллекции, методы класса или просто пример. Каждый реферат должен заканчиваться ссылками на полезны статьи/использованные ресурсы и прочее. Но все равно, когда вы будете скидывать мне, я скажу вам, что нужно будет добавить/переделать.

Новичкам я рекомендую рассматривать темы 1-43, за исключением некоторых. Людям, которые уже более менее разбираются в программировании, в том числе и в ООП, надо сосредоточить свое внимание на других темах. Ваша свобода выбора не ограничивается только этими темами, вы можете выбрать любую. Даже в эти 150 тем не вошло огромное количество интересных вещей. Вы можете взять любую библиотеку и рассказать о ней. Но предварительно напишите мне.

После выбора любой темы обязательно напишите мне в личку.

Итак, темы: Язык Java.

1) Что привело к созданию языка Java? Расскажите про нативные и интерпретируемые языки. В чем плюсы и минусы языка Java по сравнению с каждым из них.

2) Что такое bytecode и JVM? В чем заключается смысл JIT-компиляции?

3) Расскажите основные моменты ООП. Какие существуют другие парадигмы программирования? Опишите вкратце парадигмы процедурного и функционального программирования.

Базовые элементы языка Java.

4) Что такое переменные? Расскажите про базовые переменные языка Java. Сколько места занимают они в памяти? Какие можно выполнять операции с ними?

5) Как считывать данные с консоли. Расскажите о разных способах. Например, о классе Scanner или потоке BufferedReader.

6) Условные операторы if и switch.

7) Привидение базовых типов. Методы parse.

8) Массивы. Многомерные массивы. Возможность создания непрямоугольных массивов.

9) Циклы for, while, do-while, for в стиле foreach. Как применяется цикл for в стиле foreach? В чем его особенности?

10) Управляющие операторы return, continue, break.

11) Code Conventions Java.

Основы ооп.

12) Что такое класс? В чем разница между объектом и классом? Для чего нужны классы (затронуть тему абстракции).

13) Код и данные – поля и методы классов.

14) Пакеты.

15) Области видимости, модификаторы доступа.

16) Создание объекта. Ключевое слово new. Конструкторы. Зачем нужны конструкторы?

17) Ключевое слово this. Его применение в конструкторах.

18) Перегрузка методов. Перегрузка конструкторов.

19) Ключевое слово static.

20) Абстракция.

21) Инкапсуляция. Сокрытие реализации и защита данных.

22) Полиморфизм.

23) «Сборка мусора» в Java.

Интерфейсы и наследование. Продвинутое ооп.

24) Что такое интерфейс? Создание интерфейсов. Зачем нужны интерфейсы?

25) Абстрактные методы и абстрактные классы. Зачем нужны абстрактные классы?

26) В чем отличие абстрактного класса от интерфейса?

27) Основы наследования. Ключевое слово extends.

28) Ключевое слово super. Использование родительского конструктора.

29) Ключевое слово final в наследовании.

30) Создание многоуровневой иерархии.

31) Почему было принято решение отказаться от множественного наследование классов? Множественное наследование интерфейсов.

32) Класс Object как базовый класс для всех. Методы класса Object.

33) Использование оператора instanceof.

34) Вложенные и внутренние классы (static и non-static).

35) * Передача интерфейсов в качестве параметров для конструктора или метода.

36) * Лямбда-выражения для реализации интерфейсов (JDK 1.8).

37) Реализация методов интерфейсов по умолчанию (JDK 1.8).