Знайте, Intuit, лекция, какво история на Java

Платформата Java

Така че, Java има дълга и сложна история на развитие, но е време да се помисли за това, което се случи в създателите, това, което свойства тази технология.

Най-известните и в същото време най-често предизвикват интензивен дебат, имотът - мулти- или различни платформи. Казано е, че това се постига чрез използването на JVM виртуална машина. което е редовна програма, изпълнена от операционната система и приложение на Java предоставя всички необходими удобства. Тъй като са посочени всички варианти JVM, тя е единствената задача - да прилагат виртуални машини за всички съществуващи и използвани платформи.

Наличието на виртуалната машина определя много от свойствата на Java. но сега ние се фокусираме върху следващия въпрос - е съставен или тълкува езика Java? В действителност, се използват и двата подхода.

Много разработчици първоначално силно критикувани Sun смел лозунг "пиша веднъж, тече навсякъде", разкривайки все повече и повече несъответствия и различия в различните платформи. Въпреки това, ние трябва да признаем, че те са прекалено нетърпеливи. Java е в начален стадий, и първата версия на спецификациите не са изчерпателни.

По-отблизо Java обектен модел се извършва по време на курса, но означаване основните функции. На първо място, на създателите на изоставен множествено наследяване. Решено бе, че тя е прекалено сложни и объркващи програма. Езикът използва алтернативен подход - специален тип "интерфейс". Той обсъжда подробно в съответната глава.

Освен това, в Java се използва силна пишете. Това означава, че всяка променлива и всеки израз е вид, който е вече добре известна по време на компилация. Този подход се използва за опростяване на идентифицирането на проблемите, защото компилаторът докладва незабавно грешката и показва местоположението им в кода. Търсене същите изключения (изключения - т.нар невярното случай Java) по време на изпълнение на програмата (по време на работа) изискват по-подробно изследване, причината за дефекта може да се появи в съвсем различен клас. По този начин, трябва да се постави допълнително усилие в писмен вид код, но значително увеличава надеждността (и това е една от основните цели, за които е създаден и новия език).

В Java, има 8 вида данни, които не са обекти. Те са били идентифицирани с първия вариант и никога не се е променило. Този пет вида цели числа: байт, дума, ПНА, дълъг, и към тях принадлежат на характер Чар. След два типа на частично плувка и двойни, и най-накрая булева тип булев. Тези видове се наричат ​​прости или примитивни (от английски език примитивна), и те са разгледани подробно в лекцията на типовете данни. Всички други видове - или референтен обект (английски справка.).

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

Но, както вече бе споменато, C ++ е фундаментално негодни за новите предизвикателства, които са си поставили разработчиците на компанията на Sun, така че моделът Java е построен от нулата, и в съответствие с много различни цели. Други лекции постепенно ще разкрият специфичните различия.

Що се отнася до модела на обекта, а след това най-вероятно е бил построен по модела на езици като Smalltalk от IBM, или разработени в 60-те години на норвежки компютърния център на Университета, Simula език, който се отнася до създателя на Java Джеймс Гослинг.

В Java механизма за автоматично събиране на боклука (от боклук колектор на английски) е въведен от самото начало. Да предположим, програмата създава обект, работи с него, а след това идва един момент, когато тя вече не е необходима. Трябва да освободи паметта, така че да не пречи на операционната система да функционира правилно. В C / C ++ това трябва да бъде направено изрично от програмата. Очевидно е, че с този подход, има две опасности - или да се премахне един обект, който е необходим на някой друг (и ако да то наистина се случи заявка, грешката ще се случи), или да не се вади на обекта, който е станал излишен, и това е изтичане на памет, което означава, програмата започва да консумира повече и повече памет.

При разработването на Java програмист не мисли за освобождаване на памет. Самата виртуална машина брои препратки към всеки обект, а когато се изчерпи, тогава този обект е маркиран за обработка на събирач на боклука. По този начин, програмистът трябва да гледате само, че не е имал връзка с нежелан обект. Събирачът - е фон нишката, която редовно сканира и премахва съществуващите съоръжения вече не са необходими. Програмата не може да се отрази боклукчията. само изрично започне следващото си подаване чрез стандартна функция. Ясно е, че това значително опростява разработването на програми, особено за начинаещи.

