Skip to content

Java core, considering in more detail the possibilities of Java 8

Notifications You must be signed in to change notification settings

altaec23/CourseWork

Repository files navigation

CourseWork

Considering in more detail the possibilities of Java 8, hibernate, spring boot


Состоит из заданий на Java core + немного JavaEE:

Все тесты и здания запускаются с консоли, Java16+


Java Core

[1] Основы. Примитивные типы

  • Task1 - Написать программу, которая находит минимум из двух чисел, введенных с командной строки

[2] Основы. Конструкторы, классы обертки

  • Task2 - Реализовать класс, описывающий вектор (в трёхмерном пространстве)

[3] Основы. String и пр. Object

  • Task3 - Написать консольный калькулятор, умеющий производить базовые вычисления c последовательным вводом цифр и операторов.

[4] Парадигмы ООП Часть

  • Task4 - Предоставить реализацию стека и очереди (на массивах Object) с основными операциями: Очередь: Enqueue(), Dequeue(), isEmpty(), Top();
    Стек: Push(), Pop(), isEmpty(), Top();
    a) Добавить тесты (junit) на работоспособность очереди,стека, при удалении из пустой очереди, добавлении и т.д. б) javaDoc

  • Task5 - Придумать свой пример использования абстрактной фабрики и реализовать ее (шаблоны: фабрика и абстрактная фабрика)

[5] Вариации внутренних классов + Исключения
[6] Коллекции

  • Task 6 - Сделать как минимум 3 метода для поиска дубликатов. Написать тесты. Для долгих методов использовать assertTimeoutPreemptively

[7] Generics

  • Task 7 - Необходимо написать класс ArrayIterator который умеет работать с массивами T[][]. Тесты

[8] Сериализация/Десериализация + Загрузчики
[9] Сборка мусора
[10] Лямбды + Stream API + VAR

  • Task 8 - Написать метод, который на вход принимает текст. Метод должен посчитать частоту появления слов, и отдать массив из 10 слов которые чаще всего встретились в тексте. Если в тексте меньше 10 уникальных слов, то метод отдаст сколько есть. Если в тексте некоторые слова имеют одинаковую частоту, то отдаем их в лексикографическом порядке. Слово это любая непрерывная последовательность символов. Даже с символами точка, запятая.

[11] Optional
[12] Java Reflection API
[13] Annotations

  • Task9 - Создать класс, который может выполнять тесты (рукописный junit), в качестве тестов выступают классы с наборами методов над которыми есть аннотация @DoTest - собственная аннотация.).
    Из «класса-теста» вначале должен быть запущен метод с аннотацией @DoBeforeAll если такой имеется, далее запущены методы с аннотациями @DoTest, а по завершению всех тестов – метод с аннотацией @DoAfterAll.
    Если что то не так то кидаем исключение.
    Тесты через junit

[14] Сокеты, потоки данных
[15] Многопоточность. Основы

  • Task 10 - Задача продемонстрировать каждое из возможных состояний потока. Добавление мьютекса если необходимо.

[16] Java.util.concurrent

  • Task 11 - Есть банк. В нем N счетов и M клиентов.
    Клиент может переводить деньги с одного счёта на другой.
    Необходимо создать демона наблюдателя, который будет следить, за статусом, что денежная масса в системе постоянна, нет утечек. Денежный пул создаётся при запуске программы, он фиксирован и указывается через проперти файл.

[17] Clean Code


Java EE

Для данных тем был создан отдельный проект: https://github.com/altaec23/CourseWorkJavaEE
[19] Базы данных
[20] Средства сборки
[21] Hibernate
[22] Java EE + Spring Framework
[23] Sonar
[24] Jasypt

About

Java core, considering in more detail the possibilities of Java 8

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages