Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • vijesti
  • Učenje Jave. Kakve veze Java ima sa dinamičkim jezicima i funkcionalnim programiranjem? Istorija Java verzija

Učenje Jave. Kakve veze Java ima sa dinamičkim jezicima i funkcionalnim programiranjem? Istorija Java verzija

Dakle, Java ima dugu i tešku istoriju razvoja, ali vrijeme je da razmislimo šta se dogodilo sa kreatorima, koja svojstva ova tehnologija ima.

Najpoznatije, a ujedno i najžešće debate, imanje je mnogo- ili cross-platform... Već je rečeno da se to postiže korišćenjem JVM virtuelne mašine, koja je običan program koji izvršava operativni sistem i koji Java aplikacijama pruža sve potrebne mogućnosti. Pošto su svi JVM parametri navedeni, ostaje jedini zadatak - implementirati virtuelne mašine na sve postojeće i korišćene platforme.

Prisustvo virtuelne mašine određuje mnoga svojstva Jave, ali hajde da se sada zadržimo na sledećem pitanju - da li je Java kompajlirani ili interpretirani jezik? U stvari, koriste se oba pristupa.

Izvorni kod bilo kojeg Java programa je predstavljen običnim tekstualnim datotekama koje se mogu kreirati u bilo kojem uređivaču teksta ili specijalizovanom razvojnom alatu i imaju ekstenziju .java. Ove datoteke se unose u Java kompajler, koji ih prevodi u poseban Java bajt kod. To je ovaj kompaktan i efikasan skup instrukcija koji podržava JVM i sastavni je dio Java platforme.

Izlaz kompajlera je sačuvan u binarnim datotekama sa ekstenzijom .class. Java aplikacija koja se sastoji od ovakvih datoteka se dovodi na ulaz virtuelne mašine, koja počinje da ih izvršava, odnosno tumači, pošto je sama program.

Mnogi programeri su isprva oštro kritizirali Sunov hrabri slogan "Napiši jednom, trči svuda", otkrivajući sve više nedosljednosti i nedosljednosti na različitim platformama. Međutim, mora se priznati da su jednostavno bili previše nestrpljivi. Java je tek rođena, a prve verzije specifikacija nisu bile dovoljno sveobuhvatne.

Ubrzo je Sun došao do zaključka da jednostavno slobodno objavljivanje specifikacija (kao što se radilo mnogo prije Jave) nije dovoljno. Također je potrebno kreirati posebne procedure za provjeru usklađenosti novih proizvoda sa standardima. Prvi takav test za JVM sadržavao je samo oko 600 provjera, godinu dana kasnije njihov broj je porastao na deset hiljada i od tada se povećava (upravo taj test nije mogao proći MS IE 4.0 svojevremeno). Naravno, autori virtuelnih mašina su ih sve vreme unapređivali, otklanjali greške i optimizovali njihov rad. Ipak, bilo kojoj tehnologiji, čak i vrlo dobro zamišljenoj, potrebno je vrijeme da se stvori visokokvalitetna implementacija. Java 2 Micro Edition (J2ME) trenutno prolazi sličan razvojni put, ali o tome kasnije.

Sljedeće najvažnije svojstvo je Java objektna orijentacija, koja se uvijek spominje u svim člancima i saopštenjima za javnost. O samom objektno orijentisanom pristupu (OOP) govori se u sledećem predavanju, ali je važno naglasiti da je u Javi skoro sve implementirano u vidu objekata – niti i tokovi podataka, umrežavanje, rad sa slikama, sa korisničkim interfejsom. ., rukovanje greškama, itd. Na kraju krajeva, svaka Java aplikacija je kolekcija klasa koje opisuju nove tipove objekata.

Detaljna diskusija o Java objektnom modelu odvija se tokom kursa, međutim, mi navodimo glavne karakteristike. Prije svega, kreatori su napustili višestruko nasljeđe. Odlučeno je da previše komplikuje i zamagljuje programe. Jezik koristi alternativni pristup - poseban tip "interfejsa". O tome se detaljno govori u odgovarajućem predavanju.

Nadalje, Java se primjenjuje jako kucanje... To znači da svaka varijabla i bilo koji izraz imaju tip koji je već poznat u vrijeme kompilacije. Ovaj pristup se koristi za pojednostavljenje identifikacije problema, jer kompajler odmah prijavljuje greške i ukazuje na njihovu lokaciju u kodu. Potraga za izuzecima (izuzecima - kako se u Javi nazivaju pogrešne situacije) tokom izvršavanja programa (runtime) zahtijevat će složeno testiranje, dok se uzrok kvara može pronaći u potpuno drugoj klasi. Dakle, potrebno je uložiti dodatni napor u pisanje koda, ali je njegova pouzdanost značajno povećana (a to je jedan od temeljnih ciljeva zbog kojih je novi jezik stvoren).

U Javi postoji samo 8 tipova podataka koji nisu objekti. Definisani su od prve verzije i nikada se nisu mijenjali. To je pet tipova cijelih brojeva: byte, short, int, long, kao i karakterni char. Zatim dva frakciona tipa float i double, i konačno logički tip boolean. Takvi tipovi se nazivaju jednostavni, odnosno primitivni (od engleskog primitive), a o njima se detaljno govori u predavanju o tipovima podataka. Svi ostali tipovi su objektni ili referentni (eng. referenca).

Iz nekog razloga, Java sintaksa je mnoge zavarala. Zaista se zasniva na sintaksi C / C ++ jezika, pa ako pogledate izvorni kod programa napisanih na ovim jezicima i na Javi, nećete odmah moći razumjeti na kojem je od njih napisan koji jezik. Iz nekog razloga, to je dalo mnogo razloga da se misli da je Java pojednostavljeni C++ sa dodatnim karakteristikama kao što je sakupljač smeća. U nastavku ćemo pogledati automatski sakupljač smeća, ali velika je greška misliti da je Java isti jezik kao C++.

Naravno, kada su razvijali novu tehnologiju, autori Jave su se oslonili na široko rasprostranjen programski jezik iz raznih razloga. Prvo, oni su sami smatrali da je C++ u to vrijeme bio njihov glavni alat. Drugo, zašto izmišljati nešto novo kada postoji savršeno prikladno staro? Konačno, očito je da će nepoznata sintaksa uplašiti programere i značajno zakomplikovati uvođenje novog jezika, a na kraju krajeva, Java je trebala što prije postati široko rasprostranjena. Stoga je sintaksa samo malo pojednostavljena kako bi se izbjegle pretjerano zbunjujuće konstrukcije.

Ali, kao što je već spomenuto, C++ je bio suštinski neprikladan za nove zadatke koje su postavili programeri iz kompanije Sun, pa je Java model ponovo izgrađen, i to u skladu sa potpuno drugačijim ciljevima. Dalja predavanja će postepeno otkrivati ​​specifične razlike.

Što se tiče objektnog modela, on je bio prilično modeliran na takvim jezicima kao što je Smalltalk iz IBM-a, ili Simula jezik razvijen još 60-ih godina u Norveškom računarskom centru, na koji se poziva tvorac Jave, James Gosling.

Još jedno važno svojstvo Jave - lakoća učenja i razvoja - također je dobilo kontroverzne ocjene. Zaista, autori su se potrudili spasiti programere od najčešćih grešaka koje čak i iskusni C / C ++ programeri ponekad čine. A prvo mjesto ovdje zauzima rad sa pamćenjem.

U Javi, od samog početka, automatski mehanizam za sakupljanje smeća(iz engleskog garbage collector). Pretpostavimo da program kreira neki objekat, radi s njim, a onda dođe trenutak kada više nije potreban. Potrebno je osloboditi zauzetu memoriju kako ne bi ometali normalno funkcionisanje operativnog sistema. U C / C ++, to se mora uraditi eksplicitno iz programa. Očigledno, kod ovakvog pristupa postoje dvije opasnosti - ili brisanje objekta koji je nekom drugom potreban (a ako mu se zaista pristupi, doći će do greške), ili ne brisanje objekta koji je postao nepotreban, što znači curenje memorije, tj. je program počinje da troši sve više i više RAM-a.

Prilikom razvoja u Javi, programer uopće ne razmišlja o oslobađanju memorije. Virtuelna mašina sama broji broj referenci na svaki objekat, a ako postane nula, onda je takav objekat označen za obradu od strane sakupljača smeća. Dakle, programer samo treba da se uveri da nema referenci na nepotrebne objekte. Sakupljač smeća je pozadinska nit izvršavanja koja redovno skenira postojeće objekte i uklanja one koji više nisu potrebni. Ni na koji način ne možete utjecati na rad sakupljača smeća iz programa, možete samo eksplicitno pokrenuti njegov sljedeći prolaz koristeći standardnu ​​funkciju. Jasno je da to uvelike pojednostavljuje razvoj programa, posebno za programere početnike.

Međutim, iskusni programeri su bili nezadovoljni činjenicom da nisu mogli u potpunosti kontrolisati sve što se dešava sa njihovim sistemom. Ne postoje tačne informacije kada će tačno objekat koji je postao nepotreban biti obrisan, kada će nit sakupljača smeća početi da radi (i samim tim zauzima sistemske resurse) itd. Ali, uz svo dužno poštovanje prema iskustvu takvih programera, treba napomenuti da je ogroman broj kvarova programa napisanih na C / C ++ uzrokovan nepravilnim radom s memorijom, a ponekad se to događa čak i sa široko rasprostranjenim proizvodima vrlo ozbiljne kompanije.

Osim toga, poseban naglasak stavljen je na lakoću savladavanja nove tehnologije. Kao što je već spomenuto, očekivalo se (a ta su očekivanja bila opravdana, kao potvrda ispravnosti odabranog puta!) da Java dobije što širu primjenu, čak i u onim kompanijama u kojima se nikada ranije nisu bavile programiranjem na takvom nivou ( kućanskih aparata kao što su tosteri i aparati za kafu, kreiranje igrica i drugih aplikacija za mobilne telefone itd.). Postojao je i niz drugih razmatranja. Proizvodi za obične korisnike, a ne za profesionalne programere, moraju biti posebno pouzdani. Internet je postao World Wide Web jer su se pojavili laički korisnici, a mogućnost kreiranja apleta im je podjednako privlačna. Trebao im je jednostavan alat za izgradnju robusnih aplikacija.

Konačno, Internet procvat 90-ih je dobio zamah i uveo nove, strože vremenske rokove razvoja. Dugoročni projekti, koji su bili uobičajeni u prošlosti, prestali su da zadovoljavaju potrebe kupaca, novi sistemi su morali biti kreirani za najviše godinu dana, pa čak i za nekoliko mjeseci.

Pored uvođenja sakupljača smeća, poduzeti su i drugi koraci kako bi se olakšao razvoj. Neki od njih su već spomenuti – odbacivanje višestrukog nasljeđivanja, pojednostavljenje sintakse, itd. Mogućnost kreiranja višenitnih aplikacija implementirana je u prvu verziju Jave (istraživanja su pokazala da je to vrlo zgodno za korisnike, a postojeći standardi su zasnovani na teletip sistemima, koji su zastareli mnogo godina unazad). O ostalim karakteristikama bit će riječi u narednim predavanjima. Međutim, odavno je opšte prihvaćeno da je izgradnja i održavanje sistema zapravo lakša u Javi nego u C/C++. Međutim, svejedno, ovi jezici su stvoreni za različite svrhe, a svaki ima svoje neosporne prednosti.

Sljedeće važno svojstvo Jave je sigurnost. Početni fokus na distribuirane aplikacije, a posebno odluka o pokretanju apleta na klijentskoj mašini, učinila je sigurnost glavnim prioritetom. U svakoj Java virtuelnoj mašini postoji čitav niz mera. U nastavku je samo kratak opis nekih od njih.

Prvo, ovo su pravila za rad sa memorijom. Već je rečeno da se brisanje memorije vrši automatski. Njegovu rezervaciju takođe određuje JVM, a ne kompajler, ili eksplicitno iz programa; programer može samo naznačiti da želi da kreira još jedan novi objekat. Pokazivači na fizičke adrese su u principu odsutni.

Drugo, prisustvo virtuelne mašine-interpretera čini mnogo lakšim odsecanje opasnog koda u svakoj fazi rada. Bajtkod se prvo učitava u sistem, obično u obliku fajlova klase. JVM pažljivo provjerava da li se svi pridržavaju općih Java sigurnosnih pravila i da ih ne kreiraju napadači na neki drugi način (i ako nisu oštećeni u prijenosu). Zatim, tokom izvršavanja programa, tumač može lako provjeriti valjanost svake akcije. Mogućnosti klasa koje su učitane s lokalnog diska ili preko mreže značajno se razlikuju (korisnik može lako dodijeliti ili ukloniti određena prava). Na primjer, apleti nikada neće po defaultu pristupiti lokalnom sistemu datoteka. Takva ugrađena ograničenja nalaze se u svim standardnim Java bibliotekama.

Konačno, postoji mehanizam za potpisivanje apleta i drugih aplikacija preuzetih preko mreže. Poseban sertifikat garantuje da je korisnik primio kod tačno onako kako ga je proizvođač izdao. Ovo, naravno, ne pruža dodatna sredstva zaštite, ali omogućava klijentu da ili odbije raditi s aplikacijama nepouzdanih proizvođača, ili odmah vidi da su u programu napravljene neovlaštene promjene. U najgorem slučaju zna ko je odgovoran za štetu.

Sveukupnost opisanih svojstava Jave omogućava da se tvrdi da je jezik veoma pogodan za razvoj Internet i intranet (interne korporativne mreže) aplikacija.

Konačno, važna karakteristika Jave je njena dinamičnost. Jezik je veoma dobro koncipiran, stotine hiljada programera i mnoge velike kompanije su uključene u njegov razvoj. Glavne faze ovog razvoja sumirane su u sljedećem odjeljku.

Dakle, da sumiramo. Java platforma ima sljedeće prednosti:

  • prenosivost, ili cross-platform ;
  • objektna orijentacija, kreiran je efikasan objektni model;
  • poznata C / C ++ sintaksa;
  • ugrađen i transparentan sigurnosni model;
  • orijentacija na Internet zadatke, mrežno distribuirane aplikacije;
  • dinamičnost, lakoća razvoja i dodavanje novih karakteristika;
  • lakoća učenja.

Ali ne treba pretpostaviti da lakše učenje znači da uopće ne morate učiti jezik. Pisanje zaista dobrih programa, izgradnja velikih, složenih sistema, zahtijeva dobro razumijevanje svih osnovnih Java koncepata i korištenih biblioteka. O tome se radi u ovom kursu.

Glavne Java verzije i proizvodi

Odmah da rezervišemo da se ovde pod proizvodima podrazumevaju softverska rešenja kompanije Sun, koja su „referentna implementacija“.

Dakle, Java je prvi put najavljena 23. maja 1995. godine. Glavni proizvodi dostupni u to vrijeme u obliku beta verzija bili su:

  • Specifikacija Java jezika, JLS, specifikacija jezika Java (opisivanje rječnika, tipova podataka, osnovnih konstrukcija, itd.);
  • JVM specifikacija
  • Java Development Kit, JDK - Alat za razvojne programere koji se uglavnom sastoji od uslužnih programa, biblioteka standardnih klasa i demonstracija.

Specifikacija jezika je tako dobro napisana da se do danas koristi praktično nepromijenjena. Naravno, napravljen je veliki broj pojašnjenja, detaljniji opisi, dodane su neke nove karakteristike (na primjer, deklaracija unutrašnjih klasa), ali osnovni koncepti ostaju nepromijenjeni. Ovaj kurs se u velikoj meri oslanja na jezičke specifikacije.

JVM specifikacija je prvenstveno namenjena kreatorima virtuelnih mašina i stoga je jedva da je koriste Java programeri.

JDK je dugo bio osnovni alat za razvoj aplikacija. Ne sadrži nikakve uređivače teksta, već radi samo na postojećim Java datotekama. Kompajler je predstavljen uslužnim programom javac (java kompajler). Virtuelnu mašinu implementira java. Za probno pokretanje apleta postoji poseban uslužni program koji se zove appletviewer. Konačno, obezbeđen je javadoc alat za automatsko generisanje dokumentacije iz izvornog koda.

Prva verzija je sadržavala samo 8 standardnih biblioteka:

  • java.lang - osnovne klase potrebne za rad bilo koje aplikacije (naziv je skraćenica za jezik);
  • java.util - Mnogo korisnih pomoćnih klasa
  • java.applet - klase za kreiranje apleta;
  • java.awt, java.awt.peer - biblioteka za kreiranje grafičkog korisničkog interfejsa (GUI), nazvana Apstraktni alat za prozore, AWT, detaljno opisana u predavanju 11;
  • java.awt.image - dodatne klase za rad sa slikama;
  • java.io - rad sa streamovima i datotekama;
  • java.net - umrežavanje.

Dakle, sve biblioteke počinju sa Javom, one su standardne. Svi ostali (počevši od com, org, itd.) mogu se promijeniti u bilo kojoj verziji bez podrške za kompatibilnost.

Konačna verzija JDK 1.0 objavljena je u januaru 1996. godine.

Hajdemo odmah da objasnimo sistem imenovanja verzija. Oznaka verzije sastoji se od tri znamenke. Prvi je uvijek 1. To znači da se održava puna kompatibilnost između svih verzija 1.x.x. To jest, program napisan u starijem JDK-u će se uvijek uspješno izvršavati na novijem. Kompatibilnost unatrag se održava kad god je to moguće - ako je program kompajliran sa novijim JDK-om, a nisu korištene nove biblioteke, tada će u većini slučajeva stare virtuelne mašine moći da izvrše takav kod.

Druga cifra je promijenjena sa 0 na 4 (posljednja u vrijeme kada je kurs kreiran). U svakoj verziji došlo je do značajnog proširenja standardnih biblioteka (212, 504, 1781, 2130 i 2738 - broj klasa i interfejsa sa 1.0 na 1.4), a takođe su dodane neke nove karakteristike samom jeziku. Uslužni programi uključeni u JDK su također promijenjeni.

Konačno, treća znamenka označava razvoj jedne verzije. Ništa se ne menja u jeziku ili bibliotekama, samo se eliminišu greške, vrši se optimizacija, mogu se menjati (dodati) argumenti korisnosti. Dakle, najnovija verzija JDK 1.0 je 1.0.2.

Iako razvojem verzije 1.x ništa nije uklonjeno, naravno, neke funkcije ili klase su zastarjele. Oni su proglašeni zastarjelima, i iako će biti podržani dok se ne objavi 2.0 (a još se ništa o tome nije čulo), nije preporučljivo koristiti ih.

Uz prvi uspjeh JDK 1.0 stigle su i kritike. Glavni nedostaci koje su programeri pronašli su sljedeći. Prvo je, naravno, izvedba. Prva virtuelna mašina bila je veoma spora. To je zbog činjenice da je JVM, u stvari, interpreter, koji uvijek radi sporije od izvršavanja prevedenog koda. Međutim, uspješna optimizacija koja je otklonila ovaj nedostatak još je bila pred nama. Uočene su i prilično loše mogućnosti AWT-a, nedostatak rada sa bazama podataka i drugo.

U decembru 1996. objavljena je nova verzija JDK 1.1, a beta verzija je odmah puštena za slobodan pristup. Konačna verzija je objavljena u februaru 1997. Šta je dodano u novoj verziji Jave?

Naravno, posebna pažnja je posvećena performansama. Mnogi dijelovi virtuelne mašine su optimizovani i prepisani koristeći Assembler, a ne C kao ranije. Pored toga, od oktobra 1996. Sun razvija novi proizvod - kompajler za pravovremeno, JIT. Njegov zadatak je da prevede Java bajt kod programa u "matični" kod operativnog sistema. Time se povećava vrijeme pokretanja programa, ali se izvršavanje može ubrzati u nekim slučajevima i do 50 puta! Od jula 1997. postoji implementacija za Windows i JIT je uključen u JDK kao standard sa mogućnošću onemogućavanja.

Dodane su mnoge važne nove funkcije. JavaBeans, tehnologija najavljena još 1996. godine, omogućava vam da kreirate vizuelne komponente koje se lako mogu integrisati u alate za vizuelni razvoj. JDBC (Java DataBase Connectivity) omogućava pristup bazama podataka. RMI (Remote Method Invocation) olakšava kreiranje distribuiranih aplikacija. Podrška nacionalnom jeziku i sigurnost su poboljšani.

U prve tri sedmice JDK 1.1 je preuzet preko 220.000 puta, a za manje od godinu dana više od dva miliona puta. Trenutno se verzija 1.1 smatra potpuno zastarjelom i njen razvoj je zaustavljen na 1.1.8. Međutim, zbog činjenice da najčešći pretraživač MS IE još uvijek podržava samo ovu verziju, i dalje se koristi za pisanje malih apleta.

Pored toga, Sun je počeo da nudi Java Runtime Environment (JRE) 11. marta 1997. godine. U stvari, ovo je minimalna implementacija virtuelne mašine koja je potrebna za pokretanje Java aplikacija, bez kompajlera ili drugih razvojnih alata. Ako korisnik želi samo da pokreće programe, to je upravo ono što mu treba.

Kao što vidite, glavni nedostatak ostaje slaba podrška za grafički korisnički interfejs (GUI). U decembru 1996. Sun i Netscape su najavili novu biblioteku, IFC (Internet Foundation Classes), koju je Netscape u potpunosti razvio u Javi, kako bi precizno kreirao složeni prozorski interfejs. U aprilu 1997. godine objavljeno je da kompanije planiraju kombinovati Sun-ov AWT i Netscapeov IFC kako bi stvorili novi proizvod Java Foundation Classes, JFC, koji bi uključivao:

  • poboljšan prozor

U ovom vodiču ćemo pokriti sve što trebate znati prije nego počnete učiti programiranje uključeno Java. Naučićete o mogućnostima platforme, njenoj upotrebi i kako da počnete da pravilno učite Javu.

Šta je Java programski jezik?

Godine 1991. Green Team, divizija Sun Microsystems-a, na čelu sa James Gosling, kreirao je jezik za programiranje potrošačkih elektronskih uređaja. U to vrijeme se zvao Hrast ("Hrast"). Zašto "Hrast"? Jednostavno zato što je ovo drvo raslo ispred prozora Goslingove radne sobe.

Zeleni tim je demonstrirao upotrebu hrasta na interaktivnoj televiziji. Ali za digitalnu kablovsku televiziju tih godina, ova tehnologija je bila previše napredna. Istovremeno, internet je dobijao na popularnosti, čemu je novi programski jezik bio najprikladniji.

Nakon nekog vremena, novi jezik je preimenovan u Green, a nakon toga - u Javu, u čast kafe sa ostrva Java. Stoga Java logo prikazuje šolju za kafu.

