Javas raksturojumi

Last modified by superadmin on 2018-01-12 20:40

Javas raksturojumi

Servera puses programmēšanā pasaulē ļoti izplatītas ir divas radniecīgas Javas tehnoloģijas: servleti un JSP (Java Server Pages). Saskaņā ar Sun Microsystems definīciju, Java ir valoda, kurai piemīt virkne labu īpašību: JAVA: A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language. Uzskaitīsim un īsi raksturosim dažas Javas īpašības.

Izturīga (robust)
Programmēšanas kļūdas un citas neparedzētas situācijas izraisa Javas izņēmumus - tos vai nu apstrādā pati Javas programma izvadot paziņojumu, vai arī Javas interpretators attiecīgo klienta apstrādes pavedienu aptur arī ar atbilstošu paziņojumu. Kļūdas nenoved pie Web servera vai datora "uzkāršanās". ("Out-of-process" DLLi, piemēram, Microsoft ASP tehnoloģijās arī veicina izturību - kļūda viena klienta aplikācijā nenoved pie Web servera pēkšņas apstāšanās. Tomēr Web izstrādātāja veidots DLL ir procesoram tieši izpildāms kods, kurš var izraisīt kļūmes pašas operētājsistēmas darbībā drīzāk nekā Javas Virtuālā Mašīna.)
Droša (safe)
Java platforma var izpildīt neuzticamus apletus un citu kodu, to darbinot Javas interpretatora smilšukastē. Javas servletu gadījumā Web servera administrators var konfigurēt katrai aplikācijai atļautās darbības - kādus failus rakstīt un lasīt, kādas tīklošanās darbības veikt. Tādā veidā neuzmanīgs Web programmētājs nevar izveidot neparedzētus drošības "caurumus" Web serverī un Web administrators var justies mierīgāk.
Platformneatkarīga (architecture neutral)
Javas programmu sakompilēto starpformātu (.CLASS failus) var darbināt uz visām platformām, uz kurām ir Javas interpretators. Sun lozungs: Write once, run anywhere. Servera puses aplikāciju gadījumā tas nozīmē neatkarību no platformas (WinNT, Win2000, UNIX, FreeBSD, Linux), no Web servera, arī relatīvi lielu neatkarību no datubāzu servera. Tātad Web aplikāciju var viegli pārnest uz citu serveri.
Objektorientēta (object oriented)
Objektorientētība ir konsekventāka nekā C++; visi mainīgie/funkcijas ir kāda objekta lauki/metodes. Toties daudzkāršā mantošana, šabloni, u.c. problemātiskie objektorientācijas mehānismi Javā nav iekļauti. Atšķirībā no citām valodām, kurām ir objektorientētības iezīmes (tādas ir lielais vairums moderno programmēšanas valodu), Javā izstrādātājs nevar uzrakstīt neko, kas nebūtu iekapsulēts noteiktā pakotnē un klasē. Tātad sistēmanalītiķim ir viegli uzprojektēt interfeisus un redzamības nosacījumus, sadalot moduļus dažādiem programmētājiem.
Vienkārša (simple)
Valodas konstrukcijas ir vienkāršas (līdzīgi kā valodā C). Toties standartbibliotēkas ("Core API" pakotnes) ir daudz un ar sarežģītu uzvedību. No otras puses - Javas konstrukciju uzvedības detalizēta izpratne bieži prasa domāt ar matemātisku precizitāti. Šāda spēja jādemonstrē Sun Microsystems sertifikācijas testā, sk. [SunCert].
Daudzpavedienu (multithreaded)
Gandrīz visas darbības ir sinhronas - Javas izpilde gaida, kamēr notiek, piemēram ievads/izvads. Lai aplikācijas nebremzētos, programmētājs pats programmē pavedienus. Servleti un JSP paši atklātā formā parasti neizmanto daudzpavedienu programmēšanu. Toties šī Javas iespēja ļauj relatīvi vienkārši veidot citas sadalītās aplikācijas (distributed applications), it īpaši tur, kur vienam serverim jāapkalpo daudzi klienti vienlaikus.
Dinamiska (dynamic)
Klases ielādē izpildes laikā. Komponentes programmas izpildei var savākt arī, teiksim, Internetā. Web aplikācijās tātad viegli nomainīt izmantojamos datubāzu draiverus un citas palīgbibliotēkas.
Tīklorientēta (network centric)
Sun lozungs: The Network Is the Computer. Resursu (datu, komponenšu) savākšana tīklā ir vienkārša. Viegli radīt klienta/servera vai daudzslāņu (multi-tier) aplikācijas.
Internacionalizēta (internationalized)
String, char atbalsta unikodu, sk. [Unicode]. Aplikācijai nepieciešamos valodiskos resursus viegli aizstāt ar to tulkojumiem.
Ātrdarbīga (efficient)
Salīdzinot ar platformneatkarīgās programmēšanas alternatīvām, Java parasti pārspēj interpretētās scenāriju valodas, toties prasa vairāk resursu nekā kompilētās valodas. Tomēr Javas kodu var kompilēt "native" vidē un izpildīt ātri, arī lietot JIT (Just in Time) kompilāciju.
Viegli programmējama (programmer efficient)
Objektorientācija ļauj labi sadalīt darbus pa API. Ērti veidojama dokumentācija, var viegli tikt pie citu cilvēku sasniegumiem.
Atklāta (open source)
Javas "Core API" izejas teksti ir atklāti. Daudzu JVM izejas teksti ir atklāti. Javas *.class failu binārais formāts ir atklāts. Javā bieži raksta citu "open source" programmatūru.
Tags:
Created by Kalvis Apsītis on 2008-05-03 14:05
    
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation