на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Распределенные системы обработки информации

Распределенные системы обработки информации

29

Распределенные системы обработки информации

Недашковский Вячеслав Михайлович

Лекции 2006

Содержание

Литература

1. Язык программирования Java

1.1. История и предпосылки

1.2. Сопоставление с C++

1.3. Архитектура Java

1.4. Синтаксис Java

1.5. Простые типы в Java

1.6. Классы и объекты в Java.

1.7. Переменные, именованные константы, массивы, перечисления в Java.

1.8. Наследование и о классе Class.

1.9. Интерфейсы и обратные вызовы в Java.

1.10. Вложенные классы и интерфейсы.

1.11. Цикл for-each, аргументы переменной длины, настраиваемые типы в Java.

1.12. Многопоточность в Java: создание потоков.

1.13. Многопоточность в Java: синхронизация

1.14. Ввод-вывод в Java: общие сведения.

1.15. Форматированный ввод-вывод в Java (J2SE 1.5)

1.16. О программировании графики в Java.

1.17. Реализация технологии клиент-сервер на Java.

1.18. Апплеты в Java.

1.19. Технология RMI в Java.

1.20. Об интерфейсе JDBC.

1.21. Общие сведения о технологии CORBA.

2. Общие положения теории РСОИ

2.1. Понятие о РСОИ

2.2. Примеры РСОИ.

2.3. Нефункциональные требования к РСОИ

2.4. Прозрачность в РСОИ

2.5. Удаленный вызов процедуры: общие сведения

2.6. Передача параметров при удаленном вызове процедур.

2.7. Организация распределенных объектов

2.8. Передача параметров при обращении к удаленным объектам.

2.9. Серверы объектов.

2.10. Перенос кода в РСОИ

2.11. Модель клиент-сервер

2.12. Общие сведение об именовании объектов и службе именования

2.13. Общие сведения о синхронизации в РСОИ

2.14. Жизненный цикл распределенных объектов

3. Технология J2EE

3.1. Общие сведения

3.2. Архитектура J2EE

3.3. EJB - Enterprise Java Beans

Литература

1. Кен Арнолд, Джеймс Гослинг, Дэвид Холмс. Язык программирования Java, 3-е изд. пер. с. англ. -М: изд. дом «Вильямс», 2002.

2. Таренбаум Э. Распределенные системы. Принципы и парадигмы. -СПб: Питер, 2003 - 877с.

3. Эммерих В. Конструирование распределенных объектов. Методы и средства программирования интероперабельных объектов в архитектурах OMG/CORBA, Microsoft/Com и Java/RMI.

4. Изимбал А. А., Анишина М.Л. Технология создания распределенных систем для профессионалов - СПб:

Цель курса: привести основные сведения о языке Java а также общие сведения о РС, и технологиях создания РС; дать первичные навыки программирования на языке Java.

Язык программирования Java

1.1. История и предпосылки

1991г. Группа инжинеров SUN занялась разработкой языка, который можно было бы использовать в бытовых устройствах. Идея - создать язык, который бы не зависил ни от машины, ни от процессора. За основу был взять синтаксис С++. Язык не был востребован. Решили написать браузер с использованием этой технологии. 1 версия языка появилась в 1996 году. 1998 году вышла версия языка Java 1.2 - полноценный язык. Язык платформенно независим. Недостаток - быстродействие. Программы выполняются под виртуальной машиной. Компиляция программ происходит в т.н. байткод, которые потом интерпретируется средой исполнения. В среде исполнения, в свою очередь, присутствует менеджер безопасности. Оcобености:

1. Мобильный код - одна программа, много вычислительных платформ.

2. Безопасный код - встроенная в язык защита от несанкционированного доступа к ресурсам компьютера.

3. Устойчивый код - обнаружение ошибок возможно на ранних стадиях проектирования. Больше нет ошибок управления памятью.

Java написан на основе C++ - синтаксис очень похож.

1.2. Сопоставление с C++

C++

Java

Разедление на объявления и определения

нет

Const

нет, есть final

>> - нет разницы между логическим и арифметическим сдвигом

>> - арифметический

>>> - логический

0, 1

false, true

строки как таковые отсутствуют

ReadOnly, в памяти под новую строку формируется место, старая исчезает из области видимости

goto

нет goto, зато есть break <метка>

1.2 Архитектура Java

Промежуточный код - байт код - виртуальной машины Java. Управляемый код не может содержать указателей. Обязательно должен присутствовать сборщик мусора.

1.3. Синтаксис Java

Простейшая программа:

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

Модификаторы и функция main нужны, чтобы класс был приложением. String[] - массив. Так как в метод main не передается адрес объекта, то он объявлен с модификатором static, а адрес объекта не передается, так как до вызова никакого объекта не создавалось, то передавать нечего.