Въпреки това, опитни предприемачи са недоволни, че не може да контролира напълно всичко, което се случва с тяхната система. Не точна информация кога точно обект е изтрита, стана ненужен, когато тя започва да работи (и следователно заема системни ресурси) поток от събиране на боклука и т.н. Но, с цялото ми уважение към опита на програмистите, трябва да се отбележи, че голям брой повреди на програми, написани на C / C ++, се пада на неправилно паметта, а понякога и това се случва дори и с широко разпространената хранителни много сериозни компании.

И накрая, бума на интернет 90-те години набира скорост и идва с нови, по-строги изисквания за развитие на зрялост. Многогодишни проекти, които са в последния рутината, вече не отговаря на нуждите на клиентите, новата система е трябвало да бъде създадена за максимален срок от една година, а понякога и в рамките на няколко месеца.

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

Друго важно свойство на Java - сигурност. Първоначалният фокус върху разпределени приложения, и по-специално на решение за изпълнение на аплети на клиентската машина, направена по въпроса за защита на един от приоритетите. Когато се работи всеки Java виртуална машина работи на набор от мерки. По-долу е само кратко описание на някои от тях.

Второ, присъствието на преводач на виртуална машина улеснява отсече зловреден код на всеки етап от работата. Първо байт код е заредена в системата, обикновено под формата на клас-файлове. JVM внимателно проверява всички, дали те са предмет на общите правила на сигурността на Java, и ако не е създаден от хакери с помощта на други средства (и дали прехвърлянето изкривен). След това, по време на изпълнение, преводачът може лесно да се провери по допустимостта на всяко действие. Възможността за класове, които са били натоварени от локалния диск или по мрежата, значително се различава (потребителят може лесно да зададете или отменя специфични права). Например, аплети по подразбиране никога да имат достъп до локалната файлова система. Тези ограничения са изградени във всички стандартни библиотеки на Джава.

Описан набор от Java имоти показва, че езикът е много подходящ за развитието на Интернет и интранет (вътрешна мрежа от корпорации) базирани приложения.

И накрая, важната характеристика на Java - е неговата динамика. Език е много добре замислена в своето развитие участва стотици хиляди разработчици, както и много големи компании. Основните етапи на това развитие накратко, обхванати в следващия раздел.

Така че, нека да обобщим. Java-платформа има следните предимства:

  • поносимост, или по-платформа;
  • OO, ефективен модел обект;
  • обичайно синтаксис на C / C ++;
  • Вградена и ясен модел за сигурност;
  • се фокусира върху интернет-задача на мрежата разпределени приложения;
  • динамика. облекчаване на развитие и добавяне на нови функции;
  • облекчаване на развитие.

Но ние не трябва да се предположи, че по-лесно разработването на средства, за да се учат на език, не е необходимо изобщо. За да напишете наистина добра програма, изграждане на големи, сложни системи се нуждаят от ясно разбиране на основните концепции на Java и библиотеки. Той е този фокус на този курс.

Основната версия, както и Java продукти

Самото начало, че даден продукт се определя като софтуерни решения от Sun Company, които са "модели за изпълнение" (справка за изпълнение).

  • спецификация език Java. JLS. спецификация Java език (който описва на езика, типове данни, основния дизайн и т.н.);
  • JVM спецификация;
  • Java Kit развитие. JDK - инструменти за разработчици, състоящи се предимно от комунални услуги, стандартни библиотеки клас и демонстрации.

спецификация JVM е предназначена предимно за създателите на виртуални машини, поради което почти никога не се използва Java -programmistami.

Първата версия, съдържаща общо 8 стандартни библиотеки:

  • на java.lang - основни класове, необходими за използване на всякакви приложения (име - съкратено език);
  • java.util - много полезни класове помощни;
  • java.applet - класове за създаване на аплети;
  • java.awt. java.awt.peer - библиотека за създаване на графичен потребителски интерфейс (GUI), наречен Abstract Window Toolkit. AWT. Той описва подробно в глава 11;
  • java.awt.image - допълнителни часове за работа с изображения;
  • java.io - работа с потоци от данни (потоци) и файлове;
  • java.net - работа с мрежата.

