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, самое интересное добавим в статью.
Задачи с решениями на JS
Изучать программирования без решения практических задач, не имеет никакого смысла. Вам не нужна теория, просто ради теории и работодателю тоже. Ведь не зря на собеседовании, просят решить какую-нибудь задачу. Вам нужно понимать, что практическое закрепление теории, находится в зоне вашей ответственности.
Задача на создание примитивного калькулятора на JS
Запросите у пользователя ввести два числа и верните ему сумму этих двух чисел. Для решения используйте функции: prompt и parseInt.
Решение задачи:
В переменные a и b запишутся, введенные пользователем числа в поля ввода модальных окон. Если пользователь введет строку или число с дробной частью, то функция parseInt преобразует их к целым числам. Команда alert выведет результат сложения двух чисел.
let a = prompt(«Введите первое число:»); // ввели число
a = parseInt(a); // преобразовали к целому числу
let b = prompt(«Введите второе число:»); // ввели число
b = parseInt(b); // преобразовали к целому числу
alert(a+b); // вывели результат сложения
Задача на ветвление (if-else) на JS
Реализуйте алгоритм: участнику викторины задается 2 вопроса. За каждый правильный ответ начисляется 1 балл. Подсчитать и вывести количество правильных ответов на экран.
Решение задачи:
Заведем две переменные для исходных данных: для счетчика баллов (point) и ответов от участника (answer). Пока в нашем счетчике лежит 0 баллов, а переменная для ответов — пустая. Функция prompt вызывает окно с вопросом и поле для ввода ответа. Введенный участником ответ попадаете в переменную answer. Программа сравнивает (==) правильный ответ с ответом участника. Если (if) ответ правильный, то программа пойдет по одной ветке: выведет окно с текстом ‘Верно’ и увеличит счетчик на единицу (0 + 1 = 1). В противном случае (else), если ответ неправильный, то программа пойдет по другой ветке и выведет окно с текстом ‘Неверно!’.
Точно так же программа обработает второй вопрос. В итоге в переменной point может оказаться от 0 до 2 баллов, это зависит от количества правильных ответов.
let point = 0;
let answer = «»;
answer = prompt(«Какую птицу называют лесным доктором?»);
if (answer == «дятел») <
alert(«Верно»);
point = point + 1; // сокращенная запись point++
>else <
alert(«Неверно!»);
>
answer = prompt(«Самое глубокое пресноводное озеро в мире?»);
if (answer == «Байкал») <
alert(«Верно»);
point = point + 1; // point++ >else <
alert(«Неверно!»);
>
alert(«Вы набрали: » + point + » баллов»);
Наверняка вы заметили, что в задаче на ветвления для каждого вопроса повторяется один и тот же блок кода. А что если вопросов будет больше, то код программы разрастется до гигантских размеров. Чтобы такого не произошло, в программировании придумали циклы.
Цикл — это набор команд, который может повторно выполняться пока заданное условие верно, возвращает истину.
Задача на циклы и массивы на JS
Напишите программу, которая будет задавать вопросы пользователю и затем выведет ответы на странице. Для решения используйте функцию prompt и цикл for.
Решение задачи:
Мы не будем помещать каждый вопрос в отдельную переменную, а создадим массив из вопросов и присвоим его одной переменной. Ещё создадим пустой массив для ответов.
В круглых скобках цикла for, мы настроим его работу:
- создадим переменную счетчик со значением 0.
- зададим условие, до каких пор будет работать цикл. Цикл работает, пока значение счетчика меньше длины массива.
- задаем шаг для счетчика, при каждом повторе, значение счетчика будет увеличиваться на 1. Когда условие, что i меньше длины массива, перестанет быть правдой, цикл закончит свою работу.
let answers = [];
questions = [
‘Как вас зовут?’,
‘Кто вы по профессии?’,
‘Где вы работаете?’
];
В фигурных скобках (теле цикла), указываются инструкции, которые должны выполнятся, при новом витке цикла. Мы говорим программе: При каждом проходе цикла, запрашивай у пользователя ответ на вопрос, и полученный ответ записывай в переменную answer. Когда вопросы закончатся, то цикл сам остановится и выведет на страницу все ответы. Правильно настроенный цикл, делает всю рутинную работу за программиста.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.
Java онлайн для разработчиков
На сайте представлены самые важные и необходимые Java разработчику темы и технологии, фреймворки и библиотеки, утилиты и инструменты разработки. Огромное количество информации сопровождается многочисленными примерами. Информация структурирована по разделам и может быть использована в качестве справочного пособия java online.
Раздел «Java SE»
В разделе Java SE приводится базовая информация, которая используется в различных технологиях Java как для разработки desktop’ных и WEB приложений, так и мобильных приложений :
- Объектно-ориентированное программирование — классы и интерфейсы, объекты и методы, наследование-полиморфизм-инкапсуляция;
- Различные типы данных — целочисленные, вещественные, строковые, массивы, Date, Calendar, Enum, Generic;
- Наборы различных коллекций — Collection, ArrayList, LinkedList, Map, Set;
- Ввод и вывод информации — файлы и директории, InputStream, OutputStream, Reader, Writer;
- Оформление java кода — локализация и интернационализация (i18n, l10n), документирование кода javadoc, аннотирование кода annotation;
- События и слушатели : Listener и Adapter;
- Перехват исключений : try. catch;
- Загрузчики кода : classloader;
- Рефлексия кода : reflection;
- Многопоточное программирование : Thread, Runnable, Concurrent.
Информация в разделе детализирована большим количеством примеров и представлена как java для начинающих или java с нуля.
Раздел «Java WEB»
Для разработчиков интернет/интранет сайтов в разделе Java WEB представлены такие технологии Java Enterprise Edition (Java EE) и фреймворки, как
- JavaServer Page JSP;
- Сервлеты Servlet;
- Фреймворк Struts2;
- Фреймворк JSF (JavaServer Faces);
- Фреймворк GWT (Google Web Toolkit);
Данный сайт выполнен в технологии Java EE с использованием фреймворка JSF.
Раздел «JDBC / SQL»
Для работы с базой данных в раздел JDBC / SQL включены
- описание пакета java.sql, реализующего Java DataBase Connectivity JDBC :
- класс DriverManager;
- класс подключения Connection;
- пул подключениий PoolConnection;
- классы Statement, PreparedStatement, CallableStatement;
- результаты запроса ResultSet.
- JDBC пример (oracle, ms sql, postgresql, mysql, derby).
- язык структурированных запросов Structured Query Language SQL, включающий синтаксис :
- создания базы данных Database и схемы Schema;
- создания, обновления и удаления таблицы Table и индекса Index, Sequence;
- создания и использования генератора последовательностей Sequence;
- создания и удаления представления View;
- создания и удаления хранимой процедуры Procedure и функции Function;
- создания и удаления триггера Trigger;
Раздел «Библиотеки»
В разделе Библиотеки размещена информация для разработки
- интерфейсной части desktop’ных приложений (Java Standart Edition Java SE) :
- описание компонентов библиотеки SWT (Standart Widget Toolkit);
- описание компонентов библиотеки Swing;
- Java десктопных и WEB приложений с использованием библиотеки Hibernate, предназначенной для решения задач объектно-реляционного отображения (object-relational mapping — ORM).
Раздел «Сборка проекта»
В разделе Сборка проекта размещается информация, связанная с подготовкой и выпуском очередного релиза приложения с использованием фреймворка Maven, библиотеки Ant и библиотекой для модульного тестирования JUnit.
Раздел «Просто о сложном»
В разделе Просто о сложном размещается информация, более востребованная для профессиональной разработки программного обесечения. Основной упор делается на такие технологии как EJB (Enterprise JavaBeans) и OSGi (Open Services Gateway Initiative) и всё, что с ними связано.
Раздел «Безопасность»
В разделе Безопасность размещается информация, связанная с безопасностью и защитой информации. В разделе рассматриваются вопросы сериализации объектов и формирования их hash-кода, создания электронных-цифровых подписей и использование цифровых сертификатов для защиты информации в компьютерных сетях.
Раздел «Android»
В разделе Android представлены среда разработки Android Studio и описание с примерами разработки Android приложений.
Обучение java online, java для начинающих
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, результат 3 4 1 2
- Вывести элементы массива в следующем порядке: первый, последний, второй, предпоследний и т.д. Какие особые случаи необходимо обработать?
- Вывести элементы массива в следующем порядке: первый, средний, второй, средний + 1 и т.д.
- Заполнить массив из 100 элементов числами по следующей формуле Ai = (Ai-1*d)%m (A0,d,m – произвольные константы
- Отсортировать массив (пузырьком, выбором, вставками)
- Заполнить массив из 3*n элементов числами от 1 до n. Создать массив из n элементов, каждый из которых будет содержать количество вхождений (частоту) чисел от 1 до n в исходном массиве.
Функции
- Написать функцию, которая будет возвращать номер четверти, в которой находится точка с координатами (x,y). (координаты – аргументы функции)
- Написать функцию, которая возвращает факториал числа N (аргумент функции)
- Написать функцию, которая возвращает строковое название дня недели по номеру дня.
- Написать программу, которая выведет число N (от 0 до 1000), написанное прописью.
- Написать функцию, которая находит расстояние между двумя точками в двумерном декартовом пространстве.
- Написать функцию, которая возвратит строковое представление числа N(dec) в двоичном, шестнадцатеричном форматах.
- Написать, функцию, которая вернет число по строке с записью числа в двоичной форме.
Рекурсия
- Написать функцию рекурсивного расчета факториала числа.
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