Web-studio46.ru

Обучение и образование
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Сборник задач по программированию java

Большая подборка полезных практических и обучающих материалов по Java

Большая подборка полезных практических и обучающих материалов по Java

  • Подборки , 23 февраля 2016 в 12:41
  • Пётр Соковых

Java — язык программирования, который очень строго соответствует принципам объектно-ориентированного программирования. В этой статье вы найдете несколько полезных материалов, с которых стоит начать знакомство с языком.

Для начинающих

  • Отличная статья, в которой описано, как стоит подходить к изучению Java. После прочтения стоит заглянуть и в другие разделы сайта Skipy.ru, это уже будет полезно не только начинающим.
  • Study-Java — сайт, полностью состоящий из туториалов по Java, которые подскажут вам, в каком направлении стоит идти и какие навыки нужно вырабатывать в первую очередь.
  • Курс по основам языка Java.
  • Обширное руководство по многим темам с примерами кода.
  • Базовый курс по Java на ресурсе Stepik.
  • Более 350 вопросов с ответами для подготовки к интервью на позицию Junior Java Developer.
  • Наша подборка материалов для изучения языка Java.
  • Подборка полезных советов от Наньянского технологического университета — там есть аналогичные материалы и по другим темам.

Форумы, на которых вы можете задать возникшие вопросы:

Для продвинутых

  • Раздел Java на developer.com собрал в себе руководства как по целым пластам языка, вроде Enterprise Edition, так и разъяснения отдельных нюансов, вроде новомодных лямбда-выражений. Вот, например, статья, прочитав которую, вы разберётесь с тем, что такое аннотации, зачем они нужны и как правильно их использовать.
  • На сайте Tutorials Point есть раздел с исчерпывающим количеством туториалов по Java. Также там есть отдельный раздел для Java 8.
  • Java2S — коллекция примеров на все случаи жизни. Примечательно, что здесь есть не только чистая Java, но и работа с разными библиотеками, например JUnit. Хорошо описаны и нововведения Java 8 — Date-Time API, лямбды, потоки (streams).
  • Oskar Veerhoek — канал на YouTube, посвящённый OpenGL. Если вы собираетесь связать свою жизнь с программированием, маловероятно, что вам никогда не придётся работать с графикой. В течение курса из 41 видео автор расскажет вам, как работать с OpenGL в Java. Курс начинается с самых основ и написания 2D Minecraft’а, а заканчивается шейдерами, освещением и созданием 3D комнаты.

Для всех

  • Java-Tips — сборник готовых рецептов, шпаргалок, туториалов и полезных библиотек… Сайт будет незаменим для любого Java-программиста, особенно если вы только начинаете изучать язык. Отдельное спасибо стоит сказать тому, кто сортировал это всё — вам не составит труда найти здесь то, что вам нужно. Присутствуют материалы как по Java SE, так и по Enterprise и Micro версиям.
  • Регулярно обновляемый список вопросов и ответов.
  • Примеры решённых практических задач.
  • Структурированный справочник по языку.
  • Подробное руководство с примерами по каждой теме.
  • Обучающий материал от w3resource.
  • Подборка различных материалов для изучения языка.
  • Учебное пособие от Oracle, создателей языка.
  • Помните, что официальная документация — это источник самой достоверной и качественной информации.
  • Напоминаем, что на нашем сайте тоже есть порядочное количество статей по этому языку.

Практика

  • Бесплатные задачи, отсортированные по категориям на Codingbat;
  • Cписок задач от автора блога eax.me;
  • Олимпиадные задачи с ACMP;
  • Олимпиадные задачи с Codeforces;
  • Задачи с ответами на Codewars.

Полезные библиотеки

  • JUnit
    Любой код должен сопровождаться тестированием. Многие очень напрасно об этом забывают. Эта библиотека предназначена для автоматизации модульного тестирования. Еще несколько инструментов для тестирования в Java, вы найдете в нашей подборке.
  • HttpClient
    Библиотека для работы с HTTP ресурсами.
  • CommonsLang
    То, что «забыли» включить в JDK.
  • CommonsMath
    Отличное дополнение к java.math .
  • CommonsLogging
    Если вы используете для логирования System.out.println() , то вам стоит отрубить себе рук лучше воспользуйтесь этой библиотекой, так будет правильнее.
  • CommonsNet
    Логическое продолжение java.net , множество классов для работы с сетевыми протоколами.
  • CommonsVFS
    Библиотека, которая поможет вам абстрагироваться от способа хранения файлов — вы сможете достаточно обобщённо иметь к ним доступ по FTP, SFTP, WEBDAV, (G)ZIP и т.д.
  • CommonsIO
    С ней работать с вводом-выводом станет значительно проще.