Tokom razvoja Jave, C / C ++ je bio popularan, pa je Gosling napravio sintaksu jezika sličnom C / C ++ i implementirao princip " napiši jednom - trči bilo gdje". 1995. Sun Microsystems je objavio prvu zvaničnu verziju Jave. Istovremeno je najavljeno da će Java biti uključena u Netscape Navigator pretraživač.

Oracle Corporation je 2010. godine kupila Sun Microsystems, zajedno sa programskim jezikom Java.

Istorija Java verzija

  1. Jun 1991. - početak razvojnog projekta programski jezik Java.
  2. JDK 1.0 - januar 1996.
  3. JDK 1.1 - februar 1997.
  4. J2SE 1.2 - decembar 1998.
  5. J2SE 1.3 - maj 2000.
  6. J2SE 1.4 - februar 2002.
  7. J2SE 5.0 - septembar 2004.
  8. Java SE 6 - decembar 2006.
  9. Java SE 7 - jul 2011.
  10. Java SE 8 - 18. mart 2014.
  11. Java SE 9 - 21. septembar 2017.

Funkcije programskog jezika Java

Java je višeplatformski jezik

Java kod napisan na jednoj platformi ( odnosno operativni sistem) može se pokrenuti nepromijenjen na drugim platformama.

Za pokretanje Jave, Java virtuelne mašine ( Java virtuelna mašina, JVM). JVM obrađuje bajt kod, a zatim procesor obrađuje kod primljen od JVM-a. Sve virtuelne mašine rade na sličan način, tako da isti kod radi isto na svim operativnim sistemima, što Java čini višeplatformskim programskim jezikom.

Objektno orijentirani programski jezik

Postoje različiti stilovi programiranja, a jedan od najpopularnijih je objektno orijentirano programiranje. Ovim pristupom, složeni problem se raščlanjuje na manje stvaranjem objekata. Ovo čini kod ponovo upotrebljivim.

Objektno orijentirane funkcije nalaze se u mnogim programskim jezicima, uključujući Javu, Python i C++. Ako ste ozbiljni u učenju programiranja, objektno orijentirani pristup vrijedi uključiti u svoj nastavni plan i program.

Java je brza

Rane verzije programski jezik Java je često kritikovana da je spora. Ali danas se situacija dramatično promijenila. Novije verzije JVM-a rade mnogo brže, a procesori koji ih tumače postaju sve brži i brži.

Java je jedan od najbržih programskih jezika danas. Dobro optimizirani Java kod radi skoro jednako brzo kao programski jezici niskog nivoa poput C/C++ i mnogo brže od Pythona, PHP-a itd.

Java je sigurna platforma

Java je:

  • sigurna platforma za razvoj i pokretanje aplikacija;
  • pruža alate za automatsko upravljanje memorijom, što smanjuje ranjivost koda;
  • osigurava siguran prijenos podataka.

Obimna osnovna biblioteka

Jedan od razloga zašto se Java široko koristi je ogromna standardna biblioteka. Sadrži stotine klasa i metoda iz različitih paketa kako bi se olakšao život programerima. Na primjer,

java.lang su napredne funkcije za nizove, nizove itd.

java.util je biblioteka za rad sa strukturama podataka, regularnim izrazima, datumom i vremenom itd.

kava.io je biblioteka za unos/izlaz datoteka, rukovanje izuzecima, itd.

Korištenje Java platforme

Prije učenja Jave programiranje od nule, morate znati da više od 3 milijarde uređaja širom svijeta radi na ovoj platformi. Za šta ga tačno možete koristiti:

  1. Android aplikacije - Za razvoj Android aplikacija, programski jezik Java se često koristi u kombinaciji sa Android SDK ( od engleskog software development kit - software development kit).
  2. Web aplikacije - Java se koristi za izradu web aplikacija koristeći serverske programe, Struts framework i JSP. Neke popularne web aplikacije napisane na Javi uključuju Google.com, Facebook.com, eBay.com, LinkedIn.com.

Vrijedi napomenuti da ove stranice nisu nužno napisane isključivo na Javi, već mogu koristiti i druge programske jezike.

  1. Razvoj softvera- programi kao što su Eclipse, OpenOffice, Vuze, MATLAB i mnogi drugi su napisani na Javi.
  2. Obrada velikih podataka – Za obradu velikih podataka možete koristiti Hadoop framework napisan u Javi.
  3. Sistemi trgovanja- korištenjem platforme Oracle Extreme Java trgovačka platforma, možete pisati programe za trgovanje.
  4. Ugrađeni uređaji- Oracle Java Embedded tehnologija danas pokreće milijarde uređaja, kao što su televizori, SIM kartice, Blu-ray plejeri i još mnogo toga.

Također programiranje uključeno Java se koristi za razvoj igara, naučnih aplikacija ( na primjer, za obradu prirodnog jezika) iu mnogim drugim oblastima.

Java terminologija koju biste trebali znati

Java je zbirka tehnologija ( programski jezik i kompjuterska platforma) dizajniran za kreiranje i pokretanje softvera. Međutim, termin Java se često koristi za označavanje samog programskog jezika.

Programski jezik Java je široko zasnovan, opšte namene, višeplatformski, objektno orijentisani programski jezik.

Java 9 je najnovija verzija Jave u vrijeme pisanja ovog teksta.

Java EE, Java Me i Java SE — Ovi nazivi se odnose na Java Enterprise Edition, Micro Edition, odnosno Standard Edition.

Java EE cilja aplikacije koje rade na serverima. Java ME je dizajnirana za uređaje sa ograničenom snagom kao što su ugrađeni uređaji. Java SE je Java standardno izdanje za pisanje redovnih programa.

Ako ste novi u Java programiranje, preporučujemo da počnete sa Javom SE.

JVM - Java virtuelna mašina (" Java virtuelna mašina") je program koji omogućava računaru da pokreće programe napisane u Javi.

JRE - Java Runtime Environment (" java runtime") Uključuje JVM, odgovarajuće biblioteke i druge komponente potrebne za pokretanje programa. Ali u JRE-u nema kompajlera, debagera ili drugih razvojnih alata.

JDK - Java razvojni komplet (kit Java programer) sadrži JRE i druge razvojne alate kao što su kompajleri, debageri, itd.

Kako pokrenuti Javu na vašem operativnom sistemu

Kako pokrenuti Javu na Mac OS-u

Evo šta učiniti za Javu programiranje od nule i instalacije platforme na Mac OS X ili macOS:

  1. Preuzmite najnoviju verziju Java ( JDK) sa Java SE stranice za preuzimanje.
  2. Dvaput kliknite na preuzetu DMG datoteku i slijedite upute instalatera.
  3. Da biste potvrdili instalaciju, otvorite terminal i unesite sljedeću naredbu:

javac –verzija

Ako je Java ispravno instalirana, verzija programa ( na primjer javac 1.8.0_60).

Sljedeći korak je instaliranje IDE ( integrisano razvojno okruženje) za pisanje i pokretanje Java koda. Instalirat ćemo besplatnu verziju IntelliJ IDEA i pokrenuti Javu na njoj. Evo šta trebate učiniti za ovo:

  1. Idi IntelliJ stranica za preuzimanje i preuzmite besplatno Community Edition.
  1. Otvorite preuzetu DMG datoteku i slijedite upute za instalaciju. Za brzi pristup, možete premjestiti IntelliJ IDEA u folder Aplikacije.
  2. Otvorite IntelliJ IDEA. Odaberite opciju "Ne uvozi postavke" (" Ne uvozite postavke") I kliknite na "U redu". Zatim prihvatite Jetbrains politiku privatnosti klikom na dugme "Prihvati".
  3. Sada možete prilagoditi interfejs za sebe. Također možete preskočiti ovaj korak i ostaviti sve kao zadano. Ako niste sigurni, samo preskočite ovaj korak klikom na dugme Preskoči sve i Postavi zadane postavke. Preskočite sve i postavite zadane postavke»).


  1. Program će vam pokazati stranicu dobrodošlice. Kliknite na dugme "Kreiraj novi projekat". Kreirajte novi projekat»).
  2. U sljedećem prozoru odaberite "Java" u lijevom oknu i kliknite "Novo" na vrhu prozora programa da biste odabrali "JDK". Ovdje morate odabrati lokaciju na kojoj ste instalirali JDK, a zatim kliknite na Next.


  1. Imaćete opciju da kreirate projekat iz šablona ("Kreiraj projekat iz šablona"). Zanemarite ga i kliknite na dugme Dalje.
  2. U sljedećem koraku instalacije programski jezik Java unesite naziv projekta i kliknite na Završi.
  3. U lijevom oknu vidjet ćete svoj projekat. Ako tabla nije vidljiva, idite na meni Views> Tool Windows> Project.
  4. Idite na Hello> New> Java i postavite ime klase. Nazvali smo ga Prvi.


  1. Da pokrenete program koji ste upravo napisali, idite na Run> Run... Kliknite na First ( odnosno naziv fajla koji smo kreirali


Kako pokrenuti Javu na Linuxu

Za pokretanje primjera iz lekcije programiranja od nule Java na Linuxu će trebati JAVA SE Development Kit ( JDK) i IDE za razvoj vaših projekata. Pratite uputstva korak po korak da biste započeli sa Javom.

Instalirajte Javu

  1. Otvorite terminal i unesite sljedeću naredbu da instalirate Javu:

    sudo add-apt-repository ppa: webupd8team / java


    sudo apt update; sudo apt install oracle-java8-installer

  1. Prihvatite ugovor o licenci i uslove korišćenja klikom na "OK" odnosno "Da".
  2. Instalirali ste Javu. Da biste provjerili da li je instalacija bila uspješna, unesite sljedeću naredbu u terminal:

java –verzija

Ako je prikazana trenutna verzija, instalacija je bila uspješna. Ako ne, provjerite sa Oracle stranica pomoći.

Instalacija IntelliJ IDEA

  1. Idi.


  1. Preuzmite besplatno Community Edition klikom na dugme Preuzmi.
  2. Nakon preuzimanja promijenite direktorij u terminalu u direktorij za preuzimanje i raspakirajte Java tar datoteku u / opt folder pomoću sljedeće naredbe:

sudo tar xf .tar.gz -C / opt /

  1. Nakon raspakivanja, promijenite direktorij u bin folder programa IntelliJ IDEA:

    cd / opt / / bin

  2. Da pokrenete IDE, unesite sljedeću naredbu:
  3. Odabiremo "Ne uvozi postavke" (" Ne uvozite postavke") I kliknite na "OK". Nakon toga, prihvatamo Jetbrains politiku privatnosti klikom na dugme "Prihvati".
  4. Sada za prolaz kursevi programiranja Java, možete prilagoditi interfejs za sebe. Kreirajte prečicu na radnoj površini za brzi pristup programu. Nakon toga, da biste pokrenuli IDE, kliknite na "Dalje" u svim sljedećim koracima.
  5. Program će prikazati stranicu dobrodošlice. Kliknite na "Kreiraj novi projekat" Kreirajte novi projekat»).
  6. U sljedećem prozoru odaberite Java u lijevom oknu i uvjerite se da je Java odabrana u redu Project SDK. Ako nije, odaberite lokaciju na kojoj ste instalirali JDK: / usr / lib / jvm / java-8-oracle.


  1. Dvaput pritisnite "Next" i kreirajte projekat.
  2. U sljedećem koraku unesite naziv projekta i kliknite Završi. Sada ćete vidjeti svoj projekat u lijevom oknu. Ako ovaj panel nije vidljiv, idite na meni Views> Tool Windows> Project.
  3. Dodajte novu Java klasu. Odaberite src u lijevom oknu desnim klikom i idite na Novo> Java klasa. Postavite naziv klase. U nazivu klase ne smije biti razmaka.


  1. Napišite Java kod i sačuvajte projekat.
  2. Da pokrenete program, idite na Run> Run... Kliknite na HelloWorld ( Ime projekta) - program će kompajlirati datoteku i pokrenuti je.


