Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04




Скачать 400.58 Kb.
НазваниеНедашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04
страница1/10
Дата публикации02.03.2013
Размер400.58 Kb.
ТипЛекция
shkolnie.ru > География > Лекция
  1   2   3   4   5   6   7   8   9   10
Распределенные системы обработки информации.

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

Язык Java, среда Eclipse.

Лекция 3.09.04

Литература


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

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

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

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


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

Задачи.

  1. Познакомить студентов с основами языка Java (с учетом знания C++)

  2. Дать общие сведения о РС.

  3. Познакомить с некоторыми технологиями, используемыми при создании РС (RMI, CORBA).

  4. Дать первичные навыки программирования на языке Java.

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

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


1991 Patric Norton – разработка языка, чтобы программировать бытовые устройства.

  • сделать машинонезависимый язык и не зависимый от процессоров. Для этого программы преобразуются в промежуточный код, а он к конкретному процессору. Создается интерпретатор.

  • Собрались C++-ры. Оттуда и основа. Язык был готов 1999 г. Пытались продать – ничего не вышло

  • и сделали они браузер.

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


Таблица 1.1. Сравнение некоторых аспектов C++ и Java

C++

Java

есть объявления и определения

нет

const

нет, есть final

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

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

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

0, 1

false, true

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

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

goto

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

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

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



  1. class Hello
    {
    public static void main(String[] args)
    { System.out.println(“Здравтствуй!”);
    }
    }

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


  1. 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 */
    }
    }
    }

Таблица 1.2. Типы

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

размер, bit




byte

8

знаковый

short

16

знаковый

int

32

знаковый

long

64

знаковый

float

32

знаковый

double

64

знаковый

char

16

Unicode

1.3.1Именованные константы


static final int MAX = 50;

1.3.2Классы и объекты


Создание объектов – отличие:

  1. объекты создаются только в динамической памяти – в куче

  2. new

  3. доступ посредством ссылок.
    Выделяется ячейка памяти под ссылку и с ней мы можем работать и писать туда разные значения. Если ссылка не назначена (показывает) – null.

  4. Передавая объект – передается ссылка, а не копия объекта.


  1. class Point
    {
    public double x, y;
    }

    Point LT = new Point();
    Point BR = new Point();
    LT.x = 0.0;


При объявлении выделяется место для массива ссылок на объект. У массив есть номер… Исполнительная среда контролирует вход за пределы массива. Если создать объект типа String, его можно только читать.

1.3.3Комментарии


/*..*/ - C – style

//.. – C++ - style

/** ..*/ - for javadoc tool

Лекция 21.09.04

  • equals

  • public int hashCode()


protected Object cline() throws CloneNotSupportedException

public final class getClass();

protected void finalize throws Throwabble

1.3.4Класс Object


public String toString(); - дает строковое представление объекта

1.3.5Класс Class


В runtime JRE осуществляет проверку типов объектов  класса.

getClass() возвращает экземпляр типа Class

Emp e; e = new Emp();

Class cl = e.getClass();

getName();

forName()

Class cl = Class.forName(className);

if (e.getClass() = Emp.class)
newInstance
Object m = Class.forName(S).newInstance();
Object.clone()

  1. Обеспечивает простое клонирование путем копирования всех компонентов объекта

  2. поддержка клонирования – Clonable
    clone – не должен предусматривать испоключения

  3. Составные части тоже допускают клонирование.

public clad IntStack implements

{

private int[] buffer;

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

public Object clone{

IntStack nObj = (IntStack) super.cloe();

nObj.buffer = (int []) buffer.clone();

return nObj;

}

}

1.3.6Проверка типов


instanceOf
if(i instanceOf int)
final – класс, нельзя осуществить производные методы, нельзя переписать.
abstract – если предполагается, что метод будет определяться в производных классах, то можно поставить этот тмодификатор.

1.3.7Идентификаторы


public interface X{…

class newClass implements X {…}

1.3.8Обратный вызов


class TmerPrinter

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


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

  2. Вложенный тип является частью вышестоящего типа

  3. Внешние и вложенные типы находятся во взаимном доверии друг к другу с т. з. области видимости.

