Обзор архивов JAR

Классификация программных платформ Java. Основные особенности языка программирования. Создание файла с помощью обычного текстового редактора. Объектные переменные, объекты, ссылки и указатели. Архивы в Java, порядок подключения готовых JAR-файлов.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 11.03.2019
Размер файла 25,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http: //www. allbest. ru/

Балаковский инженерно-технологический институт - филиал федерального государственного автономного образовательного учреждения высшего образования «Национальный исследовательский ядерный университет (МИФИ)»

Balakovo Institute of Engineering and Technology - Branch Federal State Autonomous Educational Institution of Higher Education "National Research Nuclear University (MEPI)"

Обзор архивов JAR

Overview of JAR archives

Разин Д.А.

Razin D.A.

Содержание

Введение

1. Основные особенности языка

2. Классификация платформ Java

3. Основные возможности платформы Java

4. Объектные переменные, объекты, ссылки и указатели

5. Сборка мусора

6. Классы и функции

6.1. Статические методы и поля

6.2. Финальность

6.3. Абстрактность

6.4. Интерфейсы

7. Архивы JAR

8. Подключение готовых JAR-файлов

Список используемых источников

Введение

Java - объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems и официально выпущенный 23 мая 1995 года. В отношении произношения в русском языке, как и в ряде других, образовались две различные нормы - заимствованная англоязычная и традиционно-национальная «Ява», соответствующая традиционному произношению названия острова Ява.

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

Изначально язык программирования назывался Oak (от русского языка Дуб) и разрабатывался Джеймсом Гослингом для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Назван в честь марки кофе Java, любимого программистами, поэтому на официальной эмблеме языка Java изображена чашка с дымящимся кофе [1].

1. Основные особенности языка

Программы на Java транслируются в байт-код, выполняемый виртуальной Java-машиной (Java Virtual Machine) - программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор, нос тем отличием, что байтовый код, в отличие от текста, обрабатывается значительно быстрее.

Достоинство подобного способа выполнения программ - в полной независимости байт-кода от операционной системы (ОС) и оборудования, что позволяет выполнять Java-приложения на любом устройстве, которое поддерживает виртуальную машину. Еще одной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание. Это позволяет пользователям загружать программы, написанные на Java, на их компьютеры (или другие устройства) из неизвестных источников, при этом не опасаясь заражения вирусами, пропажи ценной информации и тому подобное.

2. Классификация платформ JAVA

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

1. J2EE или Java EE (начиная с v1.5) - Java Enterprise Editon, для создания программного обеспечения уровня предприятия (самая популярная серверная технология);

2. J2SE или Java SE (начиная с v1.5) - Java Standard Editon, для создания пользовательских приложений, в первую очередь - для настольных систем;

3. J2ME, Java ME или Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности, в том числе мобильных телефонах, PDA, встроенных системах

Последним релизом является версия 1.6, в которой было произведено улучшение системы безопасности, улучшение поддержки скриптового языка Mozilla Rhino, улучшена интеграция с рабочим столом, добавлены некоторые новые возможности в создании графических интерфейсов.

3. Основные возможности платформы JAVA

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

2. Расширенные возможности обработки исключительных ситуаций;

3. Богатый набор средств фильтрации ввода - вывода;

4. Набор стандартных коллекций, таких как массив, список, стек и тому подобное;

5. Наличие простых средств создания сетевых приложений;

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

7. Стандартизованный доступ к базам данных на основе Java Database Connectivity и пространство имен.

4. Объектные переменные, объекты, ссылки и указатели

В языке Java имеются только динамически создаваемые объекты. Причем переменные объектного типа и объекты в Java - совершенно разные сущности.

Переменные объектного типа являются ссылками, то есть неявными указателями на динамически создаваемые объекты. Это подчёркивается синтаксисом описания переменных.

Пример правильного объявления переменных:

double[][] a = new double[10][20]; example a = new example(30);

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

Объектными являются переменные любого типа, кроме простых числовых типов. Явных указателей в Java нет. В отличие от указателей C, C++ и других языков программирования, ссылки в Java в высокой степени безопасны благодаря жёстким ограничениям на их использование, в частности:

1. Нельзя преобразовывать объект типа int или любого другого примитивного типа в указатель или ссылку и наоборот;

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

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

В Java нет операций взятия адреса амперсанда (&) или взятия объекта по адресу (*). Звёздочка в Java означает умножение, и только. Амперсанд (&) означает всего лишь «побитовое и» (двойной амперсанд - «логическое и»).

Благодаря таким специально введенным ограничениям в Java невозможно прямое манипулирование памятью на уровне физических адресов.

5. Сборка мусора