Kako pokrenuti Javu na Windows (XP, 7, 8 i 10)

Za savladavanje Jave osnove programiranja a pokretanje platforme na Windows-u će zahtijevati JAVA SE Development Kit (JDK) i IDE za razvoj projekata. Slijedite upute korak po korak u nastavku:

Instaliranje Jave

  • Idi stranica za preuzimanje Java Standard Edition Development Kit.
  1. U odeljku Java SE Development Kit na vrhu tabele kliknite na Prihvati ugovor o licenci ( Prihvatite licencni ugovor"). Zatim kliknite na vezu Windows (x64) za 64-bitni operativni sistem ili Windows (x86) za 32-bitni operativni sistem.

  1. Nakon preuzimanja, pokrenite instalacionu datoteku i pratite uputstva koja se pojavljuju na ekranu. Kliknite na " Sljedeći". Odaberite sve funkcije klikom na " Ova funkcija će biti instalirana na lokalnom tvrdom disku"I kopirajte lokaciju instalacije ( označena je žutom bojom) u "Notepad", a zatim kliknite " Sljedeći».


  1. Tokom procesa instalacije, od vas će biti zatraženo da instalirate JRE. Kliknite Dalje, a zatim Završi da biste dovršili instalaciju.
  2. Sada trebate urediti varijablu PATH. Idi Kontrolna tabla> Sistem i bezbednost> Sistem... U lijevom oknu odaberite " Dodatni sistemski parametri".

  1. Kliknite na " Varijable okruženja"... u poglavlju " Sistemske varijable " pronađite varijablu PATH i u sljedećem prozoru kliknite na "Uredi".

  1. Odaberite sav tekst u " Varijabilna vrijednost " i kopirajte ga u zasebnu tekstualnu datoteku. Ovo će olakšati uređivanje i provjeru grešaka. Pogledajte da li kopirani tekst sadrži red: C: ProgramData Oracle Java javapath; ... Ako je tako, možete nastaviti na sljedeći korak. Ako nije, onda zalijepite prethodno kopiranu lokaciju instalacije na početak varijable i dodajte bin na kraj reda ovako: C: Programske datoteke (x 86) Java jdk 1.8.0_112 bin; Imajte na umu da vaša JDK verzija (jdk 1.8.0_112) može biti drugačija. Kopirajte vrijednost varijable i zalijepite je u PATH prozor.


  1. Kliknite na " uredu"Da sačuvate svoje promjene.
  2. Da biste provjerili je li platforma ispravno instalirana za uvod u programiranje Java, otvori komandna linija upisivanjem cmd u Windows traku za pretragu ili preko komande "Pokreni ..." ( Windows - R). Unesite naredbu java -version. Ako je prikazana trenutna verzija Jave, instalacija je bila uspješna. Ako ne, provjerite sa Oracle stranica pomoći.

Instalacija IntelliJ IDEA

  1. Idi Stranica za preuzimanje IntelliJ IDEA.
  2. Preuzmite besplatno Community Edition klikom na Download.


  1. Nakon preuzimanja, pokrenite instalacioni fajl i pratite uputstva koja se pojavljuju na ekranu. Zatim kreirajte prečicu na radnoj površini za 64-bitnu verziju i dodajte asocijacije sa ekstenzijom .java. Kliknite "Dalje" i nastavite sa instalacijom.


  1. Jednom instaliran, otvorite IntelliJ IDEA klikom na ikonu na radnoj površini.
  2. Odaberite "Ne uvozi postavke" (" Ne uvozite postavke") I kliknite na "OK". Nakon toga prihvatamo Jetbrainsovu politiku privatnosti klikom na "Prihvati".
  3. Sada možete prilagoditi interfejs za sebe. Također možete preskočiti ovaj korak i ostaviti sve kao zadano klikom na dugme Preskoči sve i Postavi zadane postavke.
  4. Program će prikazati stranicu dobrodošlice. Kliknite na "Kreiraj novi projekat" Kreirajte novi projekat»).


  1. U sljedećem prozoru odaberite "Java" u lijevom oknu i kliknite na "Novo" na vrhu prozora programa da odaberete JDK. Ovdje trebate odabrati lokaciju na kojoj je JDK instaliran tokom Java instalacije, a zatim kliknite na "Dalje".
  2. IntelliJ IDEA će pronaći JDK i prepoznati ga. Ne morate provjeriti nijednu drugu opciju, samo kliknite na Next.
  3. Na sljedećem ekranu unesite naziv projekta: HelloWorld i kliknite Završi. Ako program kaže da direktorij ne postoji, kliknite na "OK". Ako ne vidite lijevo okno, idite na Views> Tool Windows> Project.
  4. Da biste postavili ime klase, odaberite src folder u lijevom oknu. Desni klik na njega, idite na Novo> Java i dajte klasi ime. U nazivu klase ne smije biti razmaka.


  1. Napišite kod i sačuvajte Java projekat lekcija programiranja.
  2. Da pokrenete program, idite na Run> Run... Kliknite na HelloWorld - program će kompajlirati datoteku i pokrenuti je.


Vaš prvi Java program

Da biste korisnike upoznali sa novim programskim jezikom, koristite program Hello World. Ovo je jednostavan program koji ispisuje riječi Hello, World! U ovom odeljku ćemo vas naučiti kako da napišete ovaj Java program koristeći IntelliJ IDEA.

  1. Otvorite IntelliJ IDEA.
  2. Idite na File> New> Project ...> Java ( na lijevoj navigacijskoj traci).
  3. Postavite naziv projekta od kurs programiranja J a va. Nazvat ćemo ga Hello World i kliknuti na Završi.
  4. Sada treba da kreiramo novu Java klasu.
  5. Odaberite src folder u lijevom oknu, zatim idite na File> New> Java Class i imenujte novu klasu HelloWorld.
  6. Kopirajte sljedeći kod na HelloWorld.java i sačuvajte ga.

javna klasa HelloWorld (javni statički void main (String args) (


// ispisuje "Hello, World!"


System.out.println ("Zdravo, svijet!");

  1. Kliknite na dugme za početak ( Trči). Ako je sve u redu, vidjet ćete natpis Zdravo, svijete!

Kako da naučim Javu?

Službena dokumentacija Java

Oracle, kompanija koja posjeduje Javu, objavljuje kvalitetne tutorijale. Zvanična dokumentacija pokriva sve Java karakteristike i redovno se ažurira.

Napomena: jedina negativna je ta što zvanična Java dokumentacija nije uvijek napisana na najjednostavnijem jeziku.

Ako zaista želite da naučite programiranje uključeno Java, kupi dobru knjigu. Naravno, 1000 stranica se ne može pročitati u jednom danu. Ali dobar vodič će vam pomoći da naučite programiranje.

Java: Potpuni vodič (10. izdanje)

Odlična knjiga za one koji tek počinju da uče Javu. Najnovije izdanje uključuje sve karakteristike Java 8 izdanja.

Knjiga pokriva sve što treba znati o Java programiranju, uključujući sintaksu, ključne riječi i osnovne osnove programiranja, kao i Java API biblioteku, Java applete i još mnogo toga.

Filozofija Java (4. izdanje)

Ako prelazite na Javu sa drugog programskog jezika, ova knjiga je za vas. Ako počinjete od nule, najbolje je da ga pročitate zajedno s drugim.

Java 8. Džepna referenca: Prva pomoć za Java programere

Ova knjiga daje jasne odgovore na pitanja koja se nameću prilikom podučavanja J ava programiranje od nule... Ona ukratko predstavlja sve osnovne koncepte Jave (uključujući Java 9). Ne želite da listate stotine stranica u potrazi za pravim redom? Kupite ovu knjigu.

Umjesto zaključka

Ako počnete da učite Javu, nećete pogrešiti - to je obećavajući programski jezik pun širokih lepeza mogućnosti.

Prije nego počnete učiti Javu, evo nekoliko savjeta:

  • Nemojte čitati tutoriale i primjere poput romana. Jedini način da postanete dobar programer je da napišete mnogo koda.
  • Ako prelazite sa drugog programskog jezika (recimo, C #), ne morate pisati kod u stilu C #.
  • Pronađite online Java zajednice. Kada naučite kako pisati jednostavne Java programe, potražite popularne Java stranice i forume. Pokušajte riješiti probleme koje imaju drugi programeri. Ovo je odličan način da proširite vlastito znanje. Osim toga, ako naiđete na nevolje, znat ćete gdje da tražite pomoć.

Nadamo se da će vas ovaj članak potaknuti ka učenju Jave i pomoći vam da počnete sa svojim prvim programima.

Prijevod članka “ Naučite Java programiranje. Definitivni vodič”Pripremio ljubazni projektni tim

Govorit ćemo o osnovnoj Java sintaksi za početnike. Sintaksa programskog jezika je skup pravila koja regulišu način na koji je napisan i interpretiran...

Šta je informaciona sigurnost? Ovo je stanje sigurnosti informacija koje osigurava njihovu povjerljivost, dostupnost i integritet.

Obično je za procjenu stanja informacione sigurnosti potrebno razumjeti i analizirati prijetnje i njihove izvore, procijeniti nivo štete, vjerovatnoću implementacije i relevantnost prijetnji, rizika (opciono) koji mogu uticati na naš sistem/ informacije.

Po mom mišljenju, nemoguće je procijeniti sigurnost određene tehnologije ili programskog jezika bez vezivanja za konkretan način implementacije, odnosno bez konkretnog gotovog softverskog proizvoda na jeziku koji ima detaljnu tehničku specifikaciju sa opisom arhitektura i funkcionalnost. Ali ni to neće biti dovoljno, jer je potrebno procijeniti stanje sigurnosti gotovog informacionog sistema sa njegovom specifičnom arhitekturom, skupom komponenti, poslovnim procesima, informacijama i, konačno, ljudima. Daću vam primjer izgradnje kuće. Posjedujemo materijale (pijesak, cement, lomljeni kamen, cigla itd.) i alate (kanta, lopata, lopatica, itd.). Kvalitetu i pouzdanost gotove kuće nećemo moći procijeniti samo prema korištenim materijalima/alatu: koliko će stajati, hoće li biti napuknuta, hoće li biti hladna ili tiha. Potrebno je odabrati projekt kuće, tehnologiju izgradnje i tim majstora. I tek nakon završetka izgradnje, moći ćemo izmjeriti usklađenost s projektom, GOST-om, SNiP-om, provjeriti mjerenja toplinske zaštite, buke, opterećenja, analizirati kvalitet cementa i odgovoriti na većinu pitanja. Ali glavno pitanje "koliko će to ostati?" nećemo imati tačan odgovor, jer ne znamo sve uslove rada kuće i sve faktore koji će uticati tokom čitavog vremena.

Kako zaštititi Javu

Uzmimo za primjer Javu . To je objektno orijentisani programski jezik; Java programi se prevode u Java bajt-kod, koji izvršava Java virtuelna mašina (JVM), program koji obrađuje bajt kod i predaje instrukcije hardveru kao tumač. Prednost ovog načina izvršavanja programa je potpuna nezavisnost bajtkoda od operativnog sistema i hardvera, što vam omogućava pokretanje Java aplikacija na bilo kom uređaju za koji postoji odgovarajuća virtuelna mašina.

« Univerzalni jezik ”zvuči lijepo, ali najčešći problem je i naličje medalje - curenje memorije u JVM-u, što dovodi do prelijevanja memorije i rušenja. U vezi sa ovim problemom nisu isključene ranjivosti, jer je osnovni postulat pouzdanosti da što jednostavnije to bolje. U ovom slučaju se sastavlja tako složen kolač koji osigurava kompatibilnost velikog broja platformi i operativnih sistema da je gotovo nemoguće pratiti i zatvoriti sve ranjivosti pronađene u njima i brzo ih eliminirati. Za isti Microsoft, ranjivosti se mogu pronaći i popraviti nakon 4-8 godina, a to je ako se ne uzimaju u obzir neprijavljene karakteristike ostavljene namjerno ili greškom.

Iz moje prakse: kada programeri dodaju novu funkcionalnost koja je povezana sa već implementiranom, ili popravi staru funkcionalnost, onda u 15% slučajeva pokvare prethodno radni proizvod. A ako u isto vrijeme ne izvrše potpuno testiranje, na izlazu imamo proizvod s novom funkcionalnošću, ali sa starom djelomično ne radi. Postoje i razlike u kodiranju za različite platforme, verzije OS-a, softver. U tom smislu, može se zamisliti koliko je teško održavati programski jezik Java i JVM, a da ne spominjemo sigurnosna pitanja.

Trenutno je objavljen Java Development Kit 10, koji nam nudi standardne sigurnosne mehanizme, objavljen za Java SE 8 i opisan u Sigurnosnoj dokumentaciji. Ništa novo nije dodano u desetoj verziji.

Imajte na umu da Oracle ima Java sigurnosni centar resursa. Generalno, kompanija dijeli Java sigurnost u četiri glavna dijela:

A) Programeri bi trebali:

Pratite i koristite sve najnovije razvojno okruženje i sigurnosna ažuriranja;

Koristite programe za provjeru ispravnosti koda (na primjer, Checker Framework);

B) administratori sistema bi trebali:

Pratite i koristite sva najnovija ažuriranja za Javu i potrebne komponente za rad proizvoda (uključujući OS, biblioteke, okvire, itd.);

Koristite pravila implementacije Jave koja opisuje and;

Koristite pouzdanu vremensku oznaku.

C) krajnji korisnici bi trebali:

Uvijek koristite najnoviju originalnu verziju Jave;

D) stručnjacima za sigurnost je potrebno:

Koristite napredne alate za upravljanje i poboljšajte sigurnost (na primjer, Advanced Management Console);

Pratite pravovremenu instalaciju svih sigurnosnih ažuriranja;

Važno je da se svi pridržavaju sigurnosnih pravila i propisa. Postizanje stanja sigurnosti na adekvatnom nivou može se postići samo zajedno i uz korištenje svih raspoloživih mjera (tehničkih, organizacionih). Kao što moja praksa pokazuje, u 60% organizacija, IT i servisi za sigurnost informacija se dobro snalaze sa bezbednošću, kao i sa korisnicima koji koriste korporativne uređaje i povezani su na jedan domen. Ali najnekontroliraniji u ovoj oblasti su programeri, vođe timova, arhitekte.

Razvoj softvera i sigurnosna pitanja

U širem smislu, glavni razlozi sigurnosnih problema u aplikacijama tokom razvoja softvera su sljedeći:

A) Nerazumijevanje bezbjednosne terminologije općenito, a da ne spominjemo specifična znanja i primijenjena rješenja.

Po pravilu, programeri sigurnost povezuju u najboljem slučaju sa sljedećim stvarima: kontrolom pristupa i evidentiranjem i zaštitom lozinkom, rjeđe - zaštitom veze na https nivou (koristeći mehanizme šifriranja koji su standardno dostupni izvan kutije). Odnosno, formalno će koristiti sigurnosne metode, koje će zapravo ostati formalne, "za pokazivanje", ne uzimajući u obzir zahtjeve i nijanse:

Za lozinke: obično se koriste zadane vrijednosti i nisu dodatno konfigurirane za dužinu, snagu, učestalost promjene, neponovljivost, broj pokušaja. Često se ovi parametri ne mogu podesiti, jer nisu bili uključeni u zadatak obima za razvoj softvera, što dovodi do potrebe za dodavanjem koda.

Za upravljanje i evidentiranje pristupa: u najboljem slučaju, programeri su opisali grupe ili uloge korisnika i objekte pristupa koji bi trebali biti dostupni u softveru. U najgorem slučaju, sami programeri su "podijelili" sekcije i objekte na one potrebne korisnicima i administratorima. U prvom slučaju, dobijamo sistem koji se može fleksibilno konfigurisati, ali je potrebno dosta vremena za konfigurisanje i pregovaranje o pravima. U drugom - formalni sistem kontrole pristupa. Osim toga, programeri moraju razumjeti koje vrste informacija iu kojem obimu treba da se evidentiraju. Međutim, često im se ne daju ove informacije, što dovodi do nedovoljnih detalja u evidenciji za analizu incidenata ili razumijevanje onoga što se dešava u softveru. Ili do prekomjernog skladištenja dnevnika i velike količine informacija, što nameće značajna ograničenja u mogućnosti pohranjivanja informacija u potrebnom vremenskom periodu (na primjer, od jedne do tri godine) ili postoji potreba za kupovinom dodatnih skladišta informacija. Uz redundantno snimanje informacija, nastaju dodatni problemi sa brzinom analize i analize incidenata i brzinom pronalaženja potrebnih informacija. Višak rada također može zahtijevati dodatna sredstva za proširenje osoblja, kupovinu SIEM sistema sa jedinstvenim pravilima za obradu informacija, ili može dovesti do rizika povezanih sa zastarjelim informacijama. Istovremeno, previše vremena se troši na analizu i obradu informacija.

Zaštita komunikacijskih kanala nije ništa manje važna, posebno za platne i bankarske sisteme, gdje su, osim otkrivanja ličnih i ličnih podataka, mogući finansijski gubici. Najčešće se događa da ne razmišljaju o zaštiti kanala i medija za prijenos informacija, a ako i razmišljaju, koriste "podrazumevane" postavke, na primjer, TLS / SSL. Ali ima i svoje specifičnosti u izboru verzije protokola (TLS 1.1, 1.2, 1.3 ili SSL v1-3), algoritma za šifrovanje (RC4, IDEA, Triple DES, SEED, Camellia ili AES), dužine ključa. Ponekad se, na primjer, odabere ispravan TLS 1.2 protokol, sa AES enkripcijom, dužine ključa od 256 bita, ali zaboravite na mogućnost odabira adrese na portu 443 za HTTPS ili portu 80 za HTTP, umjesto da blokirate port 80, zbog čega postaje moguće dobiti pristup putem neosiguranog kanala. Ili, na primjer, podižu infrastrukturu na virtuelnim mašinama i uopšte ne razmišljaju o potrebi zatvaranja pristupa mreži između virtuelnih mašina.

B) Drugi problem je vezan za poslovanje, jer ulaže novac u specifičnu specijalnu funkcionalnost koja ne uzima u obzir sigurnosne blokove.

Nažalost, biznis ne razumije uvijek zašto bi trebao trošiti resurse na sigurnosne blokove, ako od njih nema funkcionalne koristi, proizvod neće donijeti više novca, ali postoje samo vjerovatni rizici koji možda neće funkcionirati. Poslovanje češće razumije potrebu za ulaganjem u sigurnost kada se incident u vezi s informacijskom sigurnošću već dogodio.

Nažalost, za to nije kriv samo biznis, već i njegovo okruženje koje:

Također ne razumije sigurnost;

Pošteđen budžet za stručnjake za informacionu bezbednost (oni se uopšte ne angažuju ili se angažuju visokospecijalizovani stručnjaci, ili se angažuje jedna osoba da bude odgovorna za sve);

Nisam mogao razumno prenijeti potrebu za sigurnošću i korektno opravdati postojeće rizike (reputacijske, finansijske, privremene).

C) Problem sa komunikacijom u kompaniji ili nedostatak iste.

To je slučaj kada preduzeće i njegovo okruženje razumeju potrebu i važnost informacione bezbednosti. Dodijelili su budžete, angažovali odgovarajuće stručnjake, ali postoje poteškoće u komunikaciji između poslovnih jedinica i informatičke sigurnosti/IT usluga, programera.

D) Nedostatak svijesti običnih korisnika kompanije o pitanjima sigurnosti informacija.

Pretpostavimo da imate sve potrebne odjele, stručnjake, tehničke i organizacijske mjere. Ali korisnici se opiru i ne žele da rade po pravilima. Ovo je vrlo česta situacija, a potrebno ju je i sveobuhvatno rješavati, jer ljudi ne razumiju zašto im je potreban dodatni rad kako bi se uskladili sa pitanjima sigurnosti informacija (provjeravati datoteke antivirusom, zapamtiti složene lozinke, poznavati i pridržavati se politika i poslovanja). procesi itd.). Neophodno je periodično organizovati majstorske kurseve, na nivou domaćinstva reći šta je to informaciona bezbednost, koji problemi i rešenja postoje, komunicirati globalne ciljeve i ciljeve informacione bezbednosti, motivisati ih i njihov uticaj na poslovanje.

E) Nedostatak arhitekata za informatičku sigurnost – stručnjaci za informacijsku sigurnost nisu uvijek uključeni u razvoj softvera, a sami programeri razmišljaju o sigurnosti arhitekture i korištenju pisanih i gotovih sigurnosnih obrazaca (Security patterns).

Programeri ne znaju sve nijanse i ne znaju, jer je njihov zadatak da završe razvoj i pređu na sljedeći. Ako dublje uđete u sam razvoj, proces je mnogo komplikovaniji nego što se čini. Stoga je potrebno jasno dobiti zadatak od poslovanja, razložiti ga na razumljive mini-zadatke za programere, sprovesti razvoj, provesti alfa i beta testove, učitati, funkcionalne testove, popraviti greške, vratiti se na testove - ovaj proces je cikličan i dugo. Stoga nije iznenađujuće da nemaju dovoljno resursa da promisle o sigurnosti proizvoda do najsitnijih detalja.

Da biste razgovarali o sigurnosti, morate riješiti probleme opisane iznad. Ne opisujem posebno opcije rješenja, jer sve zavisi od konkretnih problema, okruženja, uslova. Ne postoji univerzalna tableta i moraju se poduzeti sve mjere opreza. Osnovni zadatak je da svi zaposleni u kompaniji proniknu, razumiju i ispoštuju zahtjeve sigurnosti informacija i budu zainteresirani da ih poštuju. I tek tada će se moći govoriti o efektivnosti i dobrom stepenu zrelosti informacione sigurnosti u kompaniji.

