Мова програмування Java: з чого почати вивчення. Де застосовується Java

Java – ЯП від компанії Sun microsystems. Спочатку розроблявся як мова програмування електронних пристроїв, але пізніше став використовуватися для написання додатків серверного ПО. Програми на Java – кросплатформені, тобто здатні працювати на будь-яких операційних системах.

Основи програмування на мові Java

Java як мову з підтримкою об’єктного орієнтування відповідає основним принципам ООП:

  • спадкування;
  • поліморфізм;
  • інкапсуляція.

В центрі «Джава», як і в інших ООЯ, – об’єкт і клас з конструкторами і властивостями. Починати навчання мови програмування Java краще не з офіційних ресурсів, а з посібників для новачків. У таких манулах докладно описуються можливості, надаються приклади коду. У книгах на кшталт “Мова програмування Java для початківців” докладно роз’яснюються основні принципи і особливості названого мови.

Особливості

Код на мові програмування Java транслюються в байт-код, а потім виконується на віртуальній машині JVM. Перетворення в байт-код здійснюється на Javac, Jikes, Espresso, GCJ. Існують такі компілятори, які транслюють мова «Сі» в Java байт-код. Таким чином, додаток на «Сі» може працювати на будь-яких платформах.

Синтаксис «Джава» характеризується наступним:

  • Імена класів повинні починатися з великої літери. Якщо назва складається з кількох слів, то друге повинно починатися з літери.
  • Якщо для формування методу використовується кілька слів, то друге з них має починатися з великої літери.
  • Обробка починається з методу main() – він є частиною кожної програми.
  • Типи

    Мова програмування Java має 8 примітивних типів. Вони представлені нижче.

    • Boolean – логічний тип, приймає лише два значення true і false.
    • Byte – найменший цілочисельний тип розміром 1 байт. Він використовуються при роботі з потоком даних або файлів, необробленими двійковими даними. Має діапазон від -128 до 127.
    • Short має діапазон від -32768 до 32767, використовується для представлення чисел. Розмір змінних цього типу – 2 байти.
    • Int теж позначає числа, але його розмір – 4 байти. Він частіше інших використовується для роботи з цілочисловими даними, а byte і short іноді підвищуються до int.
    • Long використовуються для великих цілих чисел. Можливі значення знаходяться у діапазоні від -9223372036854775808 до 9223372036854775807.
    • Float і double застосовуються для позначення десяткових. Їх різниця в тому, що float зручний, коли не потрібна висока точність в дробової частини числа.
    • Double виводить на екран всі знаки після них «.», а float – тільки перші.
    • String найбільш використовуваний примітивний тип, за допомогою якого задаються рядка.

    Класи і об’єкти

    Важливу роль в книзі «Вивчення мови програмування Java для початківців» займають класи і об’єкти.

    Клас визначає шаблон для об’єкта, у нього обов’язково є атрибути і методи. Для його створення застосовують ключове слово Class. Якщо він створюється в окремому файлі, ім’я класу і файлу повинні бути однаковими. Сама ж назва складається з двох частин: імені і розширення .Java.

    У «Джава» можна створювати підклас, який буде наслідувати методи батьківського. Для цього використовується слово extends:

    • class имя_класса extends имя_суперкласса {};

    Конструктор є складовими будь-якого класу, навіть якщо це явно не встановлено. В такому випадку компілятор його створює самостійно:

    • public class Class{ public Class(){ } public Class(String name){ }}

    Ім’я конструктора збігається з ім’ям класу, за замовчуванням у нього є лише один параметр:

    • public Puppy(String name)

    Object створюється з класу з допомогою оператора new():

    • Point р = new Point()

    Він отримує всі методи і властивості класу, з допомогою яких взаємодіє з іншими об’єктами. Один об’єкт можна використовувати кілька разів під різними змінними.

    • class Point {

      int x, y;

      }

      Point р = new Point()

      class TwoPoints {

      public static void main(String args[]) {

      Point p1 = new Point();

      Point p2 = new Point();

      p1.x = 10;

      p1.y = 20;

      р2.х = 42;

      р2.у = 99;

      } }

    Об’єктні змінні та об’єкти – абсолютно різні сутності. Object variables є посиланнями. Вони можуть вказувати на будь-які змінні непримитивного типу. На відміну від C++ їх типове перетворення жорстко регламентовано.

    Поля і методи

    Поля – це всі змінні, пов’язані з класом або об’єктом. За замовчуванням вони є локальними і не можуть використовувати в інших класах. Для доступу до полів використовується оператор «.»:

    • classname.variable

    Можна задати статичні поля за допомогою ключового слова static. Такі поля є єдиним способом зберігати глобальні змінні. Це пов’язано з тим, що в «Джава» просто немає global variables.

    Реалізована можливість імпорту змінних для отримання доступу з інших пакетів:

    • import static classname;

    Метод – підпрограма для тих класів, в яких оголошено. Описується на тому ж рівні, що і змінні. Задається у вигляді функції і може мати будь-який тип, в тому числі void:

    • class Point { int х, у;

      void init(int a, int b) {

      х = а;

      У = b;

      } }

    У прикладі вище клас Point має поля типу integer x і y, метод init(). Доступ до методів, як і до змінних, здійснюється шляхом використання оператора «.»:

    • Point.init();

    Властивість init нічого не повертає, тому має тип void.

    Змінні

    У самовчителі мови програмування Java окреме місце займають змінні. У всіх змінних є конкретний тип, він визначає необхідне місце для зберігання значень, діапазон можливих значень, список операцій. Перш ніж маніпулювати значеннями, змінні оголошуються.

    Одночасно може бути оголошено кілька змінних. Для їх перерахування використовується кома:

    • int a, b, c;

    Ініціалізації здійснюється після або під час оголошення:

    int a = 10, b = 10;

    Існує кілька типів:

    • local variables (локальні);
    • instance variables (змінні екземпляра);
    • static variables (статичні).

    Local variables оголошують в методах і конструкторів, вони створюються під час запуску останніх і знищуються після завершення. Для них заборонено вказувати access modifiers і управляти рівнем доступності. Вони не видимі за межами оголошеного блоку. В Java змінні не мають початкового значення, тому воно в обов’язковому порядку присвоюється перед першим використанням.

    Instance variables повинні бути оголошені усередині класу. Вони використовуються як методи, але отримати до них доступ можна тільки після створення об’єкта. Змінна руйнується, коли знищується об’єкт. У примірникових змінних, на відміну від локальних, існують значення за замовчуванням:

    • числа – 0;
    • логіка – false;
    • посилання – null.

    Static variables називаються змінними класу. Їхні імена починаються з символу у верхньому регістрі, конкретизуються модифікатором static. Вони використовуються як константи, відповідно, до них додається один спецификатор зі списку:

    • final;
    • private;
    • public.

    Запускаються на початку програми, знищуються після зупинки виконання. Так само, як змінні екземпляра, мають стандартні значення, які присвоюються порожнім змінним. У чисел – значення 0, булеві змінні мають значення false, посилання на об’єкт спочатку мають null. Статичні змінні викликаються в наступному вигляді:

    • ClassName.VariableName.

    Збирач сміття

    У самовчителі “Мова програмування Java для новачків” розділ автоматичного збирача сміття є найбільш цікавим.

    В Java, на відміну від мови “Сі”, неможливо ручне видалення об’єкта з пам’яті. Для цього реалізовано метод автоматичного видалення – збирач сміття. При традиційному видаленні через null відбувається лише усунення посилання на об’єкт, а сам об’єкт видаляється. Існують методи примусової сміття, хоча вони не рекомендовані для використання у звичайній роботі.

    Модуль автоматичного видалення невикористовуваних об’єктів працює у фоновому режимі запускається при простої програми. Для очищення об’єктів з пам’яті програма зупиняється, після звільнення пам’яті прерваная операція поновлюється.

    Модифікатори

    Розрізняють різні типи модифікаторів. Крім тих, які визначають спосіб доступу, існує модифікатори методів, змінних, класу. Методи, оголошені як private, доступні тільки в оголошеному класі. Такі змінні не можуть використовуватися в інших класах та функції. Public відкриває доступ для будь-якого класу. Якщо потрібно отримати Public class з іншого пакета, то його слід попередньо імпортувати.

    Модифікатор protected схожий на дію на public – відкриває доступ до полів класу. В обох випадках змінні можуть використовуватися в інших класах. Але паблік-модифікатор доступний абсолютно для всіх, а протектед-модифікатор – тільки для успадкованих класів.

    Модифікатор, який застосовується при створенні методів, – static. Це означає, що створений метод існує незалежно від екземплярів класу. Модифікатор Final не управляє доступом, а вказує на неможливість подальшого маніпулювання значеннями об’єкта. Він забороняє зміну того елемента, для якого вказано.

    Final для полів унеможливлює зміну першого значення змінної:

    • public static void mthod(String[] args) {

      final int Name = 1;

      int Name = 2;// видасть помилку

      }

    Змінні з модифікатором final є константами. Їх прийнято писати великими літерами. CamelStyle та інші способи не працюють.

    Final для методів вказує заборона на зміну методу в успадкованому класі:

    • final void myMethod() {

      System.out.printIn(“Hello world”);

      }

    Final для класів означає, що не можна створити спадкоємців класу:

    • final public class Class {

      }

    Abstract – модифікатор створення абстрактних класів. Будь-абстрактний клас і абстрактні методи призначені для подальшого розширення в інших класах і блоках. Модифікатор transient вказує віртуальній машині не обробляти задану змінну. У цьому випадку та просто не збережеться. Наприклад, transient int Name = 100 не збережеться, а int b збережеться.

    Платформи і версії

    Існуючі сімейства мови програмування Java:

    • Standard Edition.
    • Enterprise Edition.
    • Micro Edition.
    • Card.

  • SE – є основним, широко використовується для створення користувацьких додатків для індивідуального використання.
  • EE – набір специфікацій для розробки ЩОДО рівня підприємства. Містить більше можливостей, ніж SE, тому використовується в комерційних масштабах на великих і середніх підприємствах.
  • ME – призначені для пристроїв з обмеженою потужністю і пам’яттю, у них, як правило, малий розмір дисплея. Такими пристроями є смартфони і КПК, ресівери цифрового телебачення.
  • Card – призначена для пристроїв з вкрай обмеженими обчислювальними ресурсами, наприклад таких, як смарт-карти, sim-карти, банкомати. Для цих цілей був змінений байт-код, вимоги до платформи, що становить бібліотек.
  • Застосування

    Програми на мові програмування Java, як правило, більш повільні і займають більше оперативної пам’яті. Порівняльний аналіз мов Java і «Сі» показав, що «Сі» трохи продуктивніше. Після численних змін і оптимізації віртуальної машини Java поліпшив свої показники.

    Активно використовується для створення мобільних додатків під Android. Програма компілюється в нестандартний байт-код, виконується на віртуальній машині ART. Для компіляції застосовується Android Studio. Це IDE від компанії «Гугл» є офіційною для розробки під ОС Android.

    Microsoft розробила власну реалізацію віртуальної машини Java MSJVM. Вона мала такі відмінності, які ламали основоположну концепцію кроссплатформенности – відсутня підтримка деяких технологій і методів, що були нестандартні розширення, що працюють тільки на платформі Windows. Microsoft випустив мова J#, синтаксис і робота в цілому якого дуже нагадує Java. Він не відповідав офіційної специфікації і в підсумку був виключений із стандартного інструментарію розробника Microsoft Visual Studio.

    Мова програмування Java і середовище

    Розробка програмного забезпечення здійснюється у таких IDE:

  • JDK.
  • NetBeans IDE.
  • Eclipse IDE.
  • IntelliJ IDEA.
  • JDeveloper.
  • Java для iOS.
  • Geany.
  • JDK поширюється компанією Oracle як комплект розробника на мові Java. Включає компілятор, стандартні бібліотеки, утиліти, виконавчу систему. Сучасні інтегровані середовища розробки спираються саме JDK.

    Зручно писати код на мові програмування Java в середовищі Netbeans і Eclipse IDE. Це вільні інтегровані середовища для розробки, вони підходять під всі платформи «Джава». Також використовуються для програмування на Python, PHP, JavaScript, C++.

    IntelliJ IDE від компанії Jetbrains поширюється в двох варіантах: безкоштовному і комерційному. Підтримує написання коду на багатьох мовах програмування, існують сторонні плагіни від розробників, в яких реалізовано ще більшу кількість МП.

    JDeveloper – ще одна розробка від компанії Oracle. Повністю написана на Java, тому працює на всіх операційних системах.