class Fib {/** Вывод на экран последовательности чисел Фибоначчи, меньших 50 */ public static void main(String[] args) { int l = 1, ni = 1; System.out.println(l); while (ni < l) { System.out.println(ni); ni = l+ni; // новое значение ni l = ni-l; /* новое значение l */ } }} Простые типы в Java

Обозначение типа

Размер (bit)

Примечание

byte

8

знаковый

short

16

знаковый

int

32

знаковый

long

64

знаковый

float

32

знаковый

double

64

знаковый

char

16

Unicode

1.4. Классы и объекты в Java.

Программа на языке Java - совокупность классов. Объявление класса:

abstract class ClassName { [constructors] [variables] [methods] public static void main(String[] args) { … } }

public - класс виден всем остальным классам (если не указан, класс виден только в своем пакете), final - от класса нельзя породить потомков, abstract - нельзя создать экземпляр класса. Функция main не обязательна, это точка входа в программу.

Классы организуются в пакеты (аналог пространств имен). В одном файле может быть только один public-класс.

Создание объекта:

new ClassName(параметры конструктора). Возвращает ссылку на объект.

Класс может содержать объявления конструкторов:

public ClassName(параметры...) { ... }

Если ни один конструктор не определен, неявно определяется конструктор без параметров, которые устанавливает все поля в значения по умолчанию (числа - в нуль, логические - в ложь, ссылки - в null).

В первой строке конструктора можно вызвать другой конструктор:

public MyClass(String a) { … }public MyClass() { this(“default”); … }

Определение методов:

private тип возвр. значения ИмяМетода(параметры метода) { тело метода }

public - метод доступен всем классам, private - только данному классу, protected - только данному классу и его наследникам, без указания спецификатора - метод доступен в пределах пакета.

Определение поля:

protected тип имя [= значение];

Инициализационный блок используется для установки начальных значений:

[static] { операторы присваивания... }

Статический инициализационный блок может инициализировать только статические переменные.

Порядок инициализации объекта:

1. Все поля инициализируются значениями по умолчанию.

2. Срабатывают инициализаторы полей и инициализационные блоки в порядке их следования в коде.

3. Если в первой строке конструктора вызывается другой конструктор, он выполняется.

4. Выполняется конструктор.

5. В классе можно определить метод finalize(), который будет выполняться при сборке мусора.

1.5 Переменные, именованные константы, массивы, перечисления в Java

Переменные - простых типов и ссылочные. Простые непосредственно содержат значение, ссылочные - ссылку на объект. Ссылочным переменным можно присвоить null.

Простые типы: int, short, long, byte, float, double, char, boolean. Беззнаковых типов нет. Размерность типов не зависит от платформы. Char всегда 2 байта.

Для простых типов есть их объектные аналоги: Integer, Character и т.п.

Константы обозначаются ключевым словом final (например, final double MAX = 5; - требуется явная инициализация при объявлении).

Массив - объект, содержащий ссылки на другие объекты.

MyType[] array = new MyType[5];array[3] = new MyType();int size = array.length; // 5int[] iarr = { 1, 2, 3 };

Изначально всем элементам массива присваиваются значения по умолчанию.

Класс java.util.Arrays содержит статические методы для работы с массивами: сравнение, сортировка, поиск и т.п.

Перечисление - тип объекта, который может принимать ограниченное множество значений. Раньше для этого использовались классы, унаследованные от интерфейса Enumeration (методы hasMoreElements() и nextElement()). В Java 5 появился enum, как в C++.

public enum MyEnum { FIRST, SECOND, THIRD };

Enum - это полноценный класс, его значения - экземпляры класса. Каждому значению можно сопоставить параметры конструктора:

public enum MyEnum { FIRST(“first”), SECOND(“second”), THIRD(“third”); MyEnum(String arg) { text = arg; } String getText() { return text; } private String text; }

Можно перебрать все значения enum в цикле for:

for (MyEnum m : MyEnum.values())doSomething(m);1.6 Наследование и о классе Class

Наследование:

class DerivedClass extends BaseClass {…}

Можно наследовать только один класс (нет множественного наследования), зато можно реализовывать несколько интерфейсов. Для обращения к полям и методам суперкласса в методе дочернего класс используется super. Также можно вызывать конструктор базового класса в конструкторе дочернего:

public DerivedClass() { super(param1, param2); … }

Для переопределения метода достаточно еще раз описать его в дочернем классе, все методы подвержены полиморфизму (нет необходимости объявлять их виртуальными). Чтобы метод нельзя было переопределить, используется модификатор final. Также можно объявить final класс, тогда от него нельзя будет унаследовать другие классы.

Если объявить класс abstract, то нельзя создать его экземпляр, только унаследовать. Метод тоже может быть abstract - в этом случае его тело определяется не в этом классе, а в дочерних.

Дочерним классам доступны поля и методы уровня public и protected.

a instanceof B - возвращает true, если a - экземпляр класса B, в противном случае false.

Если наследуемый класс не указывается явно, то неявным базовым классом становится Object. Таким образом, каждый класс унаследован (возможно, косвенно) от Object. Переменную типа Object можно использовать как ссылку на любой объект. Простые типы не наследуются от Object. Object содержит ряд важных методов:

equals() - проверяет эквивалентность двух объектов. Изначально проверяет только равенство ссылок, поэтому должен переопределяться в дочерних классах.

getClass() - возвращает объект типа Class, описывающий тип данного объекта.

hashCode() - генерирует целое число на основе состояния конкретного объекта. Метод используется при включении объекта в хэш-таблицу. При переопределении equals() надо переопределять и hashCode() - у эквивалентных объектов хэш-коды должны совпадать.

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.