Reklāma

Vai jūs šobrīd diskutējat par to, vai nākamajai lietojumprogrammai izmantot java, vai vietējos rīku komplektus un ietvarus? Vai vēlaties uzzināt, kādas priekšrocības java nodrošina salīdzinājumā ar lietojumprogrammu vietēju programmēšanu? Lasiet tālāk, lai uzzinātu!

Kas ir vietējā programma?

Vietējā lietojumprogramma ir programma, kas īpaši izstrādāta operētājsistēmai (OS) un, iespējams, konkrētajai aparatūrai, kurā darbojas šī operētājsistēma. Tas lielākoties ir uzrakstīts tādā valodā kā C / C ++. C / C ++ avota kods tiek kompilēts objekta formā, izmantojot kompilatoru, kurš pēc tam tiek salikts izpildāmajā, sasaistot nepieciešamās bibliotēkas. Šādi veidota programma darbosies ar īpašu aparatūru un operētājsistēmu, kurai tā ir paredzēta, taču, iespējams, nedarbosies pareizi citās sistēmās.

Vietējā izpildāmā faila sagatavošana

Kāpēc nav vietējās lietojumprogrammas?

Tādas valodas kā C / C ++ kompilators tulko avota koda paziņojumus mērķa centrālā procesora mašīnu valodā. Mēģinot palaist šo kodu citā CPU, programma, iespējams, nedarbosies pareizi (vai vispār nedarbosies), jo šis CPU, iespējams, neatbalsta apkopotā koda mašīnvalodas instrukcijas.

instagram viewer

Turklāt jaunā operētājsistēma var atšķirties no sākotnējās un var pat neatpazīt programmas failu kā izpildāmu. Tas ir saistīts ar dažādiem failu formātiem, kurus izmanto izpildāmām versijām dažādās operētājsistēmās (piemēram, Windows, Linux, MacOS utt.).

Pārvietojamība ir tik liela problēma ar vietējām lietojumprogrammām, ka tikai jauninot kompilatoru uz nākamo versiju, var tikt ieviestas pārrāvuma izmaiņas. Jūsu kods, iespējams, būs jālabo, lai strādātu ar jaunāku kompilatoru. Kā avota koda šļakstīšana ar tā sauktajiem ifdef Izplatīti ir paziņojumi par aparatūras, OS vai kompilatoru darbības izšķiršanu.

Šis ir neliels koda fragments no BZLib saspiešanas bibliotēka kas ilustrē ifdefs, lai izolētu platformas īpatnības:

#ifdef _WIN32. # iekļaut # ifdef mazs / * windows.h definē mazu līdz char * / # undef mazs. # endif. # ifdef BZ_EXPORT. # definēt BZ_API (func) WINAPI func. # definēt BZ_EXTERN ārpusi. # else / * importēt logus dinamiski * / # define BZ_API (func) (WINAPI * func) # definēt BZ_EXTERN. # endif. #else. # definēt BZ_API (func) func. # definēt BZ_EXTERN ārpusi. #endif.

Pirmkoda pārnesamība operētājsistēmās

Šo situāciju zināmā mērā var mazināt, C / C ++ avota kodu pārkopējot uz jauno CPU. Tomēr jaunā CPU operētājsistēma var būt atšķirīga. Un avota kods var netikt sastādīts bez lielām vai nelielām izmaiņām. Pat nelielām operētājsistēmas versiju izmaiņām var būt vajadzīgas dažas avota koda izmaiņas.

Un, apsverot atšķirīgas operētājsistēmas, piemēram, Windows un Linux / UNIX, pārnesamība ir pilnīgi jauna bumbiņas spēle. Ja neizmantojat instrumentu komplektu vai ietvaru, kas jūs pilnībā izolē no operētājsistēmas, avota koda pārnesamība nav iespējama. Tas notiek tāpēc, ka operētājsistēmas interfeiss šīm sistēmām ir pilnīgi atšķirīgs. Ja jūs sava koda attālākajos stūros tieši izmantojat jebkādas operētājsistēmas primitīvas, tad jūsu kods nebūs pārnēsājams pa šīm dažādajām operētājsistēmām.

Kā Java atšķiras?