Java 9

О том, какие изменения появились в Java 9, читайте в нашем обзоре с примерами.

Статьи

  • Подробный гайд по Java 9;
  • Знакомство с Project Jigsaw;
  • Java 9 Stream API: введение и материал по коллекторам;
  • Java 9 Process API;
  • Улучшения в Java Time (JSR-310);
  • Конкурентность;
  • Новое в Optional;
  • Разбираемся с Stack-Walking API;
  • Коллекции;
  • «Applying @Deprecated Enhancements»;
  • Используем sun.misc.Unsafe ;
  • Variable Handles;
  • Рефлексия vs Инкапсуляция;
  • Создание multi-release JAR-файлов при помощи Maven: о формате JAR, и о формате JAR с использованием Maven;
  • Ограничения памяти и Docker;
  • Введение в JShell.

Больше статей можно найти на этом сайте.

Блоги

  • Oracle (нет тега Java 9);
  • SitePoint;
  • Voxxed (выделим отличный цикл);
  • Baeldung;
  • Iteratr Learning (нет тега Java 9);
  • CodeFX;
  • Joda.

Книги и курсы

  • Курс «Java 9 Modularity: First Look»;
  • Книга «Java 9 Modularity»;
  • Книга «Mastering Java 9»;
  • Книга «Modular Programming in Java 9»;
  • Книга «Java 9 with JShell»;
  • Книга «Java 9 Module System».

В комментариях пишите, какие ресурсы были полезны для вас при изучении Java, самое интересное добавим в статью.

Список задач по Java для начинающих

Если вы начинающий Java программист то вам обязательно нужно ознакомится и выполнить все задания из этого списка.

Условные операторы

1. Найти наибольшее значение из двух переменных, трех, четырех, описать общий принцип для большего числа

2. Если а – четное посчитать а*б , иначе а+б

3. Определить какой четверти принадлежит точка с координатами (х,у)

4. Найти суммы только положительных из трех чисел

5. Посчитать выражение макс(а*б*с, а+б+с)+3

6. Есть два конверта со сторонами (а,б) и (с,д) определить, можно ли один конверт вложить в другой

7. Отсортировать значения двух, трех, четырех переменных используя только условные операторы

8. Написать программу определения оценки студента по его рейтингу, на основе следующих правил:
рейтинг Оценка

0-19 F
20-39 E
40-59 D
60-74 C
75-89 B
90-100 A

9. Проанализируйте следующий фрагмент кода. Какой результат будет при a =2 и b= 4 ?

Путем минимальных изменений модифицируйте код таким образом, чтобы на экране было напечатано

134 (при a =2 и b= 4)
4 (при a =2 и b= 44)
14 (при a =2 и b= 4)
1 (при a =2 и b= 4)

Циклы

1. найти сумму четных чисел и их количество в диапазоне от 1 до 99

2. Проверить простое ли число? (число называется простым, если оно делится только само на себя и на 1)

3. Вывести на экран квадрат, со стороной а

4. Вывести шахматную доску с заданными размерами, по принципу:

5. Напишите программу, которая определяет, является ли введенное число палиндромом? (Палиндром – число или текст, которые одинаково читаются слева направо и справа налево)

6. Вывести все простые числа в диапазоне от 2 до n

7. Вывести все натуральные числа, квадрат которых больше меньше заданного числа n

8. Вывести все делители числа

9. Найти корень натурального числа с точностью до целого (рассмотреть переборный вариант, и метод бинарного поиска)

10. Теорема Пифагора: вывести все прямоугольные треугольники, стороны которых – натуральные числа меньше 1000, посчитать их количество(по теореме Пифагора у прямоугольного треугольника сумма квадратов катетов равна квадрату гипотенузы). Подсказка: использовать полный перебор с трижды вложенными циклами.

11. Вычислить факториал числа n. n! = 1*2*…*n-1*n;

12. Вычислить среднее значение чисел, не являющихся простыми, в диапазоне от 1 до n.

13. Посчитать сумму цифр заданного числа

14. Вывести число, которое является зеркальным отображением последовательности цифр заданного числа, например, задано число 123, вывести 321.

15. Вставить цифру в число не прибегая к строковым преобразованиям.