Java zona developerWorks sadrži stotine članaka, tutorijala, savjeta i sadržaja iz Java zajednice koji će vam pomoći da izvučete maksimum iz Java platforme i povezanih tehnologija prilikom razvoja aplikacija. Međutim, ambicioznim programerima koji tek počinju sa Javom može biti teško da se snalaze u ogromnom broju resursa dostupnih na Internetu. Stoga smo kreirali ovu stranicu, koja pruža pregled osnovnih Java tehnologija u opštem kontekstu mogućnosti ovog jezika. Pronađite veze do resursa za dalje učenje Jave, kao što su članci developerWorksa za početnike i drugi obrazovni resursi, te veze za preuzimanje za IBM proizvode.

Da li ste ambiciozni Java programer? Ova stranica pruža pregled glavnih Java™ tehnologija i njihovog mjesta u razvoju modernog softvera. Sa vezama na uvodne članke developerWorksa o ovoj i srodnim temama, drugim obrazovnim materijalima, preuzimanjima i IBM proizvodima, ova stranica je odlična polazna tačka za učenje Jave.

Šta su "Java tehnologije"?

Java je i programski jezik i platforma.

Prvo, Java je objektno orijentirana na visokom nivou programski jezik... At kompilacija, koji se izvršava jednom tokom izrade aplikacije, Java kod se konvertuje u kod srednjeg jezika ( bytecode). Zauzvrat, bajt kod se analizira i izvršava ( interpretirano) Java virtuelna mašina (JVM), koja deluje kao prevodilac između jezika Java i hardvera operativnog sistema. Sve Java implementacije moraju emulirati JVM tako da se aplikacije koje pišete mogu izvoditi na bilo kojem sistemu koji uključuje Java virtuelnu mašinu.

Drugo, Java jeste softverska platforma, čije se verzije isporučuju za različite hardverske sisteme. Postoje tri verzije Jave (pogledajte odjeljak Izdanja Java platforme ispod). Platforma uključuje JVM i Java Application Programming Interface (API), koji je opsežan skup gotovih softverskih komponenti (klasa) koje olakšavaju razvoj i implementaciju apleta i aplikacija. Java API pokriva mnoge aspekte razvoja Jave, uključujući osnovnu manipulaciju objektima, mrežno programiranje, sigurnost, generiranje XML-a i web usluge. API je organiziran kao skup biblioteka tzv u paketima koji sadrže klase i interfejse za rešavanje povezanih problema.

Pored API-ja, svaka potpuna implementacija Java platforme mora uključivati ​​sljedeće:

  • Alati za programere za kompajliranje, pokretanje, praćenje, otklanjanje grešaka i dokumentovanje aplikacija.
  • Standardni mehanizmi za postavljanje aplikacija u korisničko okruženje.
  • Setovi alata koji vam omogućavaju da kreirate složena grafička korisnička sučelja.
  • Integracijske biblioteke za programski pristup bazama podataka i udaljenu manipulaciju objektima.

JVM je također dokazani okvir za pokretanje aplikacija napisanih na jezicima koji nisu Java. Konkretno, Groovy, Scala i specijalizirane implementacije Ruby-a i Python-a pružaju programerima mogućnost izvršavanja dinamičkih i funkcionalnih jezika na JVM-u (za više informacija pogledajte Kakva je Java veza s dinamičkim jezicima i funkcionalnim programiranjem?) .

Java jezik je razvio Sun Microsystems. Trenutno se razvoj Java tehnologija, uključujući rad na specifikacijama, referentnim implementacijama i testovima kompatibilnosti, odvija pod kontrolom otvorene neprofitne organizacije JCP (Java Community Process), koja okuplja Java programere i korisnike licenci. Godine 2007. Sun je objavio besplatnu verziju Jave, koja uključuje osnovne komponente platforme, pod licencom GNU GPL v2 (GPLv2). Više o ovoj verziji možete pročitati u odjeljku Java i razvoj besplatnog softvera.

Zašto biste trebali naučiti Javu?

Glavna prednost Java jezika je prenosivost Java aplikacija, tj. Mogućnost rada na bilo kojoj hardverskoj platformi i operativnom sistemu, budući da su svi JVM-ovi, bez obzira na kojoj platformi rade, sposobni da izvršavaju isti bajt kod.

Java jezik i platforma su izuzetno skalabilni. Možete jednostavno kreirati aplikacije za uređaje sa ograničenim resursima prilagođavanjem softvera koji je originalno napisan za desktop. Međutim, Java je takođe idealna za razvoj Web aplikacija na strani servera koje omogućavaju korisniku pristup računarskim resursima na Webu. Mogućnost sigurnog izvršavanja koda učitanog preko weba prvobitno je ugrađena u Javu, tako da Java pruža visok nivo sigurnosti pri radu preko Interneta. Web aplikacije se pokreću u runtime okruženjima tzv Web kontejneri koji pružaju mnoge zgodne usluge, uključujući slanje zahtjeva, sigurnost i istovremenost, upravljanje životnim ciklusom i pristup API-jima kao što su imenovanje, upravljanje transakcijama i e-pošta. Neki od njih su napisani u Javi serveri aplikacija koji se ponašaju kao Web kontejneri za druge komponente Java, XML i Web usluga koje su u interakciji s bazama podataka i dinamički prikazuju sadržaj web stranice. Ovi serveri takođe pružaju okruženje za implementaciju poslovnih aplikacija i alata za upravljanje transakcijama, grupisanje, sigurnost, povezanost i potrebne nivoe dostupnosti, performansi i skalabilnosti.

Podržavajući upotrebu otvorenih standarda u poslovnim aplikacijama, Java otvara velike mogućnosti za korištenje web servisa zasnovanih na XML-u kako bi pomogla poslovnim partnerima u razmjeni informacionih resursa i aplikacija. Java je u srcu mnogih IBM-ovih tehničkih konsultantskih proizvoda i usluga (IBM proizvodi i tehnologije za Java programere) i igra ključnu ulogu u nekoliko ključnih poslova kompanije.

  • Istražite IBM pristup i naučite kako vam SOA može pomoći da kreirate heterogene aplikacije s funkcionalnošću iz više izvora, kako unutar tako i izvan poduzeća, podržavajući tako horizontalne poslovne procese. IBM pruža niz poslovnih korisnika i IT profesionalaca koji će vam pomoći da počnete s ovom tehnologijom.
  • je pristup baziran na komponentama koji nudi IBM i koji pruža čitav niz mogućnosti za strateške promjene. Pružena rješenja su zasnovana na fleksibilnom, proširivom softveru zasnovanom na otvorenim standardima (uključujući Javu) i hardverskoj infrastrukturi.

Izdanja Java platforme
Postoje tri izdanja Java platforme koja omogućavaju programerima aplikacija, dobavljačima usluga i proizvođačima hardvera da kreiraju rješenja koja zadovoljavaju potrebe određenih grupa korisnika.

  • Java SE (Java platforma, standardno izdanje)... Koristeći Java SE, možete izgraditi i implementirati Java aplikacije za desktop i servere, te razviti ugrađeni softver i programe za sisteme u realnom vremenu. Java SE izdanje uključuje klase potrebne za kreiranje Web usluga i osnovne komponente Java EE (Java Platform, Enterprise Edition). Trenutna verzija Java SE platforme je Java SE 6, poznata i kao "Mustang". Međutim, mnogi programeri još uvijek koriste Java SE 5 (Java 5.0, ili "Tiger").
    • Za odličan pregled Java SE 5 funkcija, pogledajte članke u kolumni. Većina aspekata programiranja za Java SE 5 platformu, za koju su izgrađene mnoge postojeće aplikacije, i dalje su relevantne za Javu SE 6.
    • Ovaj članak opisuje nove funkcije u Javi SE 6 za praćenje i procjenu performansi aplikacije.
    • Ovaj članak pruža uvod u jezik skriptiranja koji radi na platformi Java SE 6 i služi za pojednostavljenje programiranja složenih korisničkih interfejsa.
    • Ova dvodijelna serija pod naslovom pruža uvod u API koji pruža Java SE 6 koji omogućava Java aplikacijama da izvršavaju dinamički skriptni kod i obrnuto. ...
  • Java EE (Java Platforma, Enterprise Edition)... Ova poslovna verzija platforme pomaže programerima da izgrade i implementiraju prenosive, pouzdane, skalabilne i sigurne Java aplikacije na strani servera. Nadovezujući se na mogućnosti Java SE, Java EE pruža Web usluge, modele komponenti, udaljene i upravljačke API-je za implementaciju poslovnog softvera u SOA-i i Web 2.0.
    • Pročitajte članke i za uvodni pregled mogućnosti najnovije verzije Java EE platforme.
    • Pogledajte seriju - popularan okvir za izgradnju laganih i pouzdanih Java EE aplikacija.
    • Za više informacija o Javi EE pogledajte članke u koloni.
    • Članci u seriji Početak rada: Migracija na Java platformu napisani su posebno za .NET, Windows klijent/server i ASP programere kako bi im pomogli da pređu na Javu.
  • Java ME (Java platforma, mikro izdanje)... Java ME pruža okruženje za izvršavanje aplikacija napravljenih za širok spektar mobilnih i ugrađenih sistema kao što su mobilni telefoni, PDA uređaji, set-top box uređaji i štampači. Ovo izdanje platforme pruža fleksibilna korisnička sučelja, robustan sigurnosni model, cijeli niz ugrađenih mrežnih protokola i moćnu podršku za mrežne i vanmrežne dinamički učitane aplikacije. Aplikacije zasnovane na Java ME specifikacijama mogu raditi na raznim uređajima i još uvijek biti u mogućnosti da iskoriste svoje sistemske mogućnosti.

Koje su tehnologije glavne komponente Java platforme?

Java zona developerWorks sadrži uključenu Javu. U nastavku su navedene neke od komponenti, mogući paketi dodataka i proširenja uključena u svako izdanje platforme. Svaka tehnologija ima kratak opis i vezu do izvora koji opisuju njeno mjesto u svijetu Java. Imajte na umu da su mnoge komponente uključene u sva tri izdanja Java platforme.

Tehnologije uključene u Java SE:

  • Java Foundation Classes (Swing)(JFC) je zbirka biblioteka Java klasa koje se koriste za kreiranje grafičkih korisničkih interfejsa i drugih grafičkih funkcija u Java klijentskim aplikacijama. Menadžment .
  • JavaHelp je platformski nezavisan proširivi sistem pomoći koji omogućava programerima i tehničkim piscima da ugrade stranice pomoći u aplete, softverske komponente, aplikacije, operativne sisteme i uređaje, i kreiraju sisteme za veb pomoć. Pogledajte članak.
  • Hvala za Java izvorni interfejs(JNI) Java aplikacije koje se pokreću unutar JVM-a mogu komunicirati sa programima i bibliotekama napisanim na drugim programskim jezicima.
  • Tehnologija Java Web Start Pojednostavljuje primenu Java aplikacija omogućavajući korisnicima da preuzmu i pokreću bogat softver, kao što su tabele, klikom na dugme miša, bez instalacije (pogledajte članak).
  • Povezivanje Java baze podataka(JDBC) je API koji pruža sredstva za pristup većini relacijskih izvora podataka iz Java aplikacija. Može se povezati s mnogim SQL bazama podataka, kao i drugim tabelarnim izvorima podataka kao što su proračunske tablice i ravni fajlovi.
  • Java Advanced Imaging(JAI) je objektno orijentirani API koji pruža jednostavan model programiranja visokog nivoa za pojednostavljenje manipulacije slikama.
  • Java Authentication and Authorization Service(JAAS) je tehnologija koja pruža usluge sa sredstvima za autentifikaciju korisnika i provjeru njihovih prava pristupa. Uključuje Java implementaciju standardnog PAM (Pluggable Authentication Module) okvira i podržava autorizaciju na nivou korisnika.
  • Java Cryptography Extension(JCE) je skup paketa koji obezbjeđuju infrastrukturu i implementacije za enkripciju, generiranje i razmjenu ključeva i algoritame koda za provjeru autentičnosti poruke (MAC). Ova tehnologija također uključuje podršku za simetrične, asimetrične, blokovne i stream šifre, kao i za stream-safe i zapečaćene objekte. Više detalja možete pronaći u priručniku.
  • Java objekti podataka(JDO) je standardni apstraktni model postojanosti za Java objekte baziran na interfejsima. Omogućava programerima da direktno pohranjuju instance domenskih Java klasa u trajno skladište (kao što je baza podataka). U nekim slučajevima, ovaj model može zamijeniti direktno upisivanje u datoteku, serijalizaciju, JDBC, kao i korištenje EJB komponenti na strani servera, kojima upravljaju kontejneri (Container Managed Persistence - CMP) i nezavisno pohranjujuće stanje (Bean Managed Persistence - BMP).
  • Plasticna kesa Java Management Extensions(JMX) pruža alate za izgradnju distribuiranih, modularnih, dinamičkih i Web dostupnih aplikacija za upravljanje i nadgledanje uređaja, softvera i mreža na osnovu pružanja usluga (pogledajte članak).
  • Java Media Framework(JMF) vam omogućava da dodate audio, video i druge medijske informacije u Java aplikacije i aplete (pogledajte priručnik).
  • Java imenovanje i interfejs imenika(JNDI) je objedinjeno sučelje za pristup različitim imenima i uslugama imenika na korporativnoj mreži. Omogućava aplikacijama da se efikasno povežu na različite usluge imenovanja i imenika u heterogenom okruženju preduzeća.
  • Java Secure Socket Extensions(JSSE) je zbirka paketa za sigurnu razmjenu informacija na Internetu. Oni implementiraju Java verziju protokola Secure Sockets Layer (SSL) i Transport Layer Security (TLS) i obezbjeđuju sredstva za šifriranje podataka, provjeru integriteta poruke i autentifikaciju na serveru i klijentu (potonje je opciono).
  • Java Speech API(JSAPI) uključuje JSGF (Java Speech Grammar Format) i JSML (Java Speech Markup Language) specifikacije. Ovaj paket pruža mogućnosti za korištenje govornih tehnologija u korisničkom interfejsu. JSAPI je multi-platformski API za podršku prepoznavanju glasovnih komandi, sistemima za unos govora i sintezi govora. Za više detalja pogledajte sljedeći odjeljak članka.
  • Java 3D je API koji pruža višeplatformske i skalabilne mogućnosti za rad sa 3D grafikom u Java aplikacijama. API je organiziran kao skup objektno orijentiranih sučelja koji se sklapaju u jedan, jednostavan model programiranja visokog nivoa.
  • Mehanizam Metadata Facility Omogućava programerima da definiraju atribute za klase, sučelja, polja i metode tako da mogu biti podvrgnuti posebnom rukovanju razvojnim alatima, alatima za implementaciju i bibliotekama trećih strana u vrijeme izvođenja (pogledajte članak).
  • Java Content Repository API je API za pristup repozitorijumima sadržaja u Java SE, bez obzira na njihovu implementaciju. Takva spremišta su sistemi za upravljanje informacijama visokog nivoa i proširene su verzije klasičnih spremišta podataka.
  • Enumerations(enumeracija) je tip podataka koji vam omogućava da opišete različite stavke podataka kao otkucani skup konstanti.
  • Generici(generički tipovi) vam omogućavaju da kreirate klase sa parametrima (apstraktnim tipovima) koji su specificirani u fazi instanciranja. Pogledajte članak za detalje, a također pogledajte članak o tome kako generički tipovi olakšavaju rad sa kolekcijama u Javi SE 6.0.
  • Komunalne usluge Konkurencija je skup klasa koje pružaju funkcionalnost srednjeg sloja uobičajenu za aplikacije za paralelnu obradu.
  • Java API za XML obradu(JAXP) je API koji Java aplikacije mogu koristiti za raščlanjivanje i transformaciju XML dokumenata, bez obzira na korišteni XML procesor. Ovo omogućava aplikacijama da lako prelaze između različitih procesora bez promjene koda aplikacije. Zauzvrat, JAXB tehnologija ( Java API za XML povezivanje) pruža mogućnosti za automatizaciju mapiranja XML dokumenata i Java objekata.
  • SOAP sa prilozima API za Javu(SAAJ) pruža programerima funkcije za generiranje i obradu poruka u skladu sa SOAP 1.1 specifikacijom, specificirajući SOAP sa prilozima. Za više detalja pogledajte članak).

