Занятие №1

Java. Первый проект

Михаил

Павлов

Обо мне

Павлов Михаил

старший разработчик

компания "Сибирские Интеграционные Системы"

Опыт работы:

  • с 2012 по 2015гг работал в "Билайн" на поддержке биллинговой системы
  • с 2015 по настоящее время работаю в СИС
  • с 2017 руководителем группы разработчиков

Технологии, с которыми работал:

  • Базы данных: Oracle (PL/SQL), PostgreSQL, MongoDB
  • Бэкэнд: Cache(Mumps), Java (Spring, SpringData, Hibernate), C#
  • Фронтэнд: ActionScript, JavaScript, TypeScript, AngularJS, Angular (2-7)

Что вы сегодня узнаете

  • Java, чем она хороша и почему стоит ее изучать
  • Что такое JVM, JDK, JRE
  • Основы синтаксиса языка
  • Как написать свою первую программу

А также:

  • Много полезных ссылок
  • Домашнее задание

Что такое Java?

Java - это

  • статически типизированный
  • объектно-ориентированный
  • язык программирования

Почему именно Java?

Распространенность

  • Низкий порог вхождения
  • Самая производительная, среди just-in-time компилируемых языков (https://en.wikipedia.org/wiki/Java_performance#Comparison_to_other_languages)
  • Много инструментов для разработчика
  • Много библиотек
  • Большое комьюнити, легко найти ответы
  • Рынок труда

Особенности

Ключевые фичи

  • Упрощение и ускорение разработки программы за счет сборки мусора (GarbageCollector)
  • Кроссплатформенность

      ("Write once, run anywhere")

Garbage collector

C++ (нужно управлять памятью вручную)

Java (очищает память автоматически)

a = new float[10];
<...>
delete [] a
float[] b = new float[10];

Виртуальная машина

(JVM или Java Virtual Machine)

Компилятор транслирует приложение в платформонезависимый байт код, который будет выполняться виртуальной машиной

Java

Virtual Machine

"Write once,

run anywhere"

Система версий Java

История

До Java 9:

  • Версии выходили раз в несколько лет
  • Мелкие фичи ждали релиза, ждали пока доделаются крупные

Начиная с Java 9:

  • Несколько версий в год
  • Выходит больше мелких и приятных улучшений

Мы будем работать с Java 8

  • Во-первых, она получилась очень удачной и до сих пор активно используется

  • Во-вторых, программы написанные под java 8 будут работа и под java 12 (актуальная версия на данный момент)

(примеры будут адаптированы под эту версию)

С чего начать?

  1. Настроить окружение
  2. Разобраться с синтаксисом
  3. Написать и запустить

1. Окружение

JDK

Development Tools

JRE

JVM

Lib Files

JDK

- Java Develoment Kit

JRE

- Java Runtime Environment

JVM

- Java Virtual Machine

  1. Скачиваем и устанавливаем JDK для Java 8 версии

  2. (Windows) Указываем переменную среды JAVA_HOME

  3. (Windows) Добавляем в Path путь до %JAVA_HOME%/bin

Настройка

2. Синтаксис

Какие элементы есть в Java?

Class

Object

Method

Variables

public class Car {
}
new Car()
public void drive() {
}
int wheels = 4;

Что может включать класс


public class Car {
    private int wheelsCount;
    private boolean hasDriver;
    private String direction;
    private Long distance;
    private Car myCurrentCar;
    private Engine myEngine;

    public void driveToDirection(String direction) {
        if (direction != null) {
            System.out.println("go to " + direction);
        }
    }

    public int getWheelsCount() {
        return this.wheelsCount;
    }
}

Свойства:

Методы

примитивы​​

обертки

объекты

Из чего состоит метод

public static boolean checkIfValidGasoline(String gasoline) {
    // do check
}

Модификатор доступа

Возвращаемый тип

Имя метода

Входящие параметры

(тип и имя)

Тело метода

Ключевое слово

(необязательное)

Несколько классов и область видимости

public class Car {
    public void setColor(String color) {
    }

    private int getWheelsCount() {
    }
}

---------------------------------------------

public class Driver {
    public void createRedCar() {
        Car my = new Car();
        my.setColor("Red");
    }

    public void checkCarEquipment() {
        Car my = new Car();
        int wheelsCount = my.getWheelsCount();
    }
}

Модификатор доступа - public

Модификатор доступа - private

Обращение снаружи класса - ОК

Обращение снаружи класса - Ошибка доступа

Области видимости

Точка входа

public class MyNewApplication
{
    public static void main(String[] args) {
        // do something
    }
}

Важно запомнить

главное заклинание

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

Конвенция именования

Тип Описание
ClassName Существительное или фраза, начинается с заглавной, остальные слова слитно, первая буква каждого слова - заглавная (Прим.: System, StringBuilder)
methodName Глагол, первая строчная, остальные слова слитно, первая буква каждого слова - заглавная (Прим.: actionPerformed, printLn, getResult)
variableName Существительное или фраза, первая буква строчная, остальные слова слитно, первая буква каждого слова - заглавная (Прим.: firstName, orderNumber, myVariable)
package Существительное или фраза, первая буква строчная, слова разделены точками (Прим.: com.sun.eng, com.apple.quicktime.v2)
CONSTANTS Буквы в верхнем регистре, слова разделены подчеркиванием (Прим.: MIN_WIDTH, NAME_TEMPLATE, TEXT_MAX_LENGTH)

Время писать программу

Intellij Idea (IDE)

Ссылка (нам хватит Community Edition) - https://www.jetbrains.com/idea/download/#section=windows

Домашнее задание (ч.1)

Зарегистрироваться на GitHub (https://github.com/)

Домашнее задание (ч.2)

  1. Создать новый репозиторий (например, с помощью TortoiseGit)
  2. Создать новую ветку (branch)
  3. Написать свой "hello world"
  4. Закоммитить изменения в ветку
  5. Залить на GitHub
  6. Создать pull-request (https://help.github.com/en/articles/creating-a-pull-request)

Ссылка для скачивания TortoiseGit - https://tortoisegit.org/download/

Домашнее задание (ч.3)

Прислать письмо со ссылкой на проект нам, на эл. почту:

checkhomework.sis@gmail.com

Формат письма:

Тема: Имя Фамилия, номер домашнего задания.

В тексте письма ссылка на репозиторий

Крайний срок сдачи - через неделю после выдачи задания

Полезные ссылки

Вопросы

Спасибо за внимание!

JavaSIS #2.19 Занятие 1

By Павлов Михаил