В языке Java невозможно явное удаление объекта из памяти - вместо этого реализована сборка мусора. Традиционным приёмом, дающим сборщику мусора указание на освобождение памяти, является присваивание переменной пустого значения null. Но это не значит, что объект, заменённый значением null, будет непременно и немедленно удалён. Данный приём всего лишь устраняет ссылку на объект, то есть отвязывает указатель от объекта в памяти. При этом следует учитывать, что объект не будет удален сборщиком мусора, пока на него указывает хотя бы одна ссылка из используемых переменных или объектов. Существуют также методы для инициации принудительной сборки мусора, но не гарантируется, что они будут вызваны исполняющей средой, и их не рекомендуется использовать для обычной работы.

6. Классы и функции

Java не является процедурным языком: любая функция может существовать только внутри класса. Это говорит о том, что терминология языка Java представлена не в виде функций, а в методах (это также преобразованные стандартные функции). Например, в Java нет функции синуса (sin()), а есть метод Math.sin() класса Math (содержащего, кроме синуса другие математический методы - cos(), exp(), sqrt(), abs() и многие другие).

6.1 Статические методы и поля

Для того чтобы не надо было создавать объект класса Math (и других аналогичных классов) каждый раз при вызове математических функций, введено понятие статических методов. Статический метод - static можно вызвать, не создавая объекта его класса. Пример реализации:

double a = Math.sin(1).

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

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

6.2 Финальность

Ключевое слово final (финальный) означает разные вещи при описании переменной, метода или класса. Финальная переменная (именованная постоянная величина) инициализируется при описании и дальше не может быть изменена. Финальный метод не может быть переопределён при наследовании и не может иметь наследников.

6.3 Абстрактность

В Java методы, не объявленные явно как final или private (индивидуальный), являются виртуальными в терминологии C++: при вызове метода, по-разному определённого в базовом и наследующем классах, всегда производится проверка времени выполнения.

Абстрактным методом (abstract) в Java называется метод, для которого заданы параметры и тип возвращаемого значения, но не тело. Абстрактный метод определяется в классах-наследниках. Например в C++ то же самое называется чисто виртуальной функцией. Для того чтобы в классе можно было описывать абстрактные методы, сам класс должен быть описан как абстрактный (объекты абстрактного класса создавать нельзя).

6.4 Интерфейсы

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

Пример реализации наследования extends, где наследуются элементы из JPanel - стандартной панели Java:

public class ControlPanel extends JPanel{

/*тело класса*/

}

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

Интерфейсы можно передавать методам как параметры, но нельзя создавать объекты их типов.

7. Архивы JAR

JAR расшифровывается как Java ARchive - архив Java. В Общем JAR - файл представляет собой обычный ZIP - файл с некоторыми дополнениями. Основная задача этого архива - хранить файлы с классами. То есть пакеты или каталоги, внутри которых находятся файлы с расширение «class» архивируются и JVM может их использовать уже в более удобном (компактном) виде.

Выгода очевидна - в реальных проектах вы вряд ли пользователь будет ограничиваться использованием библиотек классов только из JDK - скорее всего человек будет подключать множество классов, которые были созданы для решения определенных задач. Если все это огромное количество находилось бы на диске в виде файлов с расширением «class», то легко понять, насколько это неудобно и громоздко. Разработчики Java предложили вполне элегантное решение - пользователь может подключать архивные файлы, в которых запакованы тысячи скомпилированных классов. Несомненно, это конечно же удобнее, чем перемещать за собой в каждый проект все директории со всеми файлами.

Очень хороший пример представлен в каталоге JAVA_HOME/jre/lib - там находится очень важный архив - rt.jar. Эта библиотека содержит основные классы - String, JFrame, JButton, Date, Object. Такой архив можно открывать любой программой архиватором, установленной на компьютере.

Просматривая содержимое JAR - файла, пользователь рано или поздно обратит внимание на каталог META - INF с файлом MANIFEST.MF. Файл позволяет расширить функциональность - кроме обычного набора классов, JAR - файл может выполнять функции электронной подписи, поддержки версионности, подключения библиотек к самому архиву, определение класса для запуска (содержит основной метод main) [2, 3].

8. Подключение готовых JAR-файлов

Итак основная функция JAR - содержать набор классов в виде файлов с расширением «class». Далее рассмотрим, как подключать JAR - файлы к запускаемому классу, чтобы запускаемый класс мог использовать классы из JAR - файла. Запуск программы на Java включает запуск JVM и передача ей из командной строки имени класса, который пользователь собирается запускать. Например, для запуска класса First в пакете edu.java.test надо в каталоге, внутри которого находится каталог edu/java/test набрать такую команду: java edu.java.test.First;