Tieši šajā scenārijā java piedāvā jaunu paradigmu, jaunu programmatūras veidošanas veidu. Programmējot java, jūs mērķējat uz a virtuālā iekārta. Šāda mašīna pastāv kā jēdziens, un java valoda nodrošina saskarnes programmēšanai pret šo mašīnu. Piemēram, jūs varat vaicāt par pieejamās atmiņas daudzumu, centrālo procesoru skaitu, tīkla saskarnēm utt.

Virtuālās mašīnas izpildes kods

Kā tiek veidotas Java lietojumprogrammas?

Javas valoda nodrošina java kompilatoru, kas avota kodu pārveido objekta kodā. Pēc tam objekta kodu izpilda java virtuālā mašīna, kas ir atsevišķa programma no kompilatora. Savukārt operētājsistēma java virtuālo mašīnu uzskata tikai par vēl vienu programmu, kas darbojas šajā operētājsistēmā.

Pārnesamības slogs tagad ir pārcēlies no lietojumprogrammas uz java virtuālās mašīnas pārdevēju. Lietojumprogrammu programmētājs raksta programmatūru, izmantojot javas valodas un java primitīvas virtuālā mašīna ir atbildīga par šo primitīvu tulkošanu resursdatora operētājsistēmā iespējas. Kad iznāk jauna OS versija, pārdevēja pienākums ir atjaunināt java virtuālo mašīnu, lai tā pareizi darbotos jaunajā OS.

Java programmu veidošana

Kādas ir Java virtuālās mašīnas priekšrocības?

Kā minēts iepriekš, java virtuālā mašīna nodrošina lietojumprogrammu programmētājam virtuālu skatu uz operētājsistēmu un aparatūru. Šis virtuālais skats ir dažādu saskarņu un metožu formā, un tas kalpo, lai lietojumprogrammu programmētāju izolētu no resursdatora OS un pamatā esošās aparatūras atšķirībām. Tādējādi lietojumprogrammu programmētājs var piekļūt tādām iespējām kā Windowing Toolkit, Networking, 3D grafika, vairāki CPU utt. neveicot zema līmeņa zvanus, kuru rezultātā programma kļūst pārnēsājama.

Java programma ir uzrakstīta un tiek apkopota, izmantojot java kompilatoru. Iegūtais objekta kods (saukts par baitu kods) var transportēt uz citu resursdatoru operētājsistēmu, kas darbojas ar dažādu aparatūru, un tai vajadzētu darboties bez problēmām.

JIT sastādītājs

Javas virtuālā mašīna izmanto a JIT apkopotājs lai optimizētu baitu kodu īpaši mērķa centrālajam procesoram. JIT apzīmē Tieši laikā un attiecas uz izpildlaika optimizācijām, kuras JVM piemēro baitu kodam, lai panāktu, ka tā darbojas labāk pašreizējā CPU.

Vēl viena Java virtuālās mašīnas izmantošanas priekšrocība ir tā, ka tā dažādiem lietojuma gadījumiem var piemērot dažādas optimizācijas, visām ar to pašu baita kodu. Piemēram, Oracle JVM nodrošina divas baita koda palaišanas iespējas: servera režīmu un klienta režīmu. Servera režīms tiek optimizēts ilgstošai servera programmu darbināšanai, savukārt klienta JVM režīms tiek optimizēts ātrai reaģēšanai, jo tas, iespējams, tiek izmantots interaktīvajā režīmā.

Apkopojot, vietējā lietojumprogramma ir veidota konkrētai aparatūrai un operētājsistēmai. Javas lietojums, no otras puses, seko a Veidojiet vienreiz, lai palaistu jebkur filozofiju, ar JVM vadot apkopotās baitu koda instrukcijas. Kaut arī sākotnējās lietojumprogrammas tradicionāli tiek uzskatītas par veiksmīgākām nekā java lietojumprogrammām, tā ne vienmēr ir taisnība, jo JVM izmanto JIT kompilatoru.

Vai esat izstrādājis vietēju lietojumprogrammu un pārnesamības dēļ nācās pārslēgties uz javu? Vai arī otrādi izpildes problēmu dēļ? Paziņojiet mums par to komentāros zemāk.

Attēla kredīts: Profit_Image caur Shutterstock.com