Intro

Intro

Problem

  • PC understand: 0110010101001010.

  • Human understand: Languages (English, Belarusian, German).

Solution

  • Use Programing Languages.

  • For example: Java.

Why Java?

Profit

  • Объектно-ориентированное программирование.

  • Автоматическое управление памятью.

  • Многопоточность.

  • Стабильность и огромное сообщество.

Profit

  • Независимость от платформы («Написать один раз и использовать везде»).

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

  • Java — язык высокого уровня с простым синтаксисом и плавной кривой обучения.

  • Безопасность.

Loss

  • Низкая производительность по сравнению с C/C++.

  • Отсутствие нативного дизайна (работа с GUI).

  • Платная коммерческая поддержка.

Where use?

  • Приложения для Android

  • Финансовые программы

  • Автоматизация тестирования

  • Программные продукты

  • Программы для работы с большими данными

Java

Java

Java logo
  • Java is a programming language.

  • Java is a computing platform.

  • Java first released by Sun Microsystems in 1995

  • Acquired by the Oracle Corporation

Founder and Lead designer

James Gosling

James Gosling

Java as Programming Language

Java Platforms

  • Java Platform, Standard Edition (Java SE)

  • Jakarta EE maintainer Eclipse Foundation

    • Java Platform, Enterprise Edition (Java EE)

    • Java 2 Platform, Enterprise Edition (J2EE)

  • Java Platform, Micro Edition Embedded (Java ME Embedded)

    • Java Platform, Micro Edition (Java ME)

JavaFX

  • JavaFX is a Graphical User Interface (GUI) toolkit for Java.

  • JavaFX 8 as part Java SE 8

  • After JavaFX 9 is an independent project

  • JavaFX maintainer Gluon

Java Versions

  • Java (VM) is Backward compatible*

  • Write once, run anywhere (WORA)

  • Long-Term Support (LTS)

Java Versions

Java SE Lifecycle

JVM

JVM

JVM

JVM

JVM

JRE

JRE

JDK

JDK

JDK, JRE, JVM

JDK

Install JDK (OS Windows)

Проверка наличия JDK

  • Открыть PowerShell.

    • ПускPowerShell.

    • Shift + Mouse Right Click in currency directory.

  • Для проверки наличия JDK, необходимо выполнить команду:

javaс --version
  • Проанализировать результат работы команды.

Проверка наличия JRE

  • Открыть PowerShell.

    • ПускPowerShell.

    • Shift + Mouse Right Click in currency directory.

  • Для проверки наличия JRE, необходимо выполнить команду:

java --version
  • Проанализировать результат работы команды.

Установка OpenJDK

  • Скачиваем OpenJDK 11.0.2 (build 11.0.2) с сайта jdk.java.net для OS Windows

  • Распаковываем в d:\opt\java\openjdk-11.0.2

Установка системных переменных среды (с помощью UI)

  • Зайти в Этот компьютерСвойстваДополнительные параметры системыДополнительноПеременные среды.

  • Добавить системную переменную JAVA_HOME с значением d:\opt\java\openjdk-11.0.2.

  • Отредактировать системную переменную PATH, создав %JAVA_HOME%\bin.

  • Проверить установку JDK.

Установка системных переменных среды (с помощью CLI)

  • Выполнить команды:

setx JAVA_HOME d:\opt\java\openjdk-11.0.2
setx PATH "%PATH%;%JAVA_HOME%\bin"
  • Перезапустить OS.

  • Проверить установку JDK.

Java program lifecycle

Java program lifecycle

Compile and Run time

Write source code

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

Compile with javac to byte code

javac Hello.java

Have byte code

// class version 55.0 (55)
// access flags 0x21
public class Hello {

  // compiled from: Hello.java

  // access flags 0x1
  public <init>()V
   L0
    LINENUMBER 1 L0
    ALOAD 0
    INVOKESPECIAL java/lang/Object.<init> ()V
    RETURN
   L1
    LOCALVARIABLE this LHello; L0 L1 0
    MAXSTACK = 1
    MAXLOCALS = 1

  // access flags 0x9
  public static main([Ljava/lang/String;)V
   L0
    LINENUMBER 3 L0
    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
    LDC "Hello World!"
    INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V
   L1
    LINENUMBER 4 L1
    RETURN
   L2
    LOCALVARIABLE args [Ljava/lang/String; L0 L2 0
    MAXSTACK = 2
    MAXLOCALS = 1
}

Run with interpreter java on JVM

java Hello
java -cp . Hello

See in output

Hello World!

Very hard?

Integrated development environment (IDE)

IntelliJ IDEA

IntelliJ IDEA

Eclipse

Eclipse

NetBeans

NetBeans