В качестве аргумента пользователь передает полное имя класса, который собирается запускать. JVM кроме имени класса принимает достаточно много параметров, которые позволяют конфигурировать те или иные свойства JVM. Существует очень важный элемент - CLASSPATH - который используется для подключения JAR - файлов. Рассмотрим полный цикл создания JAR - файла и его подключения без использования IDE - через командную строку, полезный навык для программиста. Плюсы такие, что пользователь действительно понимает суть. Например, в том же Unix/Linux очень большое количество работы гораздо удобнее делать в командной строке и некоторые продукты содержат утилиты, запускаемые из командной строки: Допустим, что пользователь создал каталог JavaLesson. В этом каталоге создал структуру каталогов JarLib/edu/java/jar. Далее с помощью обычного текстового редактора создал файл ExampleOne.java:

программирование java архив текстовый

package edu.java.jar; public class ExampleOne{ public void exampleOne() {

System.out.println("Привет");

}

}

Далее в каталоге JavaLesson/JarLib скомпилируем файл ExampleOne.java вот такой командой:

java -cp .;JarLib/say.jar UseHello

После успешной компиляции идет создание JAR - файла с помощью команды:

jar cf say.jar edu/java/jar/ ExampleOne.class

В каталоге появится созданный файл.

Затем создается класс, который будет использовать наш класс ExampleOne. Для правильного пользования класса создаем этот класс в каталоге JavaLesson и причем без пакетов. Следовательно пользователь получает файл UseHello.java в каталоге JavaLesson:

import edu.java.jar. ExampleOne; public class UseHello

{ public static void main(String[] args) { ExampleOne eo = new ExampleOne (); eo. exampleOne ();

} }

Следует обратить внимание на первую строчку - в ней пользователь импортирует класс ExampleOne. В методе main пользователь создает объект и вызывает его метод. При компиляции в командной строке отобразится наше сообщение «Привет» [2].

Список используемых источников

1. http://dic.academic.ru/dic.nsf/ruwiki/1219341

2. http://java-course.ru/begin/jar/

3. https://ru.wikipedia.org/wiki/Java

Размещено на Allbest.ru

...

Подобные документы

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.

    курсовая работа [197,5 K], добавлен 19.11.2009

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

  • Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.

    курсовая работа [962,8 K], добавлен 13.01.2016

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

  • Методология объектно-ориентированного программирования в Java. Понятия класса, объекта и объектной переменной. Динамическая и статическая объектные модели. Логическое структурирование приложения. Наследование в Java. Отличия интерфейсов от классов.

    курс лекций [547,2 K], добавлен 01.05.2014

  • Классы, объекты и объектные ссылки. Особенности статических методов. Конструкторы, специальные переменные, наследование. Создание объектов внутренних классов. Соглашения об именовании. Некоторые методы класса Object. Абстрактные классы и атрибуты.

    лекция [130,6 K], добавлен 21.06.2014

  • Архитектура уровня команд платформы Java, формат файла класса Java. Компилятор ассемблероподобного языка, позволяющий создавать файлы классов, корректно обрабатываемые реальной JVM, поддерживающий все команды байт-кода Java и важнейшие возможности JVM.

    курсовая работа [292,6 K], добавлен 17.09.2008

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Динамическая инициализация объектов в Java с помощью зарезервированного слова new. Порядок вызовов при создании объекта. Порядок выполнения операторов при наличии блоков инициализации. Чтение и запись файлов в программе, иерархия классов ввода/вывода.

    контрольная работа [120,6 K], добавлен 07.06.2011

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

    курсовая работа [1,2 M], добавлен 07.07.2012

  • Разработка текстового редактора с подсветкой синтаксиса языков программирования. Загрузка из XML-файла настроек для подсветки синтаксиса и конструкций языка. Формат файлов конфигурации и проверки. Разбор текста и применение к нему стилей, тестовый пример.

    курсовая работа [141,6 K], добавлен 13.03.2013

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.

    презентация [46,1 K], добавлен 25.04.2014

  • Общая характеристика и оценка возможностей языка программирования си-шарп, его сходные и отличительные черты от С++ и Java. Разработка с помощью данного языка программирования лексического и синтаксического анализатора. Составление таблиц разбора.

    курсовая работа [111,6 K], добавлен 11.06.2010

  • Язык программирования Java, история и предпосылки его создания. Переменные, именованные константы, массивы, перечисления. Интерфейсы и обратные вызовы в Java. Удаленный вызов процедуры: общие сведения. Передача параметров при удаленном вызове процедур.

    курс лекций [526,7 K], добавлен 24.06.2009

  • Необходимые компоненты и порядок составления текстового редактора. Текст программы решения задачи на языке программирования C++. Контрольный пример работы текстового редактора. Создание и произведение операции форматирования простого документа.

    курсовая работа [1,6 M], добавлен 03.09.2011

  • Разработка программы, реализующей построение объемной гистограммы с использованием свойств языка программирования Java. Возможность графически отобразить статистические данные урожайности как основное требование к программе. Реализация кода программы.

    курсовая работа [333,5 K], добавлен 21.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.