J2EE tehnologije:

  • Enterprise JavaBeans(EJB) je komponentni model koji pojednostavljuje razvoj međuopreme pružanjem usluga kao što su upravljanje transakcijama, sigurnost i povezivanje baze podataka.
  • Specifikacija portleta definira skup API-ja za izgradnju portala u Javi, pokrivajući aspekte kao što su agregacija i prezentacija informacija, personalizacija i sigurnost (pogledajte članak).
  • JavaMail je API koji pruža skup apstraktnih klasa koje modeliraju sistem pošte.
  • Java Message Service(JMS) je API koji podržava kreiranje prenosivih Java aplikacija za razmjenu poruka. Definiše zajednički skup osnovnih koncepata i programskih strategija za sve JMS-kompatibilne sisteme za razmenu poruka.
  • JavaServer Faces(JSF) pruža model programiranja koji vam pomaže da izgradite Web aplikacije sastavljanjem stranica od komponenti korisničkog interfejsa za višekratnu upotrebu, povezivanjem tih komponenti sa izvorima podataka i klijentskim događajima za rukovaoce servera. Za više informacija pogledajte vodič iz dva dijela i seriju članaka iz serije kolumni.
  • JavaServer Pages(JSP) pruža Web programerima sredstva za brzo kreiranje i jednostavno održavanje dinamičnih web stranica na više platformi koje odvajaju korisničko sučelje i generiranje sadržaja tako da dizajneri mogu mijenjati oznake bez dodirivanja dinamički generiranog sadržaja (pogledajte vodič.
  • Standardna biblioteka oznaka za stranice JavaServera(JSTL) je kolekcija specijaliziranih oznaka koje pružaju standardni format za izvođenje radnji koje zahtijevaju mnoge web aplikacije. Pogledajte Osvježite svoje JSP stranice pomoću JSTL-a i četverodijelnu seriju pod nazivom.
  • Java servleti proširite funkcionalnost Web servera pružanjem višeplatformskog pristupa zasnovanog na komponentama za izgradnju Web aplikacija koji je slobodan od ograničenja performansi CGI.
  • Arhitektura J2EE konektora(JCA) pruža standardnu ​​arhitekturu za povezivanje J2EE aplikacija sa heterogenim informacionim sistemima preduzeća (EIS). Ova arhitektura definira skup skalabilnih i sigurnih mehanizama zasnovanih na transakcijama pomoću kojih dobavljači EIS-a mogu obezbijediti standardne adaptere resursa za uključivanje u poslužitelj aplikacija. Za više informacija pogledajte članke i priručnik.
  • J2EE specifikacija upravljanja(JMX) definira model upravljanja informacijama za J2EE platformu. Ovaj model je posebno dizajniran za interakciju sa mnogim sistemima i kontrolnim protokolima. Sadrži standardne alate za mapiranje na zajednički informacioni model (CIM), SNMP bazu informacija za upravljanje (MIB) i Java objektni model pomoću J2EE upravljačke EJB komponente (MEJB) rezidentnog servera EJB.
  • Java Transaction API(JTA) je API na visokom nivou za implementaciju i nezavisan od protokola koji pruža programima i aplikacijskim serverima sredstva za pristup transakcijama. Java Transaction Service(JTS) definira implementaciju menadžera transakcija koji podržava JTA i implementira, na osnovnom nivou, mapiranje na Object Transaction Service (OTS 1.1) OMG-a. Proširivanje transakcije u JTS-u se implementira korištenjem Inter-ORB protokola (IIOP). Za više detalja pogledajte članak.

Tehnologije koje su dio J2ME:

  • Profil mobilnog informacionog uređaja(MIDP) je jedna od dvije konfiguracije koje čine Java runtime okruženje za mobilne uređaje sa ograničenim resursima. MIDP pruža osnovnu funkcionalnost za aplikacije, uključujući alate za kreiranje korisničkih interfejsa, povezivanje sa mrežnim resursima, lokalno skladištenje podataka i upravljanje životnim ciklusom.
  • Konfiguracija povezanog uređaja(CDC) je standardizirana infrastruktura za izgradnju i implementaciju aplikacija kojoj se može pristupiti s mnogih umreženih i ugrađenih uređaja.
  • Mobile 3D Graphics API za J2ME(M3G) je lagani interaktivni 3D API koji je dodatak J2ME. Više o njemu možete pročitati u dvodijelnoj seriji.

Java tehnologije i razvoj web aplikacija

Java je već dugi niz godina primarni jezik za razvoj web aplikacija. Poslednjih godina pojavili su se mnogi okviri i biblioteke koje olakšavaju kreiranje Java Web aplikacija, uključujući bogate interaktivne Web 2.0 aplikacije.

Pogledajte sljedeće resurse za Java Web Development.

  • Ova kolona predstavlja Grails, moderan okvir za izgradnju web aplikacija napisan u Groovy-u. Grails vam omogućava da neprimetno kombinujete prethodno napisani Java kod sa mogućnošću korišćenja fleksibilnog i dinamičkog jezika za skriptovanje. Za više informacija o Groovyju, pogledajte kakav je odnos Jave prema dinamičkim jezicima i funkcionalnom programiranju ispod?.
  • Ajax je metodologija programiranja koja koristi jezike za skriptiranje na strani klijenta za komunikaciju s web serverom tako da se stranice mogu brzo osvježiti bez potrebe za potpuno ponovnim učitavanjem. U ovoj seriji članaka naučit ćete kako vam Ajax može pomoći kao Java programeru. Pogledajte developerWorks za više informacija.
  • JavaServer Faces (JSF) pruža model programiranja koji vam pomaže da izgradite Web aplikacije sastavljanjem stranica od komponenti korisničkog interfejsa za višekratnu upotrebu, povezujući te komponente sa izvorima podataka i klijentima generisane događaje sa serverskim rukovaocima. Za više informacija pogledajte vodič iz dva dijela i seriju članaka iz serije kolumni.
  • Eclipse Web Tools Platform (WTP) proširuje popularno razvojno okruženje Eclipse dodavanjem alata za pravljenje Web aplikacija zasnovanih na Java EE tehnologijama (pogledajte tutorijal).
  • Pogledajte developerWorks za mnoge druge odlične materijale o ovim temama.

Java tehnologije, SOA i web usluge

Service Oriented Architecture (SOA) je model komponenti koji povezuje funkcionalne module aplikacije (poznate kao Usluge odakle dolazi taj termin Web usluge) kroz strogo opisane interfejse i ugovore. Definicije interfejsa su nezavisne od hardvera, operativnog sistema i programskog jezika u kojem je usluga implementirana, čime se održava jedinstvena komunikacija između usluga koje su komponente različitih sistema. SOA je primjer labavo spregnutog modela programiranja koji pruža alternativu klasičnim čvrsto povezanim objektno orijentiranim modelima.

Kreirani na ovom principu, web servisi vam omogućavaju da opišete poslovna pravila i procese u XML-u, tako da se interakcija aplikacija može obavljati bez obzira na platforme i programske jezike koji se koriste. XML tehnologije promovišu prenosivost podataka i pojednostavljuju kreiranje poruka, dok Java tehnologije omogućavaju pisanje prenosivog koda. XML i Java dobro funkcionišu zajedno, čineći ih savršenom kombinacijom tehnologija za izgradnju i implementaciju Web usluga.

Za više informacija pročitajte sljedeće materijale:

  • Stranice i stranice DeveloperWorksa mogu vam pomoći da se krećete kroz ove izazovne tehnologije.
  • U ovoj seriji ćete naučiti o infrastrukturama Java Web usluga i novim funkcionalnim slojevima koji su izgrađeni na tim uslugama.
  • Ovaj članak predstavlja elegantan stil dizajna web usluga pod nazivom Representational State Transfer (REST) ​​i objašnjava kako koristiti Javu za izgradnju RESTful Web usluga.
  • Razumijevanje JAX-RPC (Java API-based RPC za rad sa XML) tehnologije je od suštinskog značaja za kreiranje efikasnih Java Web usluga.
  • JAX-WS je očigledan sljedeći korak u evoluciji JAX-RPC-a. Praktični uvod u ovaj novi API je dat u tutorijalu.
  • Ova serija je vodič za arhitekturu komponenti usluga (SCA), specifikaciju koja opisuje SOA model za razvoj aplikacija i sistema.
  • Ovaj članak pruža uvod u okvir Service Data Objects, koji pojednostavljuje Java EE model podataka za izgradnju SOA aplikacija.

Kakve veze Java ima sa dinamičkim jezicima i funkcionalnim programiranjem?

Mnogi programeri koji počinju sa Javom imaju veliko iskustvo sa drugim programskim jezicima. Istovremeno, čak i najugledniji programeri priznaju da Java nije idealan jezik za rješavanje od svega problemi sa kojima se susreće u praksi. Srećom, uz podršku za JVM, možete u potpunosti iskoristiti današnje dinamičke skripte i funkcionalne jezike kada razvijate aplikacije za Java platformu. Fleksibilnost i dinamičnost ovih jezika pokazali su se vrlo korisnim pri izradi prototipa i implementaciji određenih vrsta aplikacija.

Više o mogućnostima korištenja dinamičkih i funkcionalnih jezika na Java platformi možete pročitati u materijalima, linkovi do kojih su dati u nastavku.

  • Groovy skriptni jezik omogućava Java programerima da koriste svoje najpoznatije jezičke konstrukcije i biblioteke, dok istovremeno pružaju fleksibilno, dinamično razvojno okruženje koje ne zahtijeva kompilaciju, pojednostavljuje sintaksu i podržava skriptiranje u uobičajenim Java aplikacijama. Detaljan pregled mogućnosti ovog jezika dat je u člancima u seriji.
  • Novi API za skriptiranje u Javi SE 6, koji je unatrag kompatibilan sa Javom SE 5 i sadrži mali skup interfejsa i klasa, pruža jednostavan način za pozivanje skripti napisanih na desetinama jezika iz Java koda. Pomoću njega možete učitavati i pozivati ​​vanjske skripte u vrijeme izvođenja, dinamički mijenjajući ponašanje vaše aplikacije. Više o ovom API-ju možete pročitati u dvodijelnoj seriji pod naslovom.
  • Da li ste vatreni pobornik funkcionalnog programiranja? Zatim treba obratiti pažnju na kolonu u kojoj se govori o Scali, programskom jeziku za JVM koji kombinuje funkcionalan i objektno orijentisan pristup razvoju.
  • VM-ovi već dugo podržavaju alternativne programske jezike. U člancima u kolumni možete pročitati o JVM implementacijama jezika kao što su Rexx, Ruby, JavaScript, Python i neki drugi.

Java i razvoj besplatnog softvera

Postoji bezbroj načina za izgradnju Java biblioteka, alata, okvira, programa i aplikacijskih servera koji otvaraju dodatne mogućnosti programerima da iskoriste ovu moćnu platformu. Određeni broj besplatnih tehnologija je tokom vremena ugrađen u Java platformu, dok su druge ostale popularne kod Java programera tokom godina, u nekim slučajevima djelujući kao de facto standardi.

  • Apache Software Foundation (EN) okuplja mnoge projekte otvorenog koda, od kojih je većina razvijena pomoću Java tehnologije. Neki od članova ove porodice projekata su navedeni u nastavku.
    • Apache Struts je okvir za izgradnju Web aplikacija koje prate arhitekturu Model-View-Controller.
    • Apache Shale je još jedan moderan okvir za pravljenje web aplikacija koji je naslijeđen od Struts-a i baziran je na JSP (JavaServer Pages) tehnologiji. Za uvod u Shale pogledajte članke u seriji.
    • Apache Ant je de facto standard za automatizaciju procesa izgradnje Java aplikacija.
    • Apache Maven Build Tool dizajniran je imajući na umu zahtjeve modernih softverskih projekata, sa dinamičkom interakcijom između razvojnih timova i oslanjanjem na mnoge nezavisno podržane komponente (pogledajte vodič).
    • Apache Tomcat je popularan Web kontejner koji podržava servlete i stranice Java servera (JSP).
    • Projekat Apache Geronimo se bavi kreiranjem Java EE aplikacijskog servera u potpunosti usklađenog sa specifikacijama zasnovanog na čisto besplatnoj tehnologiji. Više o Geronimu možete pročitati u ovom članku i na web stranici developerWorks za obilje korisnog sadržaja.
    • Apache Derby je server relacijske baze podataka u potpunosti implementiran u Javi. Uvod u Derby je dat u članku.
  • Eclipse (EN) je otvorena i nezavisna razvojna platforma i skup osnovnih alata za pravljenje softvera. Napisan je na Javi i pruža dodatnu infrastrukturu koja olakšava razvoj, integraciju i korištenje softverskih alata. IBM je jedan od osnivača Eclipse.org i aktivno učestvuje u upravnom odboru i pododborima projekta. O nekim komponentnim tehnologijama Eclipse platforme za kreiranje Java aplikacija možete pročitati u sljedećim materijalima:
    • AspectJ je aspektno orijentisana ekstenzija za jezik Java koja se može koristiti za modularnu implementaciju unakrsne funkcionalnosti kao što je evidentiranje ili rukovanje izuzetcima.
    • Standardni komplet alata za vidžete (EN) (SWT) je komplet alata koji vam omogućava da iskoristite snagu operativnog sistema za kreiranje elemenata korisničkog interfejsa na efikasan i prenosiv način.
    • Mylyn je moćan sistem upravljanja poslovima za Eclipse korisnike. Za detaljne upute pogledajte članke i, ranije poznat kao "Acegi Security for Spring", je moćno i fleksibilno sigurnosno rješenje za poslovne aplikacije izgrađeno na vrhu Spring okvira. To je detaljno obrađeno u četiri članka iz serije.
  • Sun Microsystems je takođe pokrenuo sledeće projekte zajednice na java.net:
    • Openjdk

Kako razviti vještine Java programiranja?

Postoje dva glavna načina na koja možete razviti svoje vještine programiranja na Javi: pohađati namjenski kurs obuke (sa opcijama sertifikacije) ili naučiti Javu samostalno vježbajući kodiranje. Kursevi obuke ne samo da vam omogućavaju da učite iz iskustva kvalifikovanih programera, već vam takođe pružaju priliku da dobijete sertifikat koji može da ubedi potencijalnog poslodavca da posedujete veštine neophodne da odgovorite na tehničke izazove sa kojima se suočavamo. Na taj način možete produbiti svoje znanje u različitim oblastima Jave, samostalno eksperimentirajući i koristeći sve raspoložive resurse. Koji god put da odaberete, sljedeći resursi će vam pomoći.

  • Vodiči i članci
    • DeveloperWorks ima opsežnu kolekciju koja je na drugom mjestu nakon samog kodiranja u smislu korisnosti u učenju Jave.
    • Članci su serije i odlični su za poboljšanje vaših vještina Java jezika.
    • Korištenje teorije dizajna za kreiranje aplikacija u stvarnom svijetu raspravlja se u člancima u seriji.
    • Iskusni Java programeri unaprijed ugrađuju alate u svoje aplikacije kako bi ih otklonili i testirali. DeveloperWorks ima nekoliko članaka u seriji - Eclipse-bazirane igre u realnom vremenu za učenje Java programiranja. Za uvod u CodeRuler pogledajte Osvajanje srednjovjekovnih kraljevstava pomoću CodeRulera.
  • IBM-ovi kursevi tehničke obuke
    • Uživajte u širokom spektru Java kurseva na mreži, licem u lice i multimedija od IBM Global Services.
  • Certifikat
    • Možete polagati nekoliko ispita da biste stekli certifikate koji demonstriraju vaše vještine programiranja na Javi. Za kurseve za certifikaciju pogledajte web stranicu Java Certification.
    • IBM osnažuje vaše vještine u tehnologijama vezanim za Java, kao što je izgradnja poslovnih aplikacija za WebSphere, Rational softver, DB2, XML i SOA.
  • Forumi
    • Moderiran od strane stručnjaka sa dugogodišnjim iskustvom u tehnologiji Java, ovo je najinteraktivniji način učenja jezika Java.

IBM proizvodi i tehnologije za Java programere

IBM je jedan od lidera u praktičnoj primeni Java tehnologija. Sljedeće su veze na neke od IBM proizvoda i tehnologija dostupnih programerima za Java platformu.

  • Proizvodi za besplatno preuzimanje:
    • (Java Developer Kit) je kolekcija alata za pravljenje i testiranje apleta i aplikacija za Java SE i Java ME na raznim popularnim operativnim sistemima, uključujući Windows, Linux i AIX.
    • (IBM razvojni paket za Eclipse) je Eclipse-bazirani nepodržani komplet alata za razvojne programere koji vam omogućava da izgradite i pokrenete aplikacije u vašem vlastitom gotovom razvojnom okruženju.
    • : Možete preuzeti besplatne Eclipse softverske pakete sa developerWorksa, uključujući paralelne proizvode Calisto i Europa.
    • je virtuelno skladište obećavajućih Java tehnologija koje se razvijaju u IBM-u. To uključuje API-je, IDE, razvojne komplete, referentne implementacije i uslužne programe. Ispod su linkovi za neke od tehnologija predstavljenih u alphaWorksu.
    • ... Ovaj uslužni program vam pomaže da analizirate i generišete probne Ant skripte za izgradnju projekata razvijenih sa Eclipse, Rational i WebSphere IDE za platforme Java EE i SCA.
    • (IBM alat za modeliranje i analizu uzoraka za Java Garbage Collector). Ovaj uslužni program analizira detaljne GC datoteke praćenja, analizira upotrebu memorije hrpe (hrpe) i preporučuje podešavanje aplikacije na osnovu rezultata simulacije memorije. (Secure Shell Library za Javu) je lagana implementacija SSH-2 protokola razvijena od strane Internet Engineering Task Force (IETF). Pruža sigurne alate za autentifikaciju i druge sigurne usluge koje rade preko nezaštićene mreže. omogućava vam da konsolidujete i transformišete podatke, čime se povećava produktivnost, fleksibilnost i produktivnost vašeg poslovanja pružanjem brzog pristupa informacijama koje su vam potrebne.

Top srodni članci