Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС-Информационные технологии.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
71.81 Кб
Скачать

5. Управление памятью на Java.

Управление памятью относится к числу тех свойств языка Java, которые заложены в само его ядро и непосредственно обеспечиваются JVM. Память для данных примитивных типов выделяется в области локальных переменных кадра. Кадр для метода выделяется только на время выполнения метода, при завершении выполнения память кадра освобождается, а следовательно, и освобождаются и все локальные переменные. Объект в программе доступен только через переменную, являющуюся ссылкой на него.

В языке Java имеется операция new, которая явным образом выделяет память для тела объекта и возвращает ссылку на созданный объект. Память для каждого объекта выделяется явным образом, при помощи этой операции. Создание новых объектов возможно также неявным образом - некоторые библиотечные методы создают (при помощи той же операции new) новый объект и возвращают ссылку на созданный объект. Программа не освобождает выделенную память, это освобождение выполняется в JVM программным механизмом, который называется сборщиком мусора (garbage collector). Сборщик мусора считает неиспользуемыми те объекты, на которые нет ссылок. Когда накопление мусора приводит к нехватке памяти, вступает в действие сборщик мусора. Для обеспечения работы сборщика мусора в дескрипторе каждого объекта имеется "признак мусора". При создании объекта "признак мусора" устанавливается во взведенное состояние. Алгоритм работы сборщика мусора (один из его вариантов) состоит из двух фаз:

Фаза маркировки. Сборщик мусора просматривает области локальных переменных всех активных в настоящий момент методов, а также поля всех доступных объектов. В дескрипторах тех объектов, на которые есть ссылки в просмотренных областях "признак мусора" сбрасывается

Фаза очистки. Просматривается область кучи, дескрипторы всех объектов. Те объекты, "признак мусора" которых оказывается взведенным (не был сброшен в фазе маркировки), являются мусором, занимаемая ими память освобождается. У тех же объектов, "признак мусора" которых сброшен, этот признак взводится - для подготовки к следующей сборке мусора.

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

6. Интерфейс jdbc, основные классы и методы

JDBC представляет собой Java-данных на базе технологии доступа (Java Standard Edition платформа) от Sun Microsystems, Inc. Эта технология API для языка программирования Java , который определяет, как клиент может получить доступ к базе данных . Он предоставляет методы для запросов и обновления данных в базе данных. JDBC ориентирована на реляционных базах данных .

Функциональность

JDBC позволяет несколько реализаций существовать и использоваться одним и тем же приложением. API предоставляет механизм для динамической загрузки правильный пакет Java и их регистрации с помощью драйвера JDBC Driver Manager Manager. JDBC соединение поддерживает создание и выполнение заявления. Это может быть обновление таких заявлений, как SQL создадим, INSERT, UPDATE и DELETE, или они могут быть запрос предложений, таких как SELECT. Кроме того, хранимые процедуры могут быть вызваны через соединение JDBC.

В приведенном ниже примере показано создание заявление и выполнения запроса.

Заявления зЬтЬ = подкл. createStatement ( ) ;

попробуйте {

ResultSet . RS = зЬтЬ ExecuteQuery ( "SELECT * FROM MyTable" ) ,

попробуйте {

а ( г,. следующий ( ) ) {

Int numColumns = RS. GetMetadata ( ) .getColumnCount ( ) ;

для ( Int я = 1 ; я < = numColumns , я + + ) {

/ / Номера столбцов начинаются с 1.

/ / Также существует много методов результирующего набора возвращаются

/ / столбца, определенного типа. Обратитесь к документации ВС

/ / для списка допустимых преобразований.

Система .из .println ( "столбец" + я + "=" + RS. GetObject ( я ) ) ;

}

}

} наконец {

попробуйте { RS. закрыть ( ) ; } поймать ( Throwable игнорировать ) { / * Распространить исходное исключение, вместо этого, что вы можете просто войти * / }

}

} наконец {

попробуйте { зЬтЬ. закрыть ( ) ; } улова ( Throwable игнорировать ) { / * Распространить исходное исключение вместо этого, что вы можете просто войти * / }

}

JDBC драйвера

JDBC драйверов клиентских адаптеров (установлен на клиентской машине, а не на сервере), которые преобразуют запросы программ Java в протокол, что СУБД может понять.

Типы

Есть коммерческие и бесплатные драйверы для большинства реляционных серверов баз данных. Эти драйверы относятся к одному из следующих типов:

  • Типа 1 , который вызывает машинный код локально доступных драйверов ODBC.

  • Тип 2 , который вызывает базы данных о поставщиках родной библиотеки на стороне клиента. Этот код затем общается с базой данных по сети.

  • Тип 3 , чистой Java драйверов, что переговоры с серверными промежуточного то, что общается с базой данных.

  • Тип 4 , чистый Java драйвер, который использует базу данных собственный протокол.

Существует также тип, называемый внутренний драйвер JDBC , водитель со встроенными в Java JRE с поддержкой баз данных SQL. Он используется для Java хранимых процедур . Это не относится к приведенной выше классификации, хотя она, вероятно, будет либо 2-го типа или тип 4 водителя (в зависимости от того, сама база данных реализована в Java или нет). Примером этого является KPRB драйвер, поставляемый с СУБД Oracle. "JDBC: по умолчанию: связь" является относительно стандартным способом ссылкой принятия такого соединения (по крайней мере, Oracle и Apache Derby его поддерживают). Различие здесь в том, что клиент JDBC на самом деле работает как часть базы данных, доступ, так что доступ может быть сделано непосредственно, а не через сетевые протоколы.

Семь шагов использования JDBC

1. Загрузить драйвер не требуется в Java 6 (т.е. в Java 6 всего 6 шагов :)

2. Определить строку соединения

3. Открыть соединение

4. Создать объект -выражение (Statement)

5. Выполнить запрос

6. Обработать результат

7. Закрыть соединение.