По този начин, всички от библиотеката започва с Java. те са стандарт. Всички останали (като се започне с МС, орг и т.н.) може да бъде променена по някакъв вариант без подкрепа съвместимост.

Веднага обясняват версии за именуване на системата. Определяне версия се състои от три цифри. Докато първият е винаги 1. Това означава, че поддържането на пълна съвместимост между всички версии 1.h.h. Това е програма, написана на по-стара JDK. винаги успешно се движат по-нова. Ако е възможно, да наблюдава и обратна съвместимост - ако програмата е съставена нова JDK. и каквито и да било нови библиотеки не се използват, в повечето случаи, старата виртуална машина ще бъде в състояние да изпълнява такъв код.

Вторият фигурата е променена от 0 до 4 (последният по време на курс). Във всеки вариант има значително разширяване на стандартни библиотеки (212, 504, 1781, 2130 и 2738 - с броя на класове и интерфейси 1.0 на 1.4), и се добавя някои нови функции на самия език. Променена и комунални услуги са включени в JDK.

И накрая, третата цифра представлява развитието на един-единствен вариант. Езикът или библиотеки не са се променили, само грешките са елиминирани, са оптимизирани, може да се промени (добавени) комунални услуги аргументи. Например, най-новата версия на JDK 1.0 - 1.0.2.

В първия успех JDK 1.0 пристигна и критика. Основните недостатъци, установени от разработчиците, са както следва. На първо място, разбира се, производителност. Първата виртуална машина работи много бавно. Това се дължи на факта, че JVM. в действителност, това е преводач, който работи винаги по-бавно от се изпълнява компилиран код. Въпреки това, успешното оптимизация, за да се елиминира този недостатък, е все още предстои. Също така отбеляза, е по-скоро бедни възможности AWT. липсата на база данни и др.

За първите три седмици на JDK 1.1 е бил изтеглен над 220,000 пъти по-малко от една година - повече от два милиона пъти. В момента, версия 1.1 се счита за напълно остаряла и неговото развитие е спряло на 1.1.8. Въпреки това, поради факта, че най-често срещаните MS IE браузър е все още само поддържа тази версия, тя продължава да се използва, за да напишете малки аплет.

  • Засилено прозорец интерфейс. които са получили специално име - Swing;
  • изпълнение влачене и пускане;
  • поддръжка на 2D-графики, по-удобни за работа с изображения;
  • API за достъпност за потребители с увреждания

Списък на възникващите възможности е много широк, така че ние се изброят най-важните от тях са:

  • Java 2 Platform, Standard Edition (J2SE);
  • Java 2 Platform, Enterprise Edition (J2EE);
  • Java 2 Platform, Micro Edition (J2ME).

В действителност, тази класификация е отдавна, по-специално, на различни спецификации и библиотеки, имаше няколко десетки, а защото е необходимо ясно структуриране. В допълнение, това разделение улеснява развитието и популяризирането на Java технологиите.

J2SE е предназначен за използване в работни станции и персонални компютри. Standard Edition - Java-базирани и пряк развитие JDK (инструмент за разработчици е преименуван j2sdk).

J2EE съдържа всичко необходимо, за да се създаде модерна, надеждност, разпределени сървърни приложения. Условно може да се каже, че Enterprise Edition - е мощен набор от библиотеки (например, Enterprise Java Beans EJB). И един пример за изпълнение на платформа (Application Server, Application Server), което ги поддържа. Действието на такава платформа винаги се основава на j2sdk.

Новата платформа може да работи в два режима - на клиента и сървъра. Режими се различават по други настройки и оптимизиране на алгоритми. По подразбиране, работата е в режим клиент.

Накрая, за да покаже ниво на развитие на стандартното издание са стандартните диаграми, описващи всички компоненти на технологията, документацията за версии 1.3 и 1.4.