  4. Вложенные классы могут быть именованными и неименованными.

Объекты внутренних классов неявно несут и ссылку на внешний класс.

1.3.10Исключения




try – catch finally(вызывается после основного обработчика)

class BadDataSetException extends Exception {}

class my{

public double[] g DataSet(String qname) throws BadDataSetException

{

String file = …

try {

} catch (IOException e) {throw BadDatSetException();}

finally {

try {

if (m = null)…


1.3.11Многопоточность


Определение 1.1 Процесс – программа, которая выполняется на одном из процессоров виртуальной системы.
        1. Блокировки


Объекты используют признаки блокировки.

  1. Создание потоков
    контролируется объект класса ‘поток’
    Thread t = new Thread

  2. start – порожден новый поток
    автоматически JVM вызывает метод, который делает поток активным

  3. рассмотрен Thread, Runnable

  4. Создание объектов
    public class PingPing extends Thread {
    private String word;
    private int delay;
    public PingPong (String whatToSay, int Delay) {
    word = whatToSay;
    delay = Delay;
    }
    public void run(){
    try {
    for (;;) {
    System.out.print(word);
    Thread.Sleep(delay);
    } catch (IOException e) { return }
    }

    public static void main (String [] args) {
    new PingPong(“ping1”, 33).start();
    new PingPong(“ping2”, 100).start();
    }
    }

Интерфейс Runable с единственным методом oublic void Run().

Куча примеров…
        1. Синхронизация


Критические секции. Право доступа к свойству (?) блокировки может быть приобретено и возвращено посредством методов и инструкций, помеченных как Synchtonized.

Плохой скан. Дальше, похоже, 2 примера.

  1. Synchronized для методов
    public synchronized void some method()
    {

    }

  2. Synchronized для инструкций
    void some method()
    {
    Synchronized(values)
    {

    }
    }
        1. Взаимодействие потоков


wait();

notifyAll();

notify();
synchronized void DoWhileCondition() {

обязательно [while !условие wait]

//выполнить что-либо

}
synchronized void ChangeCondition() {

//выполнить что-либо

notifyAll();

}


  1. class Cell
    {
    Cell next;
    Object Item;
    Cell(object item ) {this.item = item;}
    }

    class ? {
    private Cell head, tail;
    public synchronized void add(object o)
    {
    Cell p = new Cell(o);
    if (null==tail)
    head = p;
    else
    tail.next = p;
    p.next = null;
    tail = p;
    notifyAll();
    }
    public synchronized object take() throws ?Exception
    {
    while (null ==head)
    wait();
    Cell p = head;
    head = head.next;
    if (null = head)
    tail = null;
    return p.item;
    }
    }
  1   2   3   4   5   6   7   8   9   10

Похожие:

Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 iconКурс лекций: jv 0 Основы языка Java. Среда програмирования Jdeveloper
Аудитория: начинающие разработчики, которые будут использовать язык разработки приложений Java
Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 iconВступление
Основная цель спецификаций – обеспечение мультиплатформенности и масштабируемости приложений. Технологии Java ee поддерживаются многими...
Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 iconЛр интерфейсы. Наследование. Коллекции пакета java util
Цель: приобрести практические навыки разработки программ в среде Eclipse с использованием основных принципов ооп; изучить методы...
Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 iconВопросы, рассматриваемые в курсе: Инсталляция и конфигурация среды...
Курс: Разработка корпоративных Java ee приложений для стандартных серверов приложений (5 дней – 40 академических часов)
Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 iconЛекция Функции физического уровня
Среда передачи – это физическая среда, по которой возможно распространение информационных сигналов в виде электрических, световых...
Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 iconПрограммирование Web-приложений на Java. Часть первая. Основы веб-программирования...
Иложений на Java. Цикл статей подразумевает что читатель уже немного знаком с программированием на Java, Groovy, Scala, Jython, либо...
Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 iconЯзык С# и связанную с ним среду
Язык С# и среда. Net привели к революционным изменениям в способе написания разработчиками программ и сделали программирование приложений...
Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 iconВячеслав Газизов
Вячеслав Газизов является тренером консультантом компании nti и проводит обучение в компании с 2007 года
Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 iconИнструкция по применению плагина Установка плагина Для установки...
В процессе установки появится сообщение о неподписанном контенте плагина (unsigned content); нужно продолжить установку, нажав на...
Недашковский Вячеслав Михайлович Язык Java, среда Eclipse. Лекция 09. 04 icon1 базовые конструкции языка java
В этом языке нет, например, указателей, которые сложны в использовании. Нет множественного наследования и шаблонов, хотя функциональные...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
shkolnie.ru
Главная страница