Java пошаговое руководство

Юрий Пономарев

Юрий Пономарев


консультант по программным продуктам Oracle Центра технической поддержки компании РДТЕХ

Java – один из самых востребованных языков программирования в мире и один из двух официальных языков программирования, используемых в разработке Android (другой – Kotlin). Разработчики, знакомые с Java, весьма востребованы и способны создавать широкий спектр различных приложений, игр и инструментов. С помощью этой краткой статьи по Java для начинающих вы сможете сделать свои первые шаги к тому, чтобы стать одним из таких разработчиков. Мы рассмотрим все, что вам нужно знать, чтобы начать работу, и поможем вам создать свое первое простое приложение.

Java-это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems в 1990-х годах (позже купленной Oracle).

Понятие «объектно-ориентированный» относится к способу написания структурного кода Java, а именно: разделение кода на так называемые «классы», которые запускаются вместе, чтобы обеспечить согласованное порождение объектов. Мы обсудим это позже, но достаточно сказать, что это приводит к универсальному и организованному коду, который легко редактировать и перепрофилировать.

Java находится под влиянием C и C++, поэтому она имеет много общего с этими языками (и C#). Одним из больших преимуществ Java является то, что он «платформенно-независимый». Это означает, что код, который вы пишете на одной платформе, можно легко запустить на другой. Это называется принципом «пишем один раз, запускаем где угодно» (хотя на практике это не всегда так просто, как кажется).

Чтобы запустить и использовать Java, вам нужно три вещи:

  • JDK – Java Development Kit
  • JRE – Java Runtime Environment
  • JVM – Java Virtual Machine

Виртуальная машина Java (JVM) гарантирует, что у ваших приложений Java есть доступ к минимальным ресурсам, необходимым для их запуска. Именно благодаря JVM программы Java так легко запускаются на разных платформах.

Среда исполнения Java (JRE) предоставляет собой «контейнер» для всех этих элементов и кода для запуска приложения. JDK – это «компилятор», который интерпретирует сам код и выполняет его. В JDK также есть инструменты разработчика, необходимые для написания кода Java (как и следует из названия).

Хорошая новость заключается в том, что разработчикам нужно только позаботиться о загрузке JDK, поскольку он поставляется вместе с двумя другими компонентами.

Как начать писать на Java

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

Вы можете получить последнюю версию JDK непосредственно с сайта Oracle. Как только вы установите его, ваш компьютер будет иметь возможность понимать и запускать код на Java. Тем не менее, вам все равно понадобится некоторое вспомогательное ПО, чтобы было действительно удобно писать код. Это так называемая «интегрированная среда разработки» или IDE: интерфейс, используемый разработчиками для ввода текста кода и вызова JDK.

При разработке для Android вы будете использовать IDE Android Studio. Она не только послужит интерфейсом для кода на Java (или Kotlin), но и станет мостом для доступа к специфичным для Android вызовам из SDK.

Для целей нашего краткого руководства по Java может быть и проще написать свой код непосредственно в приложении-компиляторе Java. Они могут быть скачаны для Android и iOS, можно даже найти веб-приложения, которые работают в вашем браузере. Эти инструменты предоставляют все необходимое в одном месте и позволяют сразу начать тестирование кода. Например, compilejava.net.

Насколько легко научиться программированию на Java?

Если вы новичок в разработке на Java, то ваши опасения вполне понятны. Так насколько же легко изучить Java?

Этот вопрос имеет несколько субъективную природу, но лично я бы отнес Java к языкам, не самым простым для изучения. Хотя он проще, чем C++, и часто описывается как более удобный для пользователя, но он, безусловно, не столь прост, как такие его конкуренты, как Python или BASIC, которые больше подходят для изучения начинающим программистам.

C# также немного проще по сравнению с Java, хотя они очень похожи.

Конечно, задавшись конкретной целью – стать разработчиком приложений для Android, – проще всего сразу начать с языка, который уже поддерживается этой платформой.

У языка Java есть свои особенности, но его, безусловно, можно изучить, и как только вы его освоите, вам откроется множество возможностей. А поскольку Java имеет много общего с C и C#, вы сможете перейти на эти языки без особых усилий.

Каков синтаксис Java?

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

Синтаксис Java относится к способу написания конкретных алгоритмов. Java очень принципиален в этом вопросе, и, если вы не пишете код определенным образом, то ваша программа не будет работать!

На самом деле я написал целую статью о синтаксисе Java для разработки Android, кратко перечислю особенности синтаксиса:

  • Большинство строк должно заканчиваться точкой с запятой «;».
  • Исключение составляет строка, открывающая новый блок кода. Она должна начинаться открытой фигурной скобкой «{». В качестве альтернативы эту открытую скобку можно поместить на новую строку под оператором. Блоки кода – это фрагменты кода, которые выполняют определенные, отдельные задачи.
  • Код внутри блока кода должен иметь отступ, чтобы отделить его от остальных.
  • Открытые блоки кода должны быть закрыты закрывающей фигурной скобкой «}».
  • Комментарии – это строки, которым предшествуют символы «//».

Если вы нажимаете кнопку «запустить» или «скомпилировать» и получаете ошибку, то есть большая вероятность, что вы где-то пропустили точку с запятой!

Вы никогда не перестанете делать это, и это никогда не перестанет вас раздражать. Расслабьтесь!

С этими знаниями мы сможем глубже погрузиться в руководство по Java!

Основы Java: ваша первая программа

Зайдите на  compilejava.net, и вас встретит редактор с кучей готовых примеров.

(Если же вы предпочитаете использовать другую IDE или стороннее приложение, это тоже прекрасно! Скорее всего, ваш новый проект будет состоять из аналогичного кода).

Удалите все, кроме следующего:

public class HelloWorld
{
  public static void main(String[] args)
  {
  }
}

Это то, что мы, программисты, мы называем «шаблоном» (этот код скопирован из учебника Java от Фила Данфи). Шаблонный код – так можно назвать любой код, который встречается внутри практически любой программы.

Первая строка здесь определяет «класс», который по сути является модулем кода. Затем нам нужен метод внутри этого класса, который представляет собой небольшой блок кода, выполняющий задачу. В каждой программе Java должен быть метод main, так как он сообщает Java, где начинается программа.

Об остальном поговорим чуть ниже, не беспокойтесь. Все, что нам нужно знать для этого урока Java прямо сейчас, – это то, что код, который мы действительно хотим запустить, должен быть помещен в фигурные скобки под словом «main».

Поместите сюда следующий оператор:

System.out.print("Hello world!");

Этот оператор напишет слова: «Hello world!» на вашем экране. Нажмите «Compile & Execute» и вы увидите его в действии.

Поздравляю! Вы только что написали свое первое Java-приложение!

Переменные в Java

Теперь пришло время рассказать о некоторых более важных вещах, лежащих в основе Java. Мало что может быть более фундаментальным в программировании, чем обучение использованию переменных!

Переменная по сути является «контейнером» для некоторых данных. Это означает, что вы выберете слово, которое будет представлять какое-то значение. Нам также необходимо определить переменные, основанные на типе данных, на которые они будут ссылаться.

Вот три основных типа переменных, которые мы собираемся ввести в этом руководстве по Java:

  • Целые числа (integers) – как целые числа.
  • Плавающие точки (floats) – или «переменные с плавающей точкой». Они содержат все числа, в том числе те, которые представляют десятичные дроби. «Плавающая точка» относится к десятичному разряду.
  • Строки (strings)– строки содержат буквенно-цифровые символы и символы. Обычно строка используется для хранения чьего-то имени или, возможно, предложения.

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

public class HelloWorld
{
  public static void main(String[] args)
  {
    String name = "Adam";
    System.out.print("Hello " + name);
  }
}

В этом примере кода мы определили строковую переменную с именем name. Мы сделали это, используя тип данных String, за которым следует имя нашей переменной, а затем данные. Когда вы помещаете что-то в двойные кавычки, то Java интерпретирует это дословно как строку.

Теперь мы печатаем на экране, как и раньше, но на этот раз заменяем «Hello world!» на «Hello + имя». Этот код показывает строку «Hello», за которой следует любое значение, содержащееся в следующей строковой переменной!

Самое замечательное в использовании переменных заключается в том, что они позволяют нам манипулировать данными, чтобы наш код мог вести себя динамически. Изменяя значение name, вы можете изменить поведение программы, не изменяя никакого фактического кода!

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

Еще одна из самых важных основ Java – это работа с условными операторами.

Условные операторы используют блоки кода, которые выполняются только при определенных условиях. Например, мы можем захотеть предоставить специальные пользовательские права основному пользователю нашего приложения.

Посмотрите на следующий код:

public class HelloWorld
{
  public static void main(String[] args)
  {
    String name = "Adam";
    System.out.print("Hello " + name +"rn");
    
    if (name == "Adam") 
    {
      System.out.print("Special user priveledges granted!");
    }
  }
  
}

Запустите этот код, и вы увидите, что специальные разрешения предоставлены. Но, если вы измените значение name на что-то другое, то код не будет работать.

В этом коде используется оператор if. Он проверяет, является ли утверждение, содержащееся в скобках, истинным. Если это так, то будет запущен следующий блок кода. Не забудьте сделать отступ в коде, а затем закрыть блок в конце! Если оператор в скобках имеет значение false, то код просто пропустит этот раздел и продолжит работу с закрытых скобок.

Обратите внимание, что при наложении условия на данные мы используем два знака «=». Вы же используете только один, когда присваиваете какие-то данные переменным.

Методы на Java

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

Все, что мы собираемся сделать, – это взять часть кода, который мы уже написали, а затем поместить его в другой метод вне метода main:

public class HelloWorld
{
  
  public static void main(String[] args)
  {
    String name = "Adam";
    System.out.print("Hello " + name +"rn");
        if (name == "Adam") {
      grantPermission();
    }
         
  }
  
  static void grantPermission()
  {
       System.out.print("Special user priveleges granted!");
  }
  
}

Мы создали новый метод в строке, которая начинается со static void. Это означает, что метод определяет функцию, а не свойство объекта, и что он не возвращает никаких данных.

Но все, что мы вставляем в следующий блок кода, теперь будет выполняться каждый раз, когда мы «вызываем» метод, записывая его имя в нашем коде: grantPermission(). Затем программа выполнит этот блок кода и вернется к точке, из которой она вышла.

Если бы мы написали вызов grantPermission() несколько раз, то сообщение «Special user priveleges granted» также отобразилось бы несколько раз. Именно это делает методы такими фундаментальными основами Java: они позволяют выполнять повторяющиеся задачи, не записывая код снова и снова.

Передача аргументов в Java

Но самое замечательное в методах то, что они могут принимать переменные и манипулировать ими. Мы сделаем это, передав переменные в наши методы как «строки». Вот для чего и нужны скобки, следующие за названием метода.

В следующем примере я создал метод, который получает строковую переменную, названную nameCheck. Затем я могу обратиться к nameCheck из этого блока кода, и ее значение будет равно тому, что я поместил в фигурные скобки, когда вызвал метод.

Для этого руководства по Java я передал значение name методу и поместил туда оператор if. Таким образом, мы можем проверять несколько имен подряд, не набирая один и тот же код снова и снова.

Надеюсь, это даст вам представление о том, насколько мощными могут быть методы!

public class HelloWorld
{
  
  public static void main(String[] args)
  {
    String name = "Adam";
    System.out.print("Hello " + name +"rn");
 
    checkUser(name);
    
  }
  
  static void checkUser(String nameCheck)
  {
    if (nameCheck == "Adam")
    {
       System.out.print("Special user priveledges granted!");
    }
  }
  
}

В завершение

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

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

Перевод статьи «Java tutorial for beginners: Write a simple app with no previous experience»

Дисклаймер

Сразу хочу вас предупредить, чтобы стать настоящим java разработчиком с нуля вам нужно будет потратить в разы больше его времени. Как преподаватель java в Сбер Университете, по своему опыту могу сказать, чтобы точно получить хорошую работу на изучение языка и его инфраструктуры вы должны потратить 5-6 месяцев – при этом заниматься минимум 40 часов в неделю.

Начинаем!

История языка и предпосылки к лидерству

Почему Java так популярен? Во-первых это старый язык по меркам сферы ИТ. Ему уже более 25 лет. За это время было написано огромное количество приложений и библиотек, сформировано, наверное, самое многочисленное комьюнити программистов, которое поможет найти ответ на любой вопрос. Во-вторых java создавался с прицелом на высокую надежность: в то время доминировали языки C и C++, которые обладали высоким порогом входа – нужно было внимательно следить за за каждой строчкой. Легко можно было выстрелить себе в ногу, неправильно использовав множественное наследование, не почистив правильно память и т.д.

В Java учли эти ошибки. В нем сделали удобный автоматический сборщик мусора, добавили развитую систему исключений: появились исключения типа checked, которые существенно увеличили надежность кода. Были созданы более удобные механизмы работы с многопоточностью, а так же использована статическая типизация.

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

Одной из киллер-фич был подход к исполнению кода. Он не компилировался напрямую в бинарники. Компилятор создавал на основе исходного кода байт-код, который уже в свою очередь с помощью специального приложения – JAVA машины исполнялся на компьютере. Такой подход давал ряд существенных преимуществ: программист мог запустить один и тот же код по разными операционными системами, процессорами вообще без каких-либо изменений!

Не надо было перекомпилировать код под новую платформу, соответственно администратор без привлечения программистов мог осуществить перенос приложения на новый сервис с абсолютно другой архитектурой за пару часов.

Второе важное преимущество – с каждой новой версией Java-машина получала новые возможности, которые позволяли оптимизировать код на лету. Один и тот же код с каждой новой версией выполнялся все быстрее и быстрее вообще без вмешательства программистов!

Недавно java перешла на новый релизный цикл – каждая новая версия выходит через полгода. Это позволяет быстрее доставлять новые возможности в язык и практически полностью сократить отставание языка от других jvm языков.

Возможно, сейчас многие из преимуществ непонятны, но изучая java вы поймете, насколько они замечательные и как Java в свое время определила развитие ИТ.

Подготовка окружения

В первую очередь нам надо скачать JDK – это та самая виртуальная машина, а также набор утилит, которые позволят собирать код. После чего мы уже можем начинать программировать в любимом редакторе. Если у вас такового не имеется, могу порекомендовать скачать и установить – IntelliJ IDEA Community. Это самый популярный редактор исходного кода на Java, базовая версия которого распространяется бесплатно.

После того как мы скачали все и запустили редактор, приступим к изучению.

В java все является объектом. Что такое объект? Это некоторая сущность в которой описано ее состояние с помощью каких-либо переменных, а также описано ее поведение с помощью функций. Рассмотрим все на примере из реального мира.

У нас есть автомобиль, у него много характеристик. Мы абстрагируемся от них, нас интересует только два параметра: текущая скорость и максимальная скорость. В мире объектно-ориентированного программирования этот подход так и называется – абстракция. Какое поведение мы ожидаем от автомобиля? Всего два – начать движение и остановиться. Напишем этот код на java в файле с именем Car.java:

Car.java
        public class Car {
   int speed;
   int maxSpeed;
  
   void start(){}
   void stop(){}
}

    

Здесь мы описали шаблон будущего объекта – класс. У него есть две переменные состояния – speed и maxSpeed, а также две функции, которые описывают поведение объекта.

Теперь приложение нужно запустить, для этого Java надо подсказать, где находится точка входа в него. Для этого существует особое соглашение – нужно добавить в описание любого объекта метод:

        public static void main(String[] args) {
  
}

    

Именно, тот код, который мы в нем укажем и начнет выполняться.

Выполним теперь в консоли следующие команды:

        javac Car.java
java Car
    

Либо, что в разы проще, просто нажимаем зеленую стрелочку около метода и редакторе:

☕ Основы Java за 30 минут: самоучитель для начинающих

Наше приложение запустилось, но ничего не произошло, потому что мы не добавили никакой логики в метод. Добавим простой вывод на консоль текста:

        public static void main(String[] args) {
   System.out.println("Hello");
}

    

Результат выполнения виден на консоли.

Отмечу, что каждый файл может содержать только один публичный класс. То есть ключевое слово public вместе со словом class.

Ключевое слово public – это так называемый модификатор доступа. Оно определяет уровень доступности этого класса/метода/переменной из других частей программы.

Имя файла должно совпадать с именем класса, включая регистр, и иметь расширение .java. Ключевое слово static, говорит компилятору о том, что данный метод/переменная принадлежит именно шаблону объекта, то есть классу, а не конкретному объекту.

Пока не будем особо на это заострять внимание.

Пакеты в java

Стоит отметить, что часто в программах классы называют одинаково, поэтому была предложена идея их раскладывать по папкам, чтобы не было конфликта имен. Папка, в которой находится класс указывается в самом верху файла:

☕ Основы Java за 30 минут: самоучитель для начинающих

Создатели предложили называть эти папки как доменные имена в интернете, чтобы точно разграничить их, но это не обязательно, вы можете называть их как захотите.

Это так же позволяет легко импортировать чужие классы в свой код:

Import.java
        package ru.proglib;

import java.util.Random;  // импортируем описание класса из пакета java.util.
public class Import {
   public static void main(String[] args) {
       var random = new Random();
       System.out.println(random.nextInt());  // выводим на экран случайное число
   }
 }

    

В нашем пакете нет определения класса Random, поэтому я воспользовался ключевым словом import, чтобы его добавить в нашу программу. Теперь я могу с ним работать. Используя ключевое слово new я создаю на основе класса объект random, который могу использовать в дальнейшем коде. Далее у объекта я вызываю метод, nextInt который описывает следующее поведение объекта: объект возвращает из метода натуральное число, которое произвольно каким-то образом у себя генерирует. Мы не знаем как именно это происходит – мы знаем только то, что в результате вызова этого метода мы получим какое-то целое число типа int. В объектно ориентированном программировании этот прием называется инкапсуляцией – когда объект внутри себя, основываясь на своем состоянии генерирует некий результат, при этом пользователь данного метода не знает как это работает под капотом.

Продолжим далее разбираться с кодом, который был представлен выше. Начнем с самого простого. Если мы хотим добавить какое-то пояснение к коду, мы можем вставить в любую строчку два косых слеша и весь текст после них будет отброшен при компиляции программы, но при просмотре исходного кода он виден.

Создание объектов

В коде у нас была следующая строка:

        Random random = new Random();
    

Что она делает?

Здесь мы с помощью ключевого слова new создаем новый объект из его шаблона. Мы указываем, что в своем коде мы будем использовать имя random для обращения к этому объекту. В последней строке мы вызываем метод nextInt который приводит к тому, что в нашу программу возвращается какое-то число, после чего это же число мы передаем в метод println который уже выводит его на экран.

Попробуем для создать класс нашего автомобиля и задать ему поведение:

Car.java
        public class Car {
   int speed;
   int maxSpeed;

   void start() {
       System.out.println("Я начал ехать");
   }

   void stop() {
       System.out.println("Я остановился");
   }

   public static void main(String[] args) {
       var myCar = new Car();
       myCar.start();
       myCar.stop();
   }
}

    

Запустите код и посмотрите, что будет выведено на консоль.

Теперь вернемся к нашим переменным состояния объекта.

Примитивные типы в java

Компьютеры работают в основном с числами, поэтому были придуманы несколько ключевых слов, которые обозначают разные типы данных, по другому их называют примитивные типы данных:

Ключевое слово Тип Пример
boolean true или false (8-bit число) true
byte 8-bit число 123
short 16-bit число 123
int 32-bit число 123
long 64-bit число 123L
float 32-bit число 123.0f
double 64-bit число 123.0
char 16-bit число ‘a’

Так как компьютеры развивались постепенно, то на разных этапах своей жизни они могли хранить число, которое не выше разряда процессора, на котором они работают.

Поэтому появилась такая битовая таблица различных чисел. В нашем случае мы будем использовать числа типа int, которые могут быть описаны 32 битами в памяти компьютера. То есть наши числа будут лежать в промежутке -2,147,483,648 (-2^31) to 2,147,483,647 (2^31-1).

Конструкторы объектов

Теперь мы хотим, чтобы наше поведение зависело и от внутреннего состояния объекта. Для этого его надо как-то задать. Посмотрим как это можно сделать.

Car.java
        public class Car {
   int speed;
   int maxSpeed;

   public Car(int speed, int maxSpeed) {
       this.speed = speed;
       this.maxSpeed = maxSpeed;
       System.out.println("Объект готов");

   }

   void start() {
       System.out.println("Я начал ехать");
       System.out.println(speed);
   }

   void stop() {
       System.out.println("Я остановился");
       System.out.println(maxSpeed);
   }

   public static void main(String[] args) {
       var myCar = new Car(100, 500);
       myCar.start();
       myCar.stop();
   }
}

    

Мы добавили в наш код специальный код – конструктор. Он позволяет инициализировать объект перед тем как начать им пользоваться. При этом при создании объекта в методе main я добавил два натуральных числа, которые соответственно инициализировали состояние объекта. В конструкторе мы можем указать любую логику, которую необходимо выполнить при создании объекта.

Если вы запустите приложение, то увидите, что кроме строк на экран выводятся и числа – как раз те, которые мы передали в конструкторе. Теперь наш объект инициализирован – у него есть какое-то внутреннее состояние.

Ссылки vs примитивные типы

Теперь рассмотрим ключевое различие между ссылками на объект, которые мы использовали для работой с объектами и примитивными типами. Для ссылок мы можем написать так:

        var myCar = new Car(100, 500);
myCar = null;
    

Мы приравняли наш указатель на объект к ключевому слову null, которое говорит виртуальной машине, что по данному указателю уже нельзя обращаться к объекту, то есть вызов myCar.start(); приведет к ошибке. Что произойдет с нашим объектом, который мы создали? В виртуальной машине java запускается сборщик мусора, который обнаружит, что данный объект живет без какой либо ссылки и удалит его из памяти – то есть сотрет его в оперативной памяти.

Но подобное не работает с примитивными типами:

        int x = null;
    

Подобный код вызовет ошибку.

Также стоит отметить, что строки также являются классами, но при этом для них в языке сделаны существенные изменения.

Строки описываются классом String. Посмотрим какие исключения для них есть:

        var str = "Я остановился";
var srt2 =  new String("Я остановился");

    

Это единственный класс, который мы можем создать без оператора new.

Кроме того, строки можно складывать друг с другом или другими примитивными типами, но не вычитать, делить и т.п.:

        System.out.println("Я начал ехать" + "в направлении М1");
System.out.println("Я начал ехать" + "в направлении М1 со скоростью " + speed);

    

Добавьте данные строчки в наш код и вы увидите, что все прекрасно работает. Но повторюсь, что подобное исключение сделано только для одного класса – String, потом что строки очень часто используются.

Операторы в java

Раз мы упомянули операторы, давайте посмотрим какие предлагает java.

Унарный оператор – это оператор, для работы которого требуется только один операнд, или переменная, часто выполняют простые операции.

Оператор Описание Пример
! Инвертирует логическое значение булевой функции !true будет равно false
+ либо — Указывает на знак числа -123
++ Добавляет к числу единицу var i = 5; i++; //i будет равно 6
Отнимает от числа единицу var i = 5; i—; //i будет равно 4

Далее мы перейдем к операторам, принимающим два аргумента, которые называются бинарными операторами. Бинарные операторы являются самыми распространенными операторами в языке Java. Ранее мы уже познакомились с оператором сложения для строк.

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

Оператор Описание Пример
+ Cложение var i = 5; var k = 6; System.out.println(i + k)
Вычитание var i = 5; var k = 6; System.out.println(i – k)
* Умножение var i = 5; var k = 6; System.out.println(i * k)
/ Деление var i = 5; var k = 6; System.out.println(i / k)
% Взятие по модулю var i = 15; var k = 6; System.out.println(i % k)

Если мы пишем сложное математическое выражение, то лучше пользоваться скобками:

var x = 5 * (6 – 8);

Завершить секцию с операторами я хотел бы таблицей с условными операторами, результат работы которых true либо false:

Оператор Описание Пример
== Сравнение на равенство var i = 5; var k = 6; System.out.println(i == k)
< либо <= Меньше, меньше либо равно var i = 5; var k = 6; System.out.println(i < k)
> либо >= Больше, больше либо равно var i = 5; var k = 6; System.out.println(i >= k)
&& Логическое и. В обоих частях должно быть true, чтобы оператор вернул true System.out.println(true && true)
|| Логическое и. Хотя бы в одной части должно быть true, чтобы оператор вернул true System.out.println(false || true)

Мы познакомились с самыми популярными операторами в java, настало время их использовать.

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

Добавим новый метод, который будет это делать:

        void setSpeed(int speed){
   this.speed = speed;
}

    

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

Условные выражения

Для того, чтобы наложить какие-либо ограничения на переменную, нам необходимо провести проверку, для этого нам понадобиться использовать условное выражение if:

        void setSpeed(int speed) {
   if (speed < maxSpeed) {
       this.speed = speed;
   }
}

    

В круглых скобках мы помещаем условие, которое должно вернуть либо true либо false, а в фигурных мы добавляем тот код, который будет выполнен если условие правдиво.

Так же, если условие вернуло false мы можем добавить с помощью ключевого слова else еще один блок кода, который выполняем в таком случае:

        void setSpeed(int speed) {
   if (speed < maxSpeed) {
       this.speed = speed;
   }
   else {
       System.out.println("Вы передали слишком большую скорость");
   }
}

    

Циклы

Что делать, если мы хотим повторять какой-то блок кода много раз? Если вместо if написать while у нас получится самый простой цикл, который будет выполняться до тех пор пока выражение в круглых скобках истинно или не произойдет прерывания цикла с помощью ключевого слова break, либо пока программа не завершиться, например из другого потока. Выглядеть это будет так:

        public static void main(String[] args) {
   var myCar = new Car(100, 500);
   var i = 0;
   while (i < 10){
       myCar.start();
       i++;
   }
}

    

В данном случае, мы создаем некую примитивную переменную i изначально равную 0. В цикле у нас есть условие того, что она меньше 10, если это не так, то код в фигурных скобках выполняться не будет. В них же мы увеличиваем значение i на единицу, если бы мы этого не делали, то выполнялся бы цикл вечно. Запустите программу и посмотрите, что будет выведено на экран и сколько раз.

Для того, чтобы отделить те логику работы цикла от нашего кода был создан цикл for.

Найдите различия:

        for (var i = 0; i < 10; i++) {
   myCar.start();
}

    

В круглых скобках у нас создается счетчик, передается условие цикла и рецепт, что делать со счетчиком на каждой итерации. Согласитесь, так код выглядит более компактно и логика управления циклом не перемешивается с нашей логикой.

если не передать никаких условий, то получится бесконечный цикл:

        for( ; ; ) {
   System.out.println("Hello World");
}

    

Выйти из него никак нельзя, только прервав работу приложения с помощью средств операционной системы. Мы можем прервать его работу с помощью ключевого слова break:

        for( ; ; ) {
   System.out.println("Hello World");
   break;
}

    

Сообщение будет выведено на консоль и на этом месте цикл остановится.

Массивы и коллекции

В своем проекте мы создали только один автомобиль, давайте теперь создадим несколько и поместим их в какое-то хранилище.

        var myCar = new Car(100, 500);
var myCar2 = new Car(10, 50);
var garage = new Car[2];

garage[0] = myCar;
garage[1] = myCar2;

for (Car car : garage) {
   car.start();
}

    

В примере выше мы создали два автомобиля, потом создали массив из указателей на объекты класса Car размером 2 и положили в него указатели на наши объекты. Как видно, отсчет ячеек массива начинается с 0. После чего мы использовали специальную модификацию цикла for для массивов и коллекций, который позволяет пройтись по всем элементам и совершить с ними какую-то логику.

То есть теперь у нас есть объект, который может хранить в себе несколько указателей на другие объекты, но работать с массивами не удобно. Нужно знать заранее точный размер и в какие ячейки, что нужно записывать. Поэтому сейчас самый востребованный метод хранения данных – коллекции.

Перепишем наш код с помощью коллекций:

        var myCar = new Car(100, 500);
var myCar2 = new Car(10, 50);
var garage = new ArrayList<Car>();

garage.add(myCar);
garage.add(myCar2);

for (Car car : garage) {
   car.start();
}

    

Как вы можете видеть, код не сильно изменился, но пропали эти неуклюжие записи указателей в конкретные ячейки. Теперь все сохраняется автоматически.

Для объявления коллекции мы написали так:

        var garage = new ArrayList<Car>();
    

Что это значит? Здесь мы говорим, что будем использовать коллекцию на основе массива и что в нашей коллекции будут лежать объекты типа Car.

Самое важное, что мы не задали размер нашей коллекции. Так как она позволяет добавлять в себя любое число элементов, которые могут поместиться в оперативной памяти вашего компьютера.

Коллекция типа HashSet (множество) не позволит положить в себя два одинаковых значения, сравните выводы:

        var garage = new HashSet<Car>();

garage.add(myCar);
garage.add(myCar);
garage.add(myCar2);

for (Car car : garage) {
   car.start();
}

    

А потом замените первую строку

        var garage = new ArrayList<Car>();

    

Кроме списка так же популярна коллекция Map, она позволяет присваивать объектам ключи и потом получать эти объекты по уникальному ключу:

        var myCar = new Car(100, 500);
var myCar2 = new Car(10, 50);
var garage = new HashMap<String, Car>();

garage.put("Мой авто", myCar);
garage.put("Мой второй авто", myCar2);

garage.get("Мой второй авто").start();

    

Я указал строку в качестве ключа – очень частая практика. И положил в коллекцию два своих объекта. Потом я по ключу достал свой объект и вызвал его метод.

Могу сказать, что коллекции – это то, чем вы будете пользоваться всегда в своей работе, поэтому их надо знать. Здесь я рассказал лишь о трех из них, которые используются в 99% случаев, при том не рассказав какие дополнительные методы они несут в себе.

Исключения

Чтобы произошло, если бы я написал свой запрос так:

        garage.get("второй авто").start();
    

То на консоли увидел бы следующее:

        Exception in thread "main" java.lang.NullPointerException
	at ru.proglib.Car.main(Car.java:42)

    

Возникла исключительная ситуация и программа прервала свою работу. Так как метод get вернул null о котором мы говорили ранее. Соответственно у нас не было объекта на котором мы могли бы вызвать метод. Для предотвращения таких ситуаций был придумал блок try/catch. Посмотрим как он помог бы решить нашу проблему:

        try {
   garage.get("второй авто").start();
}catch (NullPointerException exception){
   System.out.println("В словаре нет автомобиля с таким ключем");
}

    

После try я в фигурных скобках пишу код, в качестве которого не уверен. В блоке круглых скобок catch я указываю какого типа ошибки могут возникнуть. Ошибки также являются в java объектами. Соответственно в фигурных скобках я указываю ту логику, которая будет выполнена при возникновении исключительной ситуации.

Вывод

Наше беглое знакомство с Java заканчивается. В этом материале мы рассмотрели лишь малую часть возможностей языка и его конструкций. Но я надеюсь, вы поняли, что на нем можно писать довольно лаконично и емко, при том программы, которые вы будете создавать будут отличаться надежностью и мультиплатформенностью из коробки. Java сейчас один из самых востребованных языков в мире разработки и если вы выберете его в качестве своего основного, то вы однозначно выиграете от этого решения. Ниже я привел лучше ресурсы, откуда можно черпать свои знания. Удачного обучения!

Дополнительные материалы:

  • Очень рекомендую ознакомится с заметкой ТОП-10 лучших книг по Java для программистов ( https://proglib.io/p/java-books-2019). В ней вы найдете поборку из прекрасных книг по java.
  • Если необходимо узнать какую-то информацию о бзовых возможностях java, то лучше официально документации ничего нет – https://docs.oracle.com/en/java/javase/16/
  • А если вам нужно усваивать материал через видео, то нет ничего лучше, чем лекции, которые читает Java Champion.

***

<mark class="cdx-marker"><a href="https://proglib.io/w/a9b778c8" target="_blank" rel="noopener noreferrer nofollow">Курс «Java-разработчик»</a></mark>

Курс «Java-разработчик»

Мне всё еще непонятно, с чего начинать путь в IT. Что посоветуете?

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

Онлайн-университет Skypro помогает новичкам в IT комфортно сменить сферу деятельности. Курс «Java-разработчик» построен так, чтобы дать полноценный взгляд на IT и базовые знания для работы младшим специалистом. Вы научитесь:

  • писать код на языках Java и SQL;
  • управлять схемами баз данных;
  • собирать проекты на Maven и Spring;
  • работать с кешем и потоками.

На протяжении всего обучения студентов поддерживают наставники и обучают топовые специалисты рынка. Если вы не устроитесь на работу в течение четырех месяцев после окончания обучения, Skypro вернет деньги — это прописано в договоре.

Java is among the top programming languages of 2023. Java is a robust, statically typed, safe, class-based programming language that has been ruling the web for some time. Java is used in almost all domains like retail, finance, healthcare, logistics, etc. It is compatible and versatile and used for mobile, desktop, and web applications, games, web servers, application servers, database connection, client-side validations, and many more.

The product is free, and open-source adds to its popularity. Also, most graduates learn about C/C++ as part of their curriculum, so learning Java becomes easy and this blog post wil give you a detailed guidelines about how to learn java programming.

Why Should You Learn Java?

Before you know how to learn Java, you should be convinced about why you should learn it!

Learning Java has a lot of advantages when compared to other languages. You can perform any task in Java as there are rich libraries and plugins. Java is platform-independent at the source-code and binary levels, which means the code you compile once can be used anywhere. Since Java is object-oriented, the code is split into independent modules, making the code reusable and free from bugs.

Java has a lot of security features and cross-platform capabilities. It is also the right choice for data science and machine learning, of course, after Python and R. Many websites and web applications continue to be built on the Java platform, thus keeping the demand for Java developers and designers always on the higher side.

As per PayScale, a developer’s average salary range is $47,169 to $106,610 per year. San Francisco and Arlington pay the highest salaries to their Java developers with about $97000 per year on an average.

Because of its many advantages and unique features, Java was still the most preferred language even after its first release 25 years ago. By learning Java, you get to code in Core Java and move in the direction of becoming a JavaScript expert, a web application developer using J2EE and related web technologies, principal architect, designer, and so on. Most of the Android phones have their operating system written in Java, which is about 88% of the total global smartphone market.

If you learn Java, it also becomes easier for you to learn any other OOP based programming language in less time.

Prerequisites

To learn Java, you must have a little idea about computer science. Java can be your first programming language to learn, but you should first be familiar with the following computer science concepts:

OOP Concepts

Since Java is an Object-Oriented Programming language (OOP), you need to know about polymorphism, inheritance, abstraction, encapsulation, and other OOP concepts. Learn more about OOP concepts.

Data Structures and Algorithms

A data structure is an assembly of data values that are organized, managed, and stored in a particular format. It also defines relationships between data values so that the values can be easily manipulated.

Java uses a lot of collection objects to organize and store data in different ways. For example, a simple list can store some integers, or names of students, or complete set of information that define a person using objects:

List<String> myList = new ArrayList<String>();
myList.add("James");
myList.add("Shane");
myList.add("Abby");
System.out.println(myList);

This will give the output as [James, Shane, Abby].

Similarly, algorithms like Binary search, merge sort, bubble sort, etc., are widespread, and you should be familiar with them to know the internal workings of Java collections.

Learn through the most upvoted data structures and algorithms tutorials and courses.

How to Set up the Environment

To set up Java in your machine, install JDK or Java Development Kit and JRE, i.e., Java Runtime Engine. You should have the required system memory space to install both. Both JDK and JRE can be downloaded from the Oracle website for any platform (Windows, macOS, Linux, etc.). It is simple to follow the instructions on the screen for installation; it is very straightforward. After installation, you have to set up the environment variables (PATH) on your machine. The path is nothing but the location where JDK and JRE have been installed (most likely C:Program Files).

IDE (Integrated Development Environment)

For easy development, build, and testing purposes, it is best to use IDE to concentrate on the coding aspect more. IDE helps you follow best practices in the code, prompts for compilation (and sometimes runtime) errors, gives suggestions, generates standard code, adds comments, and more. It is also easier to import and include libraries in your workspace when you use IDE. Some popular Java IDEs are:

  1. Eclipse: Eclipse is a complete package for Java and J2EE development. You can add as many libraries and plug-ins as you want, and even though it consumes space, Eclipse is never slow. Download Eclipse here. You can also debug the code, write Junit tests, generate stubs and WSDLs, and easily add log statements. Eclipse is intuitive, and you can customize its features to suit your project. Apart from Java, you can use Eclipse as Python IDE, C/C++ IDE, and Scala using simple plug-ins. You can also download a lighter version of Eclipse, known as Easy Eclipse if you don’t want full features.
  2. NetBeans: NetBeans provides rapid UI development, cross-platform support, and the best support for Java technologies. It has powerful tools for HTML, JS, and CSS as well. NetBeans is fast, and you can even do project versioning and basic project management. NetBeans also supports C/C++, PHP, and JSP. You can refactor your code, check the correctness, and validate best practices—download Apache NetBeans.
  3. IntelliJ IDEA: IDEA supports many languages and frameworks and has integrated version control systems, profiling tools, database tools, etc. Development becomes faster with auto-complete suggestions and dynamic compilation. It also gives context-based assistance for languages other than Java, like SQL, HTML, and JavaScript. You can leave all the repetitive and tedious tasks and focus on your business logic. The tool suggestions are intuitive, helping developers go on without breaking their flow—download IntelliJ IDEA.

Online Compiler

For your own reasons, if you do not want to install an IDE on your system, you can also use an online compiler. Tutorialspoint provides a relatively faster online Java compiler compared to other online compilers.

How to Learn Java

Java is easy to learn, and you don’t have to spend too much time learning the concepts. Once you get the foundations right, you can start practicing.

If you already have the IDE set up on your system, try this simple program:

  1. Create a new project, let’s say, MyFirstJavaProj.
  2. Create a package named practice.
  3. Inside this package, create a class called MyFirstProgram.java, and check on the checkbox to add the main method: public static void main(String[] args)
  4. Just add the following code in the main method:

System.out.println(«Welcome to the Java World!»);

Run this program as a Java application, and the message will be displayed on the console.

Don’t worry about all the keywords used in the program. The point is that it takes just these many steps to make a Java project run! To understand these keywords and modifiers, read this short introduction to Java, and get started. You can take up the following excellent courses to further your practical learning experience:

Java Courses and Tutorials (Free and Paid)

1. Complete Java developer course: Udemy

This paid bestseller course from Udemy teaches core java skills, JavaEE, Spring framework, Android development, etc. The course focuses on Java 8 and 11 and also prepares you for the Oracle Java certification exam. It covers OOP concepts, collection, control flow statements, Generics, concurrency, network programming, and many more introductory and intermediate Java topics. It is reasonably priced, and you get discounts from time to time.

2. Object-Oriented Java Programming: Data Structures and Beyond: Coursera

This is a specialization of about 4-6 months’ worth of content covering Java OOP, data structures and advanced data structures (like graphs), performance tuning, and tips and opportunities for clearing Java interviews. This is an intermediate course and has real-world projects and lectures from Google. You can take up all or individual courses of the specialization. Coursera works on a monthly subscription basis, so one can take up any number of courses.

3. Learn Java: Codecademy

This course covers the fundamental OOP concepts and how they are used in Java to develop web applications. You will be doing a lot of practical projects on different levels. It is an introductory course which doesn’t require any prerequisites. You will learn about conditionals, control flow, Arrays, ArrayList, Strings, inheritance, etc. The code also covers debugging exceptions, compile-time, and run-time errors. Codecademy has both free and paid courses, this is a free one.

4. Pluralsight Java Course

Pluralsight offers a range of Java courses for different levels. Each course is about 3 hours. You can start with the basic course, i.e., working with classes and interfaces, then take up the intermediate courses, like Java design patterns, web fundamentals, persistence API, etc. Take up the Pluralsight subscription, or if this is your first course, you can try it for free.

5. LinkedIn

LinkedIn provides many short courses for learning Java. Few popular courses like Learning Java, Advanced Java Programming, and Introduction to Data Structures & Algorithms in Java are some good courses to start with. These three courses together cover the basic and advanced concepts of Java. LinkedIn provides a monthly subscription option, and the first month is free for learners.

For a detailed description and information of the best Java courses visit here.

Java Official Documentation

To learn more about Java’s API and various utility methods, you should always look up the official API documentation page. You will also get to know the inheritance structure, interfaces, abstract classes, utility classes, and other OOP flavors through the API.

Projects

Most tutorials also give hands-on towards the end through projects. However, doing more projects without any external help will boost your confidence and increase your expertise level. Projects will help you master Java as quickly as possible.

Try out these 10 free Java projects for beginners from Hackr.io.

Other than these projects, you can also try simple projects on your own, like,

  • building a house rental system or car rental system,
  • Hangman game,
  • online product purchase (adding products to cart and checkout),
  • student information system,
  • defect tracking system,
  • e-mail spam filtering,
  • railway ticket reservation system, and so on.

Certifications

So, now you are done with learning Java through tutorials and have done some projects. You must be confident enough to take up certifications and add them to your resume. Certifications add a boost to your resume and give you an edge over other candidates with similar experience. Check out the Top Java certifications recommended by Java Developers.

Java Interview Questions

Now, it’s time to put all your knowledge together and prepare for the big day. It would be best if you were thorough with the practical and concept-based questions of Java. For example, the evaluator may ask you to write code for the Fibonacci series or ask you about the implementation for Hashmap! Learn about Garbage collection, collection (LinkedList, Map, Tree, etc.), exception handling, and threads, amongst other topics! These are important questions that are asked in every Java interview. Some crucial questions are:

  • Question: Differentiate between JVM, JRE, and JDK.
  • Question: Explain access modifiers in Java.
  • Question: What do you mean by Constructor?
  • Question: Please explain the difference between String, String Builder, and String Buffer.
  • Question: How do you make a thread in Java? Give examples.
  • Question: How will you distinguish processes from threads?
  • Question: Could you draw the Java Exception Hierarchy?
  • Question: Explain exception propagation.
  • Question: What is ordered and sorted concerning collections?
  • Question: Please compare Serialization with Deserialization in Java.

Check out the complete list of 100+ top Java interview questions that will help you crack even that tough one!

Wrapping Up

  • To sum up, we have covered the following: To learn Java, you must be familiar with a few programming concepts, like data structures like Array, LinkedList, Stack, Queue, Tree, Graph, etc., basic algorithms like binary search, linear search, bucket sort, quick sort, etc.
  • Further, you should understand the foundational OOP concepts like Polymorphism, encapsulation, inheritance, abstraction, which form the basis of Java.
  • For Java, it is always preferable to practice using an IDE, offline or online. You shouldn’t spend too much reading theory; instead, get yourself on coding simple programs as soon as possible.
  • Start with basic programming concepts like variables, data types, operations, conditions, collection, loops, getting user inputs. Then go a bit deeper into concepts of file handling, connecting to the database, handling exceptions, threads, generics, garbage collection, design patterns, and then slowly move on to creating projects and web services.
  • There is no task difficult or impossible. Even if you have no prior programming experience, you can become as good as a professional developer in no time with a little extra effort.
  • Take up the courses and certifications to consistently improve your skills and keep yourself updated with the latest versions and methods.

We hope you enjoyed reading this guide to learning Java and it urges you to begin coding as soon as you read it. Try it out and let us know your feedback.

People are also reading:

  • Core Java Cheatsheet — Introduction to Programming in Java
  • Difference between Java vs Javascript
  • Top 10 Java Frameworks
  • Best Way to Learn Java
  • Constructor in java 
  • Prime Number Program in Java
  • OOPS Concept in Java
  • Difference between Java and Javascript
  • Difference between C++ vs Java
  • Java Constructor

Время на прочтение
6 мин

Количество просмотров 43K

Вступление. Краткая история и особенности языка

Как-то давно мы с моим товарищем и коллегой Егором готовили обучающий курс по Java Core. Но как-то не срослось и это дело не было доведено до какого-либо логического конца. И вот, спустя время, я решил, что не стоит пропадать добру и по-этому запускаю серию статей про Java Core для самых маленьких.

Начало разработки языка было положено еще в 1991 году компанией Sun Microsystems, Inc. Вначале язык был назван Oak (Дуб), но в 1995 он был переименован в Java. Публично заявили о создании языка в 1995 году. Причиной создания была потребность в независящем от платформы и архитектуры процессора языке, который можно было бы использовать для написания программ для бытовой электротехники. Но поскольку в таких устройствах применялись различные процессоры, то использование популярных на то время языков С/С++ и прочих было затруднено, поскольку написанные на них программы должны компилироваться отдельно для конкретной платформы.

Особенностью Java, которая решила эту проблему, стало то, что компилятор Java выдает не машинный исполняемый код, а байт-код — оптимизированный набор инструкций, которые выполняются в так называемой виртуальной машин Java (JVM — Java Virtual Machine). А на соответствующую платформу предварительно устанавливается JVM с необходимой реализацией, способная правильно интерпретировать один и тот же байт-код. У такого подхода есть и слабые стороны, такие программы выполняются медленнее, чем если бы они были скомпилированы в исполняемый код.

Установка программного обеспечения — JDK

В первую очередь, нам нужно установить на компьютер так называемую JDK (Java Development Kit) — это установочный комплект разработчика, который содержит в себе компилятор для этого языка и стандартные библиотеки, а виртуальную машину Java (JVM) для вашей ОС.

Для того чтобы скачать и установить JDK открываем браузер, и в строке поиска Google вводим “download JDK” или переходим по этой ссылке.

Скролим ниже и находим таблицу с вариантами скачивания JDK. В зависимости от нашей операционной системы выбираем файл для скачивания.

Процесс установки для ОС Windows имеет несколько этапов. Не стоит пугаться, все очень просто и делается в несколько кликов. Вот здесь подробно описан процесс установки. Самое важное для пользователей Windows это добавить системную переменную JAVA_HOME. В этой же статье достаточно подробно расписано как это сделать (есть даже картинки).

Для пользователей MacOS также стоит добавить переменную JAVA_HOME. Делается это следующим образом. После установки .dmg файла JDK переходим в корневую папку текущего пользователя и находим файл .bash_profile. Если у вас уже стоит zsh то ищем файл .zshenv. Открываем этот файл на редактирование и добавляем следующие строки:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home
export PATH=${PATH}:${JAVA_HOME}

Здесь обратите внимание на версию JDK указанную в пути — jdk1.8.0_271.jdk. Могу предположить, что у вас она будет отличаться, поэтому пройдите по указанному пути и укажите свою версию. Сохраняем изменения и закрываем файл, он нам больше не понадобится.

Теперь важно проверить правильность установки JDK. Для этого открываем командную строку, в случае работы на Windows, или терминал для MacOS. Вводим следующую команду: java -version Если вы все сделали правильно, вы увидите версию установленного JDK. В ином случае вы, скорее всего, допустили где-то ошибку. Советую внимательно пройтись по всем этапам установки.

Установка IDE

Теперь нам нужно установить среду разработки, она же IDE (Integrated development environment). Что собой представляет среда разработки? На самом деле она выглядит как текстовый редактор, в котором мы можем вводить и редактировать текст. Но помимо этого, этот текстовый редактор умеет делать проверку синтаксиса языка на котором вы пишете. Делается это для того чтобы на раннем этапе подсказать вам о том, что вы допустили ошибку в своем коде.

Также среда разработки содержит в себе компилятор. Компилятор — это специальный инструмент, который будет превращать код, который вы пишете, в машинный код или близкий к машинному коду.

Кроме этого, среда разработки поддерживает отладчики которые помогают править и отлаживать ваш код в случае ошибки. Скажем так, это были описаны основные возможности IDE. Современные IDE предоставляют огромное количество инструментов, которые могут помочь в написании, отладке, автоматической  генерации кода и решить множество других проблем.

Для начала нам нужно выбрать и среду разработки. Их довольно таки много, и самыми популярными из них являются: IntelliJ IDEA, NetBeans, Eclipse. Для себя я выбираю IntelliJ IDEA. Она является самой удобной на мой взгляд, и хоть она и платная, на официальном сайте можно найти бесплатную версию которая называется Community. Этой версии будет вполне достаточно для изучения основ Java. Вообщем будем работать в IntelliJ IDEA.

Итак, открываем браузер, в поисковой строке вводим «Download IntelliJ IDEA Community» или переходим по этой ссылке. Выбираем версию ОС и качаем версию Community.

В установке IntelliJ IDEA нет ничего военного. На крайний случай на ютубе есть множество видео о том, как установить эту программу.

Первая программа

Теперь мы готовы создать нашу первую программу. В окошке запустившийся IDE нажимаем New Project.

В новом окошке в левой панели выбираем Java.

Обратите внимание! В верхнем окошке, справа, возле надписи «Project SDK:» должна находится версия Java, которую вы установили вместе с JDK. Если там пусто, то вам нужно будет указать путь к вашему JDK вручную. Для этого в выпадающем списке нажмите «Add JDK…» и укажите путь к вашему JDK, который был предварительно установлен.

Теперь можем нажать на кнопку Next. В следующем окошке, вверху, поставьте галочку “Create project from template” и выберите “Command Line App”. И снова нажимаем Next.

Дальше нам нужно указать имя программы. У меня это будет Hello World, желательно чтобы имя проекта было введено латиницей, и на английском языке. 

Примечание. Все программы, имена программ, принято писать на английском языке, и желательно придерживаться такого стиля, что является хорошим тоном в программировании.

После указываем путь к проекту программы. 

Далее, нам нужно указать базовый пакет нашей программы. О пакетах я расскажу вам позже, обычно компании используют свое имя Интернет-домена в обратном порядке, но вы можете написать, например, свои имя и фамилию через точку в нижнем регистре (маленькими буквами), тоже латиницей. Я же использую псевдоним. Когда все поля будут заполнены — нажимаем “Finish”.

После этого вы увидите главное окно IDE, в котором уже будет создана ваша первая, почти готовая консольная программа.

Это окно, то что вы будете видеть 80-90%, а иногда и 100% времени, работая программистом.

Для того чтобы закончить ваше первое приложение, останется добавить строчку кода System.out.print(«Hello world!»); как показано на скриншоте.

Чтобы скомпилировать и запустить на выполнение вашу программу, вам  нужно нажать кнопочку с зеленым треугольничком на верхней панели справа, или в меню найти пункт Run -> Run “Main”. И внизу на нижней панели, под окном редактора, в консоли, вы увидите результат выполнения вашей программы. Вы увидите надпись Hello World! Поздравляю, вы написали свою первую программу на Java.

Разбираем первую программу

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

Пройдемся по порядку:

В начале мы видим package com.zephyr.ventum; — это объявление пакета, и это постоянный атрибут файлов с исходным кодом в Java. Простыми словами, это локация вашего файла в проекте и любой .java файл должен начинаться с подобной строки.

Ниже, public class Main { — это стандартное объявление класса в Java, где public — это модификатор доступа который дает программисту возможность управлять видимостью членов класса, class — является ключевым словом объявляющим класс, Main — это имя класса. Все определение класса и его членов должно располагаться между фигурными скобками { }. Классы мы рассмотрим немного позже, только скажу что в Java все действия программы выполняются только в пределах класса.

Ключевое слово — это слово зарезервированное языком программирования. Например, package — это тоже ключевое слово.

Еще ниже, public static void main(String[] args) {  — эта строка является объявлением метода main. Метод (или часто говорят функция) main это точка входа в любой java-программер. Именно отсюда начинается выполнение вашего кода. В проекте может быть несколько методов main, но мы должны выбрать какой-то один для запуска нашей программы. В следующих статьях мы еще вернемся к этому. Сейчас же у нас только один метод main.

Фигурные скобки {} у метода main обозначаю начало и конец тела метода, весь код метода должен располагаться между этими скобками. Аналогичные скобки есть и у класса Main.

Следующая строка является  // write your code here  однострочным комментарием.

Комментарием является текст который игнорируется компилятором. По-этому с помощью комментариев вы можете оставлять в коде подсказки для себя и других, кто будет читать ваш код, или же для документирования вашего кода. Существует несколько видов комментариев, основными из них являются однострочный, и многострочный.

Многострочный комментарий будет выглядеть следующим образом:

/* write 
	 your 
	 code
	 here */

Мы просто располагаем несколько строк между символами /* и */

System.out.print("Hello world!"); — строка которая находится внутри метода main является командой, которая выводит в консоль строку «Hello world!»

Обратите внимание что в конце стоит точка с запятой, в языке Java команды должны заканчиваться точкой с запятой.

Затем мы закрываем тело нашего метода main } а также закрываем класс Main }.

На этом статья подходит к концу. Автором конкретно этого материала является Егор и все уменьшительно ласкательные формы слов сохранились в первозданном виде.

В следующей статье мы поговорим о типах данных в Java.

Понравилась статья? Поделить с друзьями:
  • Самостоятельная работа под руководство
  • Третиноин гель инструкция по применению взрослым
  • Индезит bwsa 71052 ls отзывы инструкция
  • Брестское умчс руководство
  • Руководство обществом от имени народа