Одномерные массивы

  1. Найти минимальный элемент массива
  2. Найти индекс максимального элемента массива
  3. Посчитать сумму элементов массива с нечетными индексами
  4. Найти наиболее часто встречающееся значение
  5. Сделать реверс массива (массив в обратном направлении)
  6. Найти все элементы, которые меньше среднего значения
  7. Обработать массив таким образом, чтобы сначала были элементы меньше среднего, потом больше
  8. Проверить является ли массив палиндромом?
  9. Посчитать количество нечетных элементов массива
  10. Найти все элементы массива, для которых делителем является хотя бы один из элементов массива.
  11. Поменять местами первую и вторую половину массива, например, для массива 1 2 3 4, результат 3 4 1 2
  12. Вывести элементы массива в следующем порядке: первый, последний, второй, предпоследний и т.д. Какие особые случаи необходимо обработать?
  13. Вывести элементы массива в следующем порядке: первый, средний, второй, средний + 1 и т.д.
  14. Заполнить массив из 100 элементов числами по следующей формуле Ai = (Ai-1*d)%m (A0,d,m – произвольные константы
  15. Отсортировать массив (пузырьком, выбором, вставками)
  16. Заполнить массив из 3*n элементов числами от 1 до n. Создать массив из n элементов, каждый из которых будет содержать количество вхождений (частоту) чисел от 1 до n в исходном массиве.

Функции

  1. Написать функцию, которая будет возвращать номер четверти, в которой находится точка с координатами (x,y). (координаты – аргументы функции)
  2. Написать функцию, которая возвращает факториал числа N (аргумент функции)
  3. Написать функцию, которая возвращает строковое название дня недели по номеру дня.
  4. Написать программу, которая выведет число N (от 0 до 1000), написанное прописью.
  5. Написать функцию, которая находит расстояние между двумя точками в двумерном декартовом пространстве.
  6. Написать функцию, которая возвратит строковое представление числа N(dec) в двоичном, шестнадцатеричном форматах.
  7. Написать, функцию, которая вернет число по строке с записью числа в двоичной форме.

Рекурсия

  1. Написать функцию рекурсивного расчета факториала числа.

N! = N * (N-1)!
Написать рекурсивную функцию расчета чисел Фибоначчи. Числа Фибоначчи рассчитываются по формуле:

F(i) = F(i-1) + F(i-2), F(0) = 1, F(1) = 1.
Построить диаграмму вызовов функции F.

Написать рекурсивную функцию, которая вычисляет a^n , где a,n – целые числа. (Подсказка: a^2n = (a^n)^2

Задачник JavaScript и jQuery от Трепачёва Дмитрия

Учебник JavaScript

Практика

Работа с DOM

Практика

Некоторые продвинутые вещи

Рекомендованное ES6

Некоторые видео могут забегать вперед, тк к этому месту учебника мы прошли еще не весь ES6. Просто пропускайте такие видео, посмотрите потом.

Регулярки

  • Урок №
    Введение, задач нет
  • Урок №
    Работа с регулярными
    выражениями. Глава 1.
  • Урок №
    Работа с регулярными
    выражениями. Глава 2.
  • Урок №
    Работа с регулярными
    выражениями. Глава 3.
  • Урок №
    Работа с регулярными
    выражениям. Глава 4.
  • Урок №
    Отличия
    от PHP версии

Разное

Работа с канвасом

  • Урок №
    Введение, задач нет
  • Урок №
    Основы
    работы с canvas
  • Урок №
    Продвинутая
    работа с canvas

Практика

  • урок исключен (мало материала), по аяксу скоро будет отдельный учебник (много материала)

Контекст

  • Урок №
    Введение, задач нет
  • Урок №
    Продвинутая
    работа с контекстом

Drag-and-Drop

  • Урок №
    Введение, задач нет
  • Урок №
    Основы
    работы с ООП
  • Урок №
    Наследование
    классов в JavaScript
  • Урок №
    Применение
    ООП при работе с DOM
  • Урок №
    Практика
    по ООП в JavaScript
  • Тут скоро будут еще уроки
    по функциональному и прототипному
    стилю ООП.

Практика по ООП

Ваша задача: посмотрите, попробуйте повторить.

Практика

Promise ES6

Библиотека jQuery

Тк. jQuery устаревает, объявляю эти уроки не обязательными и выношу в конец учебника (так по уровню уроки середины учебника, если что). В перспективе переедет в отдельный учебник по jq.

Данный раздел сайта содержит задачи по JavaScript+jQuery с начального уровня до продвинутого.

Учебник JavaScript

Практика

Работа с DOM

Практика

Некоторые продвинутые вещи

Рекомендованное ES6

Некоторые видео могут забегать вперед, тк к этому месту учебника мы прошли еще не весь ES6. Просто пропускайте такие видео, посмотрите потом.

Регулярки

  • Урок №
    Введение, задач нет
  • Урок №
    Работа с регулярными
    выражениями. Глава 1.
  • Урок №
    Работа с регулярными
    выражениями. Глава 2.
  • Урок №
    Работа с регулярными
    выражениями. Глава 3.
  • Урок №
    Работа с регулярными
    выражениям. Глава 4.
  • Урок №
    Отличия
    от PHP версии

Разное

Работа с канвасом

  • Урок №
    Введение, задач нет
  • Урок №
    Основы
    работы с canvas
  • Урок №
    Продвинутая
    работа с canvas

Практика

  • урок исключен (мало материала), по аяксу скоро будет отдельный учебник (много материала)

Контекст

  • Урок №
    Введение, задач нет
  • Урок №
    Продвинутая
    работа с контекстом

Drag-and-Drop

  • Урок №
    Введение, задач нет
  • Урок №
    Основы
    работы с ООП
  • Урок №
    Наследование
    классов в JavaScript
  • Урок №
    Применение
    ООП при работе с DOM
  • Урок №
    Практика
    по ООП в JavaScript
  • Тут скоро будут еще уроки
    по функциональному и прототипному
    стилю ООП.

Практика по ООП

Ваша задача: посмотрите, попробуйте повторить.

Рубрика: Java

Автор: Блинов, И.Н., Романчик, В. С.
Год: 2013
Издательство: «Четыре четверти»
ISBN 978-985-7058-30-3
Страниц: 896
Язык: Русский
Формат: PDF
Размер: 7 Mb

Автор: Гетц Брайан, Пайерлс Тим, Блох Джошуа, Боубер Джозеф, Холмс Дэвид, Ли Даг
Год: 2020
Издательство: Питер
ISBN 978-5-4461-1314-9
Страниц: 464
Язык: Русский
Формат: PDF
Размер: 7 Mb

Автор: Аллен Б. Доуни
Год: 2018
Издательство: Питер
ISBN 978-5-4461-0572-4
Страниц: 240
Язык: Русский
Формат: PDF
Размер: 13 Mb

Название книги: Легкий способ выучить Java
Автор: Пэйн Брайсон
Год: 2019
Издательство: Эксмо
ISBN 978-5-04-093540-6
Страниц: 400
Язык: Русский
Формат: PDF
Размер: 23 Mb

Название книги: Программирование на Java для начинающих
Автор: Майк МакГрат
Год: 2016
Издательство: Издательство «Э»
ISBN 978-5-699-85743-2
Страниц: 192
Язык: Русский
Формат: PDF
Размер: 5 Mb

Название книги: Основы программирования на Java: Для школьников и не только
Автор: Канель Евгений Гоrаевич, Фрайман Зэев
Год: 2019
Издательство: ЛЕНАНД
ISBN 978-5-9710-5765-9
Страниц: 200
Язык: Русский
Формат: PDF
Размер: 17 Mb

Название книги: Изучаем Java EE. Современное программирование для больших предприятий
Автор: Себастьян Дашнер
Год: 2018
Издательство: Питер
ISBN 978-5-4461-0774-2
Страниц: 384
Язык: Русский
Формат: PDF
Размер: 8 Mb

Название книги: Spring. Все паттерны проектирования
Автор: Раджпут Динеш
Год: 2019
Издательство: Питер
ISBN 978-5-4461-0935-7
Страниц: 320
Язык: Русский
Формат: PDF
Размер: 7 Mb

Название книги: Java в облаке. Spring Boot, Spring Cloud, Cloud Foundry
Автор: Джош Лонг, Кеннет Бастани
Год: 2019
Издательство: Питер
ISBN 978-5-4461-0713-1
Страниц: 624
Язык: Русский
Формат: PDF
Размер: 9 Mb

Название книги: Java: Задачи по основам программирования
Автор: Капель Евгений Гогаевич, Фрайман Зэев
Год: 2019
Издательство: ЛЕНАНД
ISBN 978-5-9710-5764-2
Страниц: 208
Язык: Русский
Формат: PDF
Размер: 18 Mb

Читать еще:  Язык программирования python для начинающих
Ссылка на основную публикацию
Adblock
detector