Vyatka-sputnik.ru

Курсы и образование
2 просмотров
Рейтинг статьи
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, самое интересное добавим в статью.

Задачи с решениями на 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, мы настроим его работу:

  1. создадим переменную счетчик со значением 0.
  2. зададим условие, до каких пор будет работать цикл. Цикл работает, пока значение счетчика меньше длины массива.
  3. задаем шаг для счетчика, при каждом повторе, значение счетчика будет увеличиваться на 1. Когда условие, что i меньше длины массива, перестанет быть правдой, цикл закончит свою работу.

let answers = [];
questions = [
‘Как вас зовут?’,
‘Кто вы по профессии?’,
‘Где вы работаете?’
];

В фигурных скобках (теле цикла), указываются инструкции, которые должны выполнятся, при новом витке цикла. Мы говорим программе: При каждом проходе цикла, запрашивай у пользователя ответ на вопрос, и полученный ответ записывай в переменную answer. Когда вопросы закончатся, то цикл сам остановится и выведет на страницу все ответы. Правильно настроенный цикл, делает всю рутинную работу за программиста.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 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. Найти наиболее часто встречающееся значение
    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

    Читать еще:  Английский язык 4 класс учить онлайн
    Ссылка на основную публикацию
    Adblock
    detector