Язык программирования 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, поэтому работает на всех операционных системах.