Java
5 (100%) 1 vote

Java

Java

Pagrindinės Java teigiamybės

Apžvelkime Java kalbos pagrindines teigiamybes ir trūkumus, lygindami

ją su kol kas populiariausia programavimo kalba C++.

Paprastumas

1) Java neturi adresų (rodyklių) aritmetikos. Java dirba tik su tais

objektais, su kuriais ryšys palaikomas per kintamuosius. Taigi Java

kintamasis savaime nėra objektas, bet tik nuoroda į objektą. Todėl

užrašas (sakinys)

String s;

reiškia, kad s yra nuoroda (kelias), bet ne pats objektas (tolesnėje

programoje panaudoję nuorodą s, vykdymo metu gautumėte klaidą, jog

bandote operuoti su „tuščia” vieta). Todėl prieš naudojant objektą,

būtina jį sukurti. Tam naudojamas specialus sakinys new:

String s = new String(„abcd“);

(String tipo objektą galima sukurti ir tiesiogiai:String s = „abcd“;

2) Neturi goto sakinio (išskyrus praplėstus break ir continue sakinius).

3) Neleidžia metodo vardo perduoti parametrų sąrašu (skirtumas nuo C++),

bet leidžia perduoti objektą (o šis viduje turi metodų).

4) Neturi struct (įrašo) tipo. Bet tai čia atitinka class.

5) Neturi union ir bitinių laukų (bitiniai laukai, kaip grynai aparatinė

funkcija, nesiderina su Java principu „nepriklausanti nuo kompiuterio

architektūros”).

6) Java neleidžia turėti metodų su kintamu parametrų sąrašu. Tai

nesiderina su principu “griežtai tipizuota”, kadangi neįmanoma

patikrinti busimųjų tipų. Tačiau tai leidžia metodų perkrovimo

galimybė (metodų vardai vienodi, bet skiriasi antraštės).

7) Neturi enum, typedef ir #define. Tai atitinka static final tipas.

8) Neturi void parametrų sąraše.

9) Java leidžia aprašyti kintamuosius bet kurioje kodo vietoje (tai

leidžia ir C++).

10) Java neturi globaliųjų kintamųjų (panašiai kaip static tipo

kintamasis, galiojantis visiems tos klasės objektams).

11) Neturi daugialypio paveldėjimo (C++ tai turi). Iš dalies tai

pasiekiama interfeisais.

12) Automatiškai atlaisvina nebenaudojamą atmintį (šiukšlių rinktuvas –

Garbage Collection). Šis šiukšlių rinktuvas kartkarčiais kviečiamas

automatiškai, tačiau programuotojas gali jį išsikviesti ir pats:

System.gc();

Objektų saugyklos

Pagrindinės informacijos saugyklos yra:

1. Registrai. Jie yra procesoriaus viduje, todėl tai pats sparčiausias

išrinkimo tipas. Deja, registrų skaičius labai ribotas. Jais pagal

poreikius manipuliuoja tik pats kompiliatorius.

2. Stekas. Yra RAM’e (tiesioginės kreipties atmintyje). Procesorius saugo

nuorodą į šį steką, ir, vaikštant “aukštyn”/”žemyn”, informacija įrašoma

ir paimama. Gana greitas būdas (antras po registrų). Šiaip jau Java pačių

objektų steke nesaugo, nes reikėtų nuolat perskaičiuoti objektų dydžius,

perstumiant steko nuorodą „aukštyn”/„žemyn”. C++ tai galima.

3. Krūva (heap – „netvarkusis masyvas”). Yra RAM’e. Tai ir yra ta vieta,

kur saugomi visi Java programos objektai. Pagrindinis privalumas tas, kad

kompiliatoriui nereikia žinoti kiek kiekvienas objektas užima vietos. Su

new sakiniu sukurtas objektas vykdymo metu automatiškai pateks į „krūvą”.

Aišku, operacijos sulėtės.

4. Statinė atmintis. Ji taip pat yra RAM’e, tik specialiai tam skirtoje

vietoje. „Krūvoje” esantys tuo momentu nebereikalingi objektai gali būti

šiukšlių rinktuvo automatiškai pašalinti, o statiniai objektų elementai

išlieka iki programos darbo pabaigos. Tokie elementai sukuriami naudojant

atributą static.

Paprastieji tipai. Vis dėlto elementariems aritmetiniems veiksmams

paspartinti Java turi ir paprastų duomenų tipų (byte, int, double, …).

Tai nėra objektai, todėl jiems sukurti nereikia new sakinio. Jų įvedimo

priežastis ta, kad tokiems elementariems objektams sukurti ir padėti į

„krūvą” būtų sugaištama per daug laiko. Paprastųjų tipų kintamieji saugomi

steke.

(Kiekvienam procesui Java turi atskirą steką.

Nepriklausymas nuo asmeninio kompiuterio (PC) architektūros

Daugumos programavimo kalbų galutinis produktas yra vykdomasis (.exe

tipo) modulis, susidedantis iš konkrečių instrukcijų PC procesoriui.

Tačiau Windows sistemos dažniausiai naudoja Intel firmos procesorius,

Macintosh sistema naudoja Motorola arba PowerPC procesorius ir t.t. Be to,

kiekviena sistema (Windows,Unix, Linux) naudoja savas papildomas

bibliotekas. Todėl klasikinė schema

Kodas(Kompiliatorius(Redaktorius(vykdomasis failas (*.exe)(PC

turi vieną gana didelį trūkumą – vienos sistemos produktas dažnai neveikia

kitoje sistemoje.

Šio trūkumo neturi programa, parašyta Java kalba. Esmė ta, kad čia

negeneruojamos instrukcijos procesoriui, bet programos tekstas (kodas)

kompiliuojamas į specialų objektinį kodą, vadinamą baitkodu. Šį kodą toliau

skaito ir vykdo Java abstrakti virtualioji mašina (JVM), kurią turi

kiekviena kompiuterinė sistema. Taigi turime tokią schemą:

Kodas ( Kompiliatorius ( bait-kodas ( JVM

Java abstrakti virtualioji mašina JVM

JVM – tai speciali Sun Microsystems firmos programa

(bait-kodo

interpretatorius), parašyta kiekvienai operacinei sistemai atskirai. Tai

JRE (Java Runtime Environment). Ji itraukta į populiariausių naršyklių

sudėtį (Microsoft Internet Explorer, Netscape Navigator, Opera), į JDK

(Java Development Kit ). Ją galima įdiegti ir atskirai.

JVM jau gaminama ir atskiromis mikroshemomis. Taigi ją galima įdėti ne

tik į PC, bet ir į TV stotis, o ateityje ir į buitinius prietaisus.

Daugiaprocesė

Programa tuo pat metu gali vykdyti keletą procesų (thread).

Daugiaprocesiškumas yra organizuotas objektų lygmeniu – kiekvienas procesas

yra atskiras objektas. Panaudojant synchronized modifikatorių resursai

„užrakinami” (būtų blogai, jei keli procesai vienu metu rašytų informaciją

į tą patį failą).

Programų saugumas

Saugumas užtikrinamas keliais lygiais. Tai ypač svarbu apletams

Šiuo metu Jūs matote 30% šio straipsnio.
Matomi 819 žodžiai iš 2728 žodžių.
Peržiūrėkite iki 100 straipsnių per 24 val. Pasirinkite apmokėjimo būdą:
El. bankininkyste - 1,45 Eur.
Įveskite savo el. paštą (juo išsiųsime atrakinimo kodą) ir spauskite Tęsti.
SMS žinute - 2,90 Eur.
Siųskite sms numeriu 1337 su tekstu INFO MEDIA ir įveskite gautą atrakinimo kodą.
Turite atrakinimo kodą?
Po mokėjimo iškart gausite atrakinimo kodą, kurį įveskite į laukelį žemiau:
Kodas suteikia galimybę atrakinti iki 100 straispnių svetainėje ir galioja 24 val.