Java core для самых маленьких. часть 1. подготовка и первая программа
Содержание:
JCreator — простая среда разработки Java
Является одной из лучших сред разработки Java, которая предоставляет разработчикам интерактивный опыт разработки. В этом плане она предоставляет больше возможностей, чем любой другой редактор кода.
Развитием JCreator занимается IT-компания Xinox Software. IDE доступна в двух вариантах: Lite версия с ограниченными возможностями и Pro edition с полным набором функций.
JCreator включает в себя множество полезных функций:
- Интерфейс Easy Project Management похож на Visual Studio;
- Пользовательская цветовая схема для организации кода;
- Возможность настроить и использовать в проектах нескольких профилей JDK;
- Выбор шаблона проекта для быстрого запуска;
- Поддержка средств сборки и управления версиями, таких как Ant и CVS;
- Возможность запускать приложение как апплета с помощью JUnit или в терминале;
- Встроенные инструменты для вызова внешних функций и утилит. форматирование Java-кода, компилятор RMI.
При создании этой IDE должное внимание было уделено простоте использования, скорости, производительности и отличному пользовательскому интерфейсу. Во многом авторы ориентировались на Microsoft Visual Studio
Codiva for Java Online
Codiva.io is another excellent online compiler and editor, very close to real desktop IDE. It is the latest entrant in the game but is quite fast and easy to use. Some of the key highlights of Codiva are as below –
- Good syntax highlighting and autocomplete.
- Compilation happens in the background, after every few keystrokes. The error lines are highlighted within a second after typing the code.
- When running the code, the output is streamed. Unlike other IDEs, a Thread.sleep(5) actually waits 5 seconds. Reading from stdin is exactly like when you type in the command line.
- You can create multiple files and packages.
- Codiva projects can be embedded in your blog. So your users can directly run your sample code without leaving the browser.
Жизненный цикл Java-программы
Жизненный цикл Java-программы начинается с момента написания исходного кода в текстовом формате. Как правило, обычно для решения этой задачи используют специальные среды разработки (IDE), хотя простейшие программы вы сможете набрать и в текстовом редакторе (в том же Notepad, поставляемым с Windows).
Итак, у нас создаётся исходный код, который сохраняется в файле с расширением .java.
Вот пример первой простейшей программы HelloWorld.java, с которой начинают многие из новичков:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Это моя первая программа");
}
}
До того, как этот исходный код выполнится, произойдёт его компиляция в байт-код. Естественно, тут подключается компилятор, входящий в JDK. Благодаря его работе, мы получим файл, имеющий расширение .class. Этот файл содержит байт-код — то есть инструкции для JVM. Таким образом, написанная нами программа HelloWorld.java скомпилируется в файл HelloWorld.class.
При желании мы можем посмотреть байт-код, хотя платформа Java и не предусматривает наличие инструментов для редактирования такого кода. Тем не менее есть возможность использовать утилиту дизасcемблера javap, входящую в состав JDK. С её помощью мы увидим:
Compiled from "HelloWorld.java"
public class HelloWorld {
public HelloWorld();
Code
aload_0
1 invokespecial #1 // Method java/lang/Object."<init>":()V
4 return
public static void main(java.lang.String[]);
Code
getstatic #2//Fieldjava/lang/System.out:Ljava/io/PrintStream;
3 ldc #3// String This is my first program
5invokevirtual#4//Methodjava/io/PrintStream.println:(Ljava/lang/String;)V
8 return
}
Идём дальше. После написания и компиляции наша программа хранится в файле HelloWorld.class. Чтобы выполнить эту программу на любой из платформ, потребуется установленная JRE. А переносимость Java-программ на нужную платформу обеспечивается за счёт JVM.
Итак, мы плавно подошли к исполнению программы — выполнению байт-кода JVM. Вот как это реализуется:
1. На компьютере происходит запуск JVM.
2. Начальный загрузчик классов JVM загружает, а потом инициализирует наш класс в памяти ПК (для нашего примера — это класс HelloWorld).
3. Далее в нашем классе JVM выполняет поиск метода public static void main(String[]).
4. Потом происходит выполнение кода метода main. Если нужно, осуществляется загрузка и инициализация прочих классов.
5. После выполнения кода производится уборка мусора (очистка памяти и закрытие программы JVM).
По результатам выполнения вышеописанных действий JVM интерпретирует байт-код в машинную инструкцию для процессора, учитывая тип ОС. Весь жизненный цикл программы на Java можно представить схематично:
Посещаемость
Просмотры66 540≈ 2 642 в день
Отказы #%
Время на сайте # мин.
Глубина просмотра #
Источники трафика
| Поисковые системы | ### |
| Прямые заходы | ### |
| Ссылки на сайтах | ### |
Социальный трафик
| youtube.com | ≈ % |
| Другое | ≈ % |
Рейтинг по трафику
865 722
Место в мире
63 811
Место в стране
География посетителей
| Россия | 0% |
| Беларусь | 0% |
Похожие сайты
| javarush.ru | 0% |
| proselyte.net | 0% |
| java-course.ru | 0% |
| javastudy.ru | 0% |
| java-master.com | 0% |
История счётчиков
Счётчики не найдены
Тест показывает активные и отключенные ранее счетчики систем статистики и связанные с ними сайты. Эта информация может быть полезна в случае, если у конкурента есть неизвестные вам проекты, управление статистикой которых происходит с одного аккаунта — вы сможете их найти. Если в вашими счетчиками что-то пойдет не так, вы также можете это увидеть.
Веб-студии иногда самостоятельно устанавливают счетчики на сайты клиентов и управляют ими с того же аккаунта, что и счетчиком своего сайта. Вы можете сделать анализ сайта студии и благодаря этому тесту узнать, кто ее клиенты.
Обновлено 09.08.2021 18:56
История IP-адресов
Мы нашли 1 IP-адрес, связанный с сайтом
| IP-адрес | Найден | Исчез | Связанные сайты |
|---|---|---|---|
| 94.127.67.18 | 25.11.2019 | — |
IP-адреса, найденные когда-либо на сайте. А также сайты, у которых обнаружен такой же IP-адрес.
Обновлено 09.08.2021 18:56
Счетчики вызовов методов и итераций циклов
Главным фактором влияющим на решение JVM о компиляции какого-либо кода является частота его исполнения. Решение принимается на основе двух счетчиков: счетчика количества вызовов метода и счетчика количества итераций циклов в методе.
Когда JVM исполняет какой-либо метод, она проверяет значения этих двух счетчиков, и принимает решение о необходимости его компиляции. У этого типа компиляции нет официального названия, но часто его называют стандартной компиляцией.
Аналогично, после каждой итерации цикла проверяется значение счетчика цикла и принимается решение о необходимости его компиляции.
При выключенной многоуровневой компиляции стандартная компиляция управляется параметром -XX:CompileThreshold. Значением по умолчанию является 10000. Несмотря на то, что параметр всего один, превышение порога определяется суммой значений двух счетчиков. В настоящее время этот флаг ни на что не влияет (многоуровневая компиляция включена по умолчанию), но знать о нем полезно, ведь существует довольно много унаследованных систем.
Ранее уменьшением значения этого параметра добивались ускорения старта приложения при использовании серверного компилятора, поскольку это приводило к более ранней компиляции кода. Также уменьшение его значения могло способствовать компиляции методов, которые иначе никогда бы не скомпилировались.
Последнее утверждение довольно интересно. Ведь если программа исполняется бесконечно, не должен ли весь ее код в конце концов скомпилироваться? На самом деле не должен, поскольку значения счетчиков не только увеличиваются при каждом вызове метода или итерации цикла, но и периодически уменьшаются. Таким образом, они являются отражением текущего «нагрева» метода или цикла.
Получается, что до внедрения многоуровневой компиляции методы, выполнявшиеся довольно часто, но недостаточно часто, чтобы превысить порог, никогда бы не были скомпилированы. В настоящее время такие методы будут скомпилированы компилятором C1, хотя, возможно, их производительность была бы выше, будь они скомпилированы компилятором C2. При желании можно поиграть параметрами -XX:Tier3InvocationThreshold (значение по умолчанию 200) и -XX:Tier4InvocationThreshold (значение по умолчанию 5000), но вряд ли в этом есть большой практический смысл. Такие же параметры (-XX:TierXBackEdgeThreshold) существуют и для задания пороговых значений счетчиков циклов.
Профессия «Java-программист» от Хекслет
Курс для новичков и тех, кто начал учиться самостоятельно и собирается систематизировать свои знания. Обучение состоит из записанных видео лекций, вебинаров с преподавателями и практики на тренажерах. Во время обучения вы создадите рабочие проекты, которые можно добавить в портфолио.
Преимущества:
- Стажировка с реальными проектами.
- Возможность совмещать с работой: нет привязки к расписанию, вебинары можно смотреть в записи.
- Создание портфолио и резюме, помощь в трудоустройстве.
- Преподаватели и наставники являются практикующими специалистами в Tinkoff, Leroy Merlin, Dats.Team и OpenWay.
- Школа выдает сертификат.
- В первые 2 недели обучения при отказе можно вернуть всю стоимость.
Программа обучения:
- Java Core. Установка и настройка, реализация алгоритмов, освоение командной строки и Git.
- Алгоритмы и структуры данных. Изучение структур для хранения и обработки данных, знакомство с java automation, навыки обхода коллекций и выполнения агрегирующих операций.
- ООП. Создание классов, описание иерархии, знакомство с аннотациями, навыки работы с исключениями.
- Веб-технологии. Создание сайта, освоение принципов роутинга HTTP-запросов и формирования ответов, подключение базы данных.
- Java Spring Boot. Сборка веб-приложения.
Скачать Java бесплатно
Скачать на компьютер последнюю версию Java 8 можно бесплатно на этой странице. А также на официальном сайте, кликнув по кнопке Java download, или через торрент. Также можно загрузить Java для телефона. Кроме последней версии ПО для Windows, Linux или Mac, у нас вы скачаете старые версии для Vista или XP (Java 6, 7 и другие).
Регулярно выходят обновления программы, содержащие исправления и дополнения
Поэтому важно следить, чтобы на компьютере была установлена актуальная Джава. В противном случае, программы или игры написанные на новой версии языка, не смогут работать на вашем компьютере с устаревшей версией Java
Версии Java
Существуют 32- и 64-битные версии. Нужно скачивать и устанавливать Java на компьютер той же разрядности, что и операционная система, чтобы сайты, игры и приложения корректно работали на устройстве с соответствующей разрядностью ОС.
Как узнать разрядность Windows:
- Откройте «Пуск».
- Выполните правый клик мыши на кнопке «Компьютер» или «Мой компьютер» (для Windows XP, 7,8).
- Выберите в контекстном меню «Свойства». В строке «Тип системы» указана разрядность ОС.
Для Windows 10: откройте проводник, выполните правый клик мыши на ярлыке «Этот компьютер». В контекстном меню выберите «Свойства».
Найдите тип системы в перечне сведений.
Для скачивания, установки платформы и нормальной работы программного обеспечения Java, компьютер должен соответствовать заданным параметрам.
Системные требования:
| Операционная система | Windows Server, Vista, 7, 8, 10 |
| Mac OS X 10.8.3+, 10.9+ | |
| Linux: Oracle, Red Hat Enterprise, Suse Enterprise Server, Ubuntu | |
| Браузер | Internet Explorer 9 и выше |
| Firefox | |
| 64-битный | |
| Оперативная память | Не менее 128 Мб |
| Свободное место на диске | 124 Мб и 2 Мб для обновления |
Пошаговая инструкция по установке Java на ПК
- На нашем сайте выберите необходимую версию, например для Windows, чтобы загрузить Java на компьютер.
- Примите условия лицензионного соглашения для продолжения скачивания.
- После того как скачаете файл, запустите установку двойным кликом по файлу.
- После запуска мастера установки (на английском языке) нажмите Install.
- Щелкните OK.
- Дождитесь окончания установки и нажмите Close.
Чтобы изменения вступили в силу, потребуется перезагрузка ПК. Если у вас была установлена более ранняя версия, то перед тем как скачать и переустановить программу, старую версию удалять не обязательно.
https://youtube.com/watch?v=7fkUJTjt1XA
Видео: Установка Java 32 bit и 64 bit на компьютер.
Чему вы обучитесь на наших Java курсах
Всем фундаментальным основам программирования: от отличительных особенностей языка, синтаксиса Java для начинающих с упражнениями до механизмов сериализации, клонирования, многопоточного программирования на Java и ее синхронизации. Изученные материалы и выполненные практические задания для портфолио позволят вам начать поиск работодателя, а найдя его приступить к работе в позиции junior developer.
Более подробную информацию можно получить на странице плана курса Java программирование.
Специалисты считают Java одним их дружественных, доступных для обучения языков программирования. Каждый урок курса включает в себя вопросы, тесты и домашние задания, что гарантирует 100% усвоение материалы. Пройдя тест, вы увидите, какие темы необходимо повторить и чему уделить больше внимания.
Пройденные видеоуроки по Java для начинающих станут первой ступенью для дальнейшего обучения программированию. Вы можете выбрать одно из следующих направлений для дальнейшего обучения: мобильные приложения на Android, корпоративные и клиентские приложения, автоматизация тестирования и тех.поддержка. Можете выбрать направление веб-разработки, начинающееся с небольших коммерческих проектов и заканчивающееся масштабными международными порталами и государственными ресурсами. Еще одна интересная сфера — разработка игр. Например, на языке Java написан Minecraft.
Main project code
Main code is in the src/main/java folder.
- conversions: Represents the type conversions present in the java language, and the steps required to convert between types.
- helper: Classes that are used throughout many different steps are included here.
- intermediate: Classes that represent statements in the intermediate language designed and implemented by this compiler.
- javaLibrary: Uses reflection to type-check java library function calls.
- main: The class that has the parser, as well as the entry point for this program.
- tree: Classes that represent parts of the parse tree.
- x64: Classes used to represent 64-bit Intel/AMD assembly. These are broken up into:
- allocation: Classes to decide how to turn pseudo instructions into real ones.
- directives: Directions for the assembler on how to write object code.
- instructions: Instructions with hardware registers for the CPU to run.
- jni: Java Native Interface operations; used for interacting with the JVM for either JDK API calls or program management.
- operands: Operands used in instructions / pseudo instructions; what those operate on (registers, memory, …)
- pseudo: Classes to represent an almost x64 assembly, but with unlimited registers.
RemoteInterview.io
Remoteinterview.io focuses specifically on the needs of the interviewers and offers features to ease out the interviewing process. To conduct an interview, sessions can be created and shared with the candidates, who can complete the coding live in the browser. You can see the execution of the code and any errors. Issues to evaluate the candidate.
The Java Editor and IDE offered by Remove interview can be used for pair programming, interviewing java coders, without the need for any installations. It can also be used to share java code snippets across.
CodeBunk is another one in the same category as RemoteInterview.io and offers more or less the same kind of features.
Типичные ошибки компиляции и запуска Java программ
Команда javac не найдена
Если при запуске javac, т.е. при попытке компиляции Java программы вы получаете ошибку:
"javac" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Это означает, что JDK не установлен. Либо установлен, но не настроены переменные окружения. Способы исправления очевидны:
- установить JDK
- настроить переменные окружения
Если JDK установлен, то можно обойтись без добавления переменной окружения. Для этого используйте абсолютный путь до исполнимого файла javac:
C:\Program Files\Java\jdk1.8.0_131\bin\javac.exe программа_для_компиляции.java
Ошибка Class names are only accepted if annotation processing is explicitly requested
Если попытаться скомпилировать программу следующим образом:
"C:\Program Files\Java\jdk1.8.0_131\bin\javac.exe" Welcome2
то возникнет ошибка:
error: Class names, 'Welcome', are only accepted if annotation processing is explicitly requested 1 error
Причина ошибки в том – что вы забыли указать расширение файла .java.
Ошибка записи (error while writing)
Запуск компиляции:
C:\Users\Alex>"C:\Program Files\Java\jdk1.8.0_131\bin\javac.exe" C:\Welcome.java
Компиляция заканчивается ошибкой:
C:\Welcome.java:1: error: error while writing Welcome: C:\Welcome.class (╬Єърчрэю т фюёЄєях)
public class Welcome {
^
1 error
Причина ошибки в том, что у компилятора (javac) недостаточно прав на запись в тот каталог, куда он пытается сохранить новый файл .class. Чтобы ошибка исчезла: предоставьте компилятору дополнительные права (запустите от имени администратора), либо сохраняйте в папку, на которую у текущего пользователя имеются права записи.
Ошибка «class is public, should be declared in a file named»
Запуск компиляции
"C:\Program Files\Java\jdk1.8.0_131\bin\javac.exe" C:\Welcome.java
который заканчивается примерной такой ошибкой
C:\Welcome.java:1: error: class Welcomee is public, should be declared in a file named Welcomee.java
public class Welcomee {
^
1 error
означает, что вы неправильно назвали класс в исходном коде программы. Имя класса должно совпадать с именем файла. В данном случае файл называется Welcome.java, а класс внутри программы назван Welcomee
Error: Could not find or load main class
Если попытаться запустить программу следующим образом:
java Welcome.class
то возникнет ошибка
Error: Could not find or load main class Welcome.class
Причина её в том, что не нужно было добавлять к названию файла расширение .class. Виртуальная машина автоматически добавляет расширение и в приведённом примере она ищет файл Welcome.class.class
Ошибка Error: Could not find or load main class при запуске Java программы по абсолютному пути
Эта ошибка возможно при запуске Java программы по абсолютному пути:
java C:\Welcome
Будет выведено:
Error: Could not find or load main class C:\Welcome
Ошибка возникает как в Windows, так и в Linux:
java /home/mial/Welcome Error: Could not find or load main class .home.mial.Welcome
Если в терминале вы находитесь в той же директории, что и файл, который вы запускаете, то не нужно указывать абсолютный путь. Например, нужно запускать так:
cd C:\ java Welcome
Если же вы находитесь в другой директории, то нужно использовать опцию -cp, после которой указать путь до каталога, где размещена запускаемая программа. А далее указать запускаемый файл без расширения .class:
java -cp C:\ Welcome
Как видно из скриншота, командная строка находится в папке C:\WINDOWS\system32. Файл, который нам нужно запустить, находится в папке C:\ (корень диска). Мы указываем после ключа -cp папку C:\, а затем пишем имя файла программы без расширения – Welcome.
Аналогично нужно поступать в Linux. Пример команды:
java -cp /home/mial/ Welcome
Ошибка Main method not found in class
Если при запуске вы столкнулись с ошибкой:
Error: Main method not found in class Welcome, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application
Это означает, что вы не указали метод main, либо написали слово неправильно (например, Main вместо main).
Потоки компиляции
Как только JVM решает скомпилировать метод или цикл, они помещаются в очередь. Эта очередь приоритетная — чем выше значения счетчиков, тем выше приоритет. Это особенно помогает при старте приложения, когда необходимо компилировать огромное количество кода. Таким образом, более важный код будет скомпилирован раньше.
Компиляторы C1 и C2 имеют собственные очереди, каждая из которых может обрабатывается несколькими потоками. Существует специальная формула для вычисления количества потоков в зависимости от количества ядер. Некоторые значения приведены в таблице:
|
Количество ядер |
Количество потоков C1 |
Количество потоков C2 |
|
1 |
1 |
1 |
|
2 |
1 |
1 |
|
4 |
1 |
2 |
|
8 |
1 |
2 |
|
16 |
2 |
6 |
|
32 |
3 |
7 |
|
64 |
4 |
8 |
|
128 |
4 |
10 |
Задать произвольное количество потоков можно параметром -XX:CICompilerCount. Это общее количество потоков компиляции, которое будет использовать JVM. При включенной многоуровневой компиляции одна треть из них (но минимум один) будут отданы компилятору C1, остальные достанутся компилятору C2. Значением по умолчанию для этого флага является сумма потоков из таблицы выше. При выключенной многоуровневой компиляции все потоки достанутся компилятору C2.
В каком случае имеет смысл менять настройки по умолчанию? Ранние версии Java 8 (до update 191) при запуске в Docker контейнере не корректно определяли количество ядер. Вместо количества ядер, выделенных контейнеру определялось количество ядер на сервере. В этом случае есть смысл задать количество потоков вручную, исходя из значений, приведенных в таблице выше.
Аналогично, при запуске приложения в одноядерной виртуальной машине может оказаться предпочтительнее иметь только один поток компиляции, чтобы избежать борьбы за процессорное время. Но надо иметь ввиду, что выгода от наличия всего одного потока проявляется только при старте и «прогреве» приложения, после этого количество методов, ожидающих компиляцию, будет не велико.
Еще один параметр, влияющий на количество потоков компиляции — это -XX:+BackgroundCompilation. Его значение по умолчанию — true. Он означает, что компиляция должна происходить в асинхронном режиме. Если установить его в false, каждый раз при наличии кода, который необходимо скомпилировать, JVM будет ожидать завершения компиляции, прежде чем этот код исполнить.
ТОП-15 бесплатных курсов по Java
Теперь бесплатные курсы по Java, которые также отлично подойдут для начинающих программистов.
#1. Программирование на Java с нуля (BeOnMax)
Начнем мы с крутого бесплатного курса от BeOnMax, который будет понятен даже школьнику.
Он состоит из 29 видеоуроков общей продолжительностью примерно в 6 часов.
Кому подойдет:
- Новичкам,
- Школьникам,
- Начинающим Java-программистам.
Чему научитесь:
- Разработка программ на языке Java,
- Синтаксис языка Java,
- Переменные, типы данных, работа со строками,
- Основные конструкции — циклы и условия,
- Массивы,
- И т. д.
У этого видеокурса много положительных отзывов и опытный преподаватель — Андрей Сумин (Android Middle Developer).
Пройти бесплатно можно только часть, за остальное придется оплатить подписку (цена где-то 600 рублей, но там проходят постоянные акции).
Длительность обучения: 6 часов Цена: бесплатно
#2. JavaRush — интерактивный онлайн-курс обучения Java
Очень крутая платформа для обучения Java, которая на 80% состоит из практики.
Суть проста: вы изучаете лекции, смотрите видеоуроки и выполняете задания.
Кому подойдет:
- Новичкам,
- Школьникам,
- Начинающим Java-программистам.
Начать стоит с освоения бесплатного материала. Потом можно взять подписку за 1800 или 3000 руб. в месяц.
Длительность обучения: 500+ часов Цена: бесплатно
#3. Java для начинающих (GeekBrains)
Бесплатный онлайн-интенсив «Java для начинающих» от онлайн-университета GeekBrains.
Кому подойдет:
- Новичкам,
- Школьникам и студентам,
- И всем, кто хочет начать осваивать язык Java.
Длительность обучения: 2 часа Цена: бесплатно
#4. Введение в Java (Хекслет)
Практический курс от Хекслет по обучению Java с нуля.
Кому подойдет:
- Новичкам,
- Школьникам и студентам,
- И всем, кто хочет начать осваивать язык Java.
Длительность обучения: 40 часов Цена: бесплатно
#5. Java. Базовый курс (Stepik)
Хороший курс, рассчитанный на 2-4 часа в неделю.
Состоит из 23 уроков, 5 часов видеоматериалов, 64 тестов, 34 интерактивных задач.
Кому подойдет:
- Школьникам и студентам (кто уже имеет опыт в программировании на одном из императивных ЯП),
- И всем, кто хочет начать осваивать язык Java.
Длительность обучения: ~неделя Цена: бесплатно
#6. Java. Быстрый старт (GeekBrains)
Небольшой видеокурс, в процессе которого вы освоите азы Java и научитесь писать простые приложения.
Кому подойдет:
Длительность обучения: 9 уроков Цена: бесплатно
#7. Изучение Java, Angular, Spring, Hibernate (JavaBegin)
Бесплатный курс по Java и фреймворкам от Тимура Батыршинова — разработчика на Java с 14-летним опытом.
Кому подойдет:
Длительность обучения: 5 курсов Цена: бесплатно
#8. Видеокурс «Java для начинающих» (ItProger)
Бесплатный видеокурс от Гоши Дударя — основателя ItProger.
Кому подойдет:
Длительность обучения: 24 урока Цена: бесплатно
#9. Уроки Java (Видеокурс)
Плейлист из 405 видеоуроков по Java от преподавателя из Udemy.
Длительность обучения: 405 уроков Цена: бесплатно
#10. Бесплатный курс «Введение в Java» (Технострим Mail.Ru Group)
Плейлист состоит из 11 видеоуроков по Java. Каждый примерно по 2-2.5 часа.
Длительность обучения: 11 уроков Цена: бесплатно
#11. Бесплатный курс «Разработка на Java» (Технострим Mail.Ru Group)
Плейлист из 14 уроков, каждый примерно по часу.
Длительность обучения: 14 уроков Цена: бесплатно
#12. Бесплатный курс «Разработка приложений на Java» (Хекслет)
Плейлист состоит из 17 видеоуроков. Каждый по 30-40 минут.
Длительность обучения: 17 видео Цена: бесплатно
#13. Курс по Java от Академии IT
Бесплатный курс по Java от Академии IT, который отлично подойдет для новичков.
Имеет вполне неплохой рейтинг.
Кому подойдет:
Длительность обучения: 112 уроков Цена: бесплатно
#14. Курс «Java Professional» от Академии IT
Еще один бесплатный курс по Java от Академии IT, рассчитанный уже на более опытных программистов.
Кому подойдет:
Длительность обучения: 14 уроков Цена: бесплатно
#15. Базовый курс по основам программирования на Java (IT-Academy)
Бесплатный базовый курс по Java от белорусской школы IT-Academy.
Кому подойдет:
Длительность обучения: 6 уроков Цена: бесплатно