Работа с текстовыми файлами.




Темы для докладов для семинарских занятий по 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).

Исключения.

38) Что такое исключения? Когда они возникают? Какие бывают типы исключений? Опишите основные классы исключений.

39) Обработка исключений. Конструкция try-catch-finally.

40) Множественные блоки catch. Вложенные конструкции try.

41) Выброс исключений. Ключевые слова throw и throws.

42) Собственные классы исключений.

43) Новое в JDK 1.7 – try-с-ресурсами.

 

Многопоточность.

44) Что такое многопоточность? Зачем ее применять? Класс Thread.

45) Создание нового потока. Интерфейс Runnable.

46) Синхронизация потоков. Приоритеты потоков.

47) Передача данных между потоками. Метод join().

48) Оператор synchronized.

49) Пауза и остановка потока. Почему метод stop() стал нежелательным?

50) Работа с состояниями потоков.

51) Ключевое слово volatile.

52) Атомарные классы.

53) *Fork Join Framework.

54) Потоки-демоны.

Новое в JDK 1.5.

55) Перечисления.

56) Оболочки типов. Автоупаковка и автораспаковка.

57) Переменное количество аргументов в методе.

58) Статический импорт.

59) Параметризованные классы – Generics. Какой подход для создания обобщенного класса использовался раньше, и его минусы.

60) * Аннотации. Применение аннотаций.

Работа со строками.

61) Класс String как неизменяемый объект. Конструкторы класса String.

62) Методы класса String.

63) Классы StringBuffer и StringBuilder.

64) Класс StringTokinizer.

65) Пакет java.text и его основные классы.

Работа с текстовыми файлами.

66) Работа с текстовыми файлами. Потоки ввода и вывода.

67) Считывание и запись в файлы. Рассмотреть разные способы.

 

Обобщения.

68) Обобщения. Что такое и зачем используется?

69) Обобщенный класс с несколькими параметрами.

70) Ограничение обобщений. Конструкции вида <? extends SuperClass>.

71) Обобщенные интерфейсы. Реализация обобщенных интерфейсов.

 

Пакет java.lang.

72) Какие классы содержит этот пакет? Опишите кратко каждый из них.

73) Класс Math. Методы этого класса.

74) Класс Runtime.

75) Класс Throwable. Класс StackTraceElement.

76) Основные исключения пакета java.lang.

Коллекции.

77) Что такое коллекция данных? Зачем нужны коллекции?

78) Иерархия коллекций в пакете java.util.

79) Интерфейс List. Рассказать об основных методах.

80) Класс Stack. Принципы работы, его применение.

81) Класс Queue. Принципы работы, его применение.

82) Класс ArrayList. Основные методы, преимущества и недостатки.

83) Класс LinkedList. Основные методы, преимущества и недостатки.

84) Класс HashMap. Основные методы работы. Как работать с этим классов в цикле foreach?

85) Класс TreeSet. Основные методы.

86) Интерфейс Iterable. Применение. Как реализовать этот интерфейс для собственного класса?

87) Интерфейс Comparable. Применение. Как реализовать этот интерфейс для собственного класса?

 

*Рефлексия и сериализация.

88) Расскажите основные моменты рефлексии. Для чего она используется? Что она позволяет делать?

89) Расскажите о классах пакета java.lang.reflect

90) Что такое сериализация? Зачем она используется, как сериализовать объект, как выглядит сериализованный объект?

91) Алгоритм сериализации Java.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: