Osnove Jave. Od čega se sastoji tečaj “JAVA ispočetka”?

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Java je naziv dat ne samo samom jeziku, već i platformi za stvaranje aplikacija na razini poduzeća temeljenih na ovom jeziku.

U početku se programski jezik zvao Hrast (ruski). hrast) i razvio ju je James Gosling za potrošačku elektroniku, ali je kasnije preimenovana u Java i počela se koristiti za pisanje klijentskih aplikacija i poslužitelja softver. Ime je dobio po brendu Java kave, omiljenom među programerima, zbog čega i službeni logo jezik Java prikazana je šalica kave koja se dimi.

Glavne značajke jezika

Najnovije izdanje je verzija 1.6, koja je poboljšala sigurnosni sustav, poboljšanu podršku skriptni jezik Mozilla Rhino (engleski), poboljšana integracija radne površine, dodane neke nove značajke u kreiranju grafičkih sučelja.

Java i Microsoft

Sljedeće tvrtke prvenstveno se fokusiraju na Java (J2EE) tehnologije, a ne na .NET, iako se bave i potonjim: IBM, Oracle. Konkretno, Oracle DBMS uključuje JVM kao svoju komponentu, koja pruža mogućnost izravnog programiranja DBMS-a u jeziku Java, uključujući, na primjer, pohranjene procedure.

Glavne značajke

Primjer programa

Program koji ispisuje "Hello, World!":

Javna klasa HelloWorld ( public static void main(String args) ( System .out .println ("Hello, World!") ; ) )

Primjer korištenja šablona:

Uvezi java.util.*; public class Sample ( public static void main(String args) ( // Kreirajte objekt pomoću predloška. Popis nizovi = novi LinkedList () ; strings.add("Zdravo"); strings.add("svijet"); strings.add("!"); za (String s: nizovi) ( System .out .print (s) ; System .out .print (" " ) ; ) ) )

Ključne ideje

Primitivni tipovi

U Javi postoji samo 8 skalarnih tipova: boolean, byte, char, short, int, long, float, double.

Klase omotači primitivnih tipova

Duljine i rasponi vrijednosti primitivnih tipova definirani su standardom, a ne provedba i prikazani su u tablici. Tip char napravljen je od dva bajta radi lakše lokalizacije (jedno od ideoloških načela Jave): kada se standard razvijao, Unicode-16 je već postojao, ali ne i Unicode-32. Budući da kao rezultat nije ostao nijedan jednobajtni tip, dodan je novi tip bajta. Tipovi float i double mogu imati posebne vrijednosti i "ne broj" (

Tip Duljina (u bajtovima) Raspon ili skup vrijednosti
Booleov nedefiniran točno netočno
bajt 1 −128..127
char 2 0..2 16 -1, odnosno 0..65535
kratak 2 −2 15 ..2 15 -1, ili −32768..32767
int 4 −2 31 ..2 31 -1, ili −2147483648..2147483647
dugo 8 −2 63 ..2 63 -1, ili približno −9,2 10 18 ..9,2 10 18
plutati 4 -(2-2 -23) 2 127 ..(2-2 -23) 2 127, ili približno −3,4 10 38 ..3,4 10 38, kao i , , NaN
dvostruko 8 -(2-2 -52)·2 1023 ..(2-2 -52)·2 1023 , ili približno −1,8·10 308 ..1,8·10 308 , kao i , , NaN

Takva stroga standardizacija bila je nužna kako bi jezik postao neovisan o platformi, što je jedan od ideoloških zahtjeva za Javu i jedan od razloga njezina uspjeha. Međutim, još uvijek postoji jedan mali problem s neovisnošću o platformi. Neki procesori koriste 10-bajtne registre za privremeno pohranjivanje rezultata ili na neki drugi način za poboljšanje točnosti izračuna. Kako bi Java bila što kompatibilnija između različitih sustava, ranije verzije bilo koji način povećanja točnosti izračuna bio je zabranjen. Međutim, to je dovelo do smanjenja performansi. Pokazalo se da malo kome treba pogoršanje točnosti radi neovisnosti o platformi, pogotovo ako to moraju platiti usporavanjem programa. Nakon brojnih prosvjeda ova je zabrana ukinuta, ali dodana ključna riječ strictfp, koji onemogućuje povećanje preciznosti.

Transformacije za matematičke operacije

U Javi se primjenjuju sljedeća pravila:

  1. Ako je jedan operand tipa double, drugi se također pretvara u tip double.
  2. Inače, ako je jedan operand tipa float, drugi se također pretvara u tip float.
  3. Inače, ako je jedan operand tipa long, drugi se također pretvara u tip long.
  4. Inače, oba operanda se pretvaraju u tip int.

Posljednje pravilo razlikuje Javu od starijih implementacija i C++ i čini kod sigurnijim. Tako, na primjer, u Javi, nakon izvršenja koda

Kratki x = 50, y = 1000; int z = x*y;

varijabli z dodijeljena je vrijednost 50000, umjesto −15536, kao u većini beznadno zastarjelih C i C++ implementacija. U programu koji kompilira MS VC++, počevši od verzije 7, kao i mnogi drugi moderni kompajleri (gcc, Intel C++, Borland C++, Comeau itd.), vrijednost će također biti 50000.

Objektne varijable, objekti, reference i pokazivači

Java ima samo dinamički stvorene objekte. Štoviše, varijable tipa objekta i objekti u Javi potpuno su različiti entiteti. Varijable tipa objekta su reference, to jest implicitni pokazivači na dinamički kreirane objekte. To je naglašeno sintaksom za opis varijabli. Dakle, u Javi ne možete napisati:

Dupli a[ 10 ] [ 20 ] ; Foo b(30);

Dvostruko a = novo dvostruko [10] [20]; Foo b = novi Foo(30 ) ;

Tijekom dodjele, prijenosa potprogramima i usporedbi, varijable objekta se ponašaju kao pokazivači, odnosno adrese objekata se dodjeljuju, kopiraju i uspoređuju. A kada se pristupa podatkovnim poljima ili metodama objekta pomoću varijable objekta, nisu potrebne posebne operacije dereferenciranja—pristup se izvodi kao da je varijabla objekta sam objekt.

Varijable objekta su bilo koje vrste osim jednostavnih numeričkih vrsta. U Javi nema eksplicitnih pokazivača. Za razliku od pokazivača u C, C++ i drugim programskim jezicima, reference u Javi vrlo su sigurne zbog strogih ograničenja njihove upotrebe, posebice:

  • Ne možete pretvoriti objekt tipa int ili bilo kojeg drugog primitivnog tipa u pokazivač ili referencu i obrnuto.
  • Zabranjeno je izvršavanje ++, −−, +, − ili bilo koje druge aritmetičke operacije nad referencama.
  • Pretvorba tipa između referenci je strogo regulirana. Uz iznimku referenci polja, dopušteno je samo pretvoriti reference između naslijeđenog tipa i njegovog potomka, a pretvorba iz naslijeđenog tipa u naslijeđeni tip mora biti eksplicitno specificirana i provjerena tijekom izvođenja da bi imala smisla. Pretvorbe referenci polja dopuštene su samo ako su dopuštene pretvorbe njihovih temeljnih tipova i ako nema sukoba dimenzija.
  • U Javi ne postoji operator za preuzimanje adrese (&) ili preuzimanje objekta na adresi (*). Zvjezdica u Javi znači množenje i ništa više. Ampersand (&) samo znači "bitno i" (dvostruki ampersand znači "logično i").

Zahvaljujući takvim posebno uvedenim ograničenjima u Javi, izravna manipulacija memorijom na razini fizičkih adresa je nemoguća (iako postoje poveznice koje ne upućuju ni na što: vrijednost takve poveznice označena je s null).

Dupliciranje veza i kloniranje

Budući da su varijable objekta referentne varijable, dodjela ne kopira objekt. Dakle, ako pišete

Fu fu, bar; ... bar = foo;

tada će adresa iz varijable foo biti kopirana u varijablu bar. To jest, foo i bar će pokazivati ​​na isto memorijsko područje, to jest na isti objekt; pokušaj promjene polja objekta na koji upućuje foo će promijeniti objekt na koji upućuje bar i obrnuto. Ako trebate nabaviti još samo jednu kopirati izvorni objekt, koristite ili metodu (funkcija članica, u C++ terminologiji) clone(), koja stvara kopiju objekta ili konstruktor kopije.

Metoda clone() zahtijeva da klasa implementira Cloneable sučelje (pogledajte sučelja u nastavku). Ako klasa implementira Cloneable sučelje, prema zadanim postavkama clone() kopira sva polja ( mala kopija). Ako želite klonirati polja, a ne kopirati ih (kao i njihova polja itd.), morate nadjačati metodu clone(). Definiranje i korištenje metode clone() često nije trivijalan zadatak.

Kolekcija smeća

U jeziku Java nije moguće eksplicitno ukloniti objekt iz memorije - umjesto toga implementirano je sakupljanje smeća. Tradicionalni trik koji sakupljaču smeća daje "savjet" za oslobađanje memorije je dodijeliti varijabli praznu vrijednost null. Međutim, to ne znači da će objekt zamijenjen nullom nužno biti odmah izbrisan. Ova tehnika samo uklanja referencu na objekt, to jest odvezuje pokazivač od objekta u memoriji. Treba uzeti u obzir da skupljač smeća neće izbrisati objekt sve dok na njega ukazuje barem jedna referenca iz varijabli ili korištenih objekata. Postoje i metode za prisilno prikupljanje smeća, ali nije zajamčeno da će ih pozvati runtime i ne preporučuju se za normalnu upotrebu.

Klase i funkcije

Java nije proceduralni jezik: svaka funkcija može postojati samo unutar klase. To je naglašeno terminologijom jezika Java, gdje ne postoji koncept "funkcije" ili "funkcije članice". funkcija člana), ali samo metoda. Standardne funkcije također su se pretvorile u metode. Na primjer, u Javi ne postoji funkcija sin(), ali postoji metoda Math.sin() klase Math (koja osim sin() sadrži metode cos(), exp(), sqrt( ), abs() i mnogi drugi).

Statičke metode i polja

Kako biste izbjegli potrebu za stvaranjem objekta klase Math (i drugih sličnih klasa) svaki put kada trebate pozvati sin() (i druge slične funkcije), koncept statičke metode(Engleski) statička metoda; ponekad se u ruskom nazivaju statički). Statička metoda (označena ključnom riječi static u opisu) može se pozvati bez stvaranja objekta svoje klase. Stoga možete pisati

Dupli x = Math.sin(1);

Matematika m = nova matematika(); dvostruko x = m.sin(1);

Ograničenje statičkih metoda je da mogu pristupiti samo statičkim poljima i metodama u ovom objektu.

Statička polja imaju isto značenje kao u C++: svako postoji samo u jednoj kopiji.

konačnost

Ključna riječ final znači različite stvari kada se deklarira varijabla, metoda ili klasa. Konačna varijabla (nazvana konstanta) se inicijalizira nakon opisa i ne može se dalje mijenjati. Konačna metoda ne može se nadjačati nasljeđivanjem. Posljednja klasa uopće ne može imati nasljednike.

Apstraktnost

U Javi su metode koje nisu eksplicitno deklarirane kao konačne ili privatne virtualne u C++ terminologiji: pozivanje metode definirane drugačije u osnovnoj klasi i podklasi uvijek uključuje provjeru vremena izvođenja.

Apstraktna metoda (apstraktni deskriptor) u Javi je metoda za koju su navedeni parametri i tip povrata, ali ne i tijelo. Apstraktna metoda definirana je u klasama potomcima. U C++ se ista stvar naziva čista virtualna funkcija. Da bi se apstraktne metode mogle opisati u klasi, sama klasa također mora biti opisana kao apstraktna. Objekti apstraktne klase ne mogu se kreirati.

U ovom ću članku pokušati što jednostavnije i preglednije predstaviti osnove programiranja u Delphiju.

Java za lutke. Lekcija 1. Zdravo svijete!

Prvo ću vam reći što Java može. Prvo, na ovom jeziku možete pisati aplete - programe koji su ugrađeni u web stranicu web stranice. Na primjer, to može biti igra, poslovni grafički sustav i još mnogo toga. Drugo, u Javi možete pisati potpune aplikacije koje nisu nužno povezane s webom. Ili možete koristiti servlete - programe koji se, za razliku od apleta, ne izvršavaju na strani klijenta, već na strani poslužitelja.

Počnimo sa samim osnovama. Odajmo počast tradiciji i pišimo najjednostavniji program, koji prikazuje pozdrav Pozdrav svijete. Ako nemate Javu, tada se može preuzeti sa službene web stranice http://www.java.com/ru. Zatim ga instalirajte.

Ako Java ste instalirali, zatim upišite sljedeći tekst u neki editor:

{

Javni statički void main ( Argumenti niza ) {

Sustav . van . ispisati ( "Pozdrav svijete!" );

}

}

I svakako ga spremite pod imenom Pozdrav svijete. Java- Naziv izvršne klase mora odgovarati nazivu datoteke. Za kompajliranje koristite program javac.exe uključeno u standardni paket Java. Ovako bi mogla izgledati paketna datoteka kompilacije ova java datoteka:

"c:\Programske datoteke\Java\jdk1.7.0\bin\javac" HellowWorld.java

pauza

Ako nije došlo do pogrešaka tijekom kompilacije:


onda je najvjerojatnije kompilacija bila uspješna kod vas u istom direktoriju gdje se nalazio HellowWorld. Java Pojavio se i HellowWorld.klasa:

Sada pokrenimo drugu batch datoteku koja će pozvati Java interpreter zajedno s našom kompajliranom datotekom:

"c:\Programske datoteke\Java\jdk1.7.0\bin\java" HellowWorld

pauza

Ako je sve učinjeno ispravno, trebali biste dobiti ovaj rezultat:


Ako ste ga dobili, onda vam mogu čestitati - napisali ste svoj prvi program u Javi. U budućnosti ćemo naučiti kako pisati Java applete i još mnogo toga. A sada nekoliko riječi o samom programu. Kao što ste primijetili, počinje riječju javnost. Ovo je modifikator koji znači da deklariramo nešto javno dostupno: klasu, metodu klase ili varijablu. Postoje i drugi modifikatori, na primjer: privatan, zaštićen, prijateljski, konačan, apstraktan, statičan. Neki od njih mogu se međusobno kombinirati. Na primjer, privatno znači da je varijabla koju želimo deklarirati privatna za druge klase. Ali kasnije ćemo doći do modifikatora. Sada pogledajmo sljedeću ključnu riječ, klasa. To znači da deklariramo klasu. U Javi se sve temelji na klasama. Jedna od klasa je nužno i osnovna. I osnovna klasa mora biti javna. U ovom primjeru to je klasa HelloWord. Za sada je on jedini koji imamo.

Sada ću pokušati objasniti jednostavnim riječima, što je Klasa i što je objekt.

Prisjetimo se školskog tečaja zoologije. Kako je klasificiran živi svijet? Prvo se uvodi pojam "kraljevstva".

1. Kraljevstvo jednoćelijskih organizama,

2. carstvo biljaka

3. Životinjsko carstvo.

Uzmimo životinje. Mogu se podijeliti prema vrsti. Na primjer:

1. Vrsta koelenterata.

2. Vrsta pljosnatih crva.

3. Vrsta školjkaša.

4. Phylum chordata.

Potonji su podijeljeni na sisavce, gmazove, vodozemce, ptice itd. Možete ići i dalje u klasifikaciju, ali to nećemo učiniti sada, već ćemo prijeći izravno na programiranje.

U jeziku Java možete, slično kao kod klasifikacije živog svijeta, klasificirati objekte (dijelove programa i podatke). Ima klase za to.

stani stani! - kažete - zašto klasificirati te predmete?

Zamislite da vi poput nekog demijurga (kreatora, boga) stvarate život na Zemlji. Prvo ste razvili najjednostavnije organske spojeve. Dakle, eksperimenta radi, što će biti. Potom su ih spajali u složene molekule, od kojih su, poput cigli, sastavljali najjednostavnije mikroorganizme. Ali vaš krajnji cilj je stvoriti inteligentan život. Dakle, niste tu stali, već ste stvorili višestanične organizme. Zatim su ih počeli poboljšavati i razvijati. Neke vrste su se pokazale održivima, neke su izumrle (dinosauri). I konačno je cilj postignut - pojavio se Homo sapiens - Homo sapiens.

Sada se spustimo na zemlju i zamislimo programiranje kao kreaciju, gdje prisiljavate svoj program da se razvije do određenog stanja kada se može koristiti, a zatim dalje, postupno povećavajući i poboljšavajući funkcionalnost.

Sada zamislimo da je atom najjednostavnija naredba programe ili jedinicu informacija (koje, vidite, nisu odvojive jedna od druge, jer program radi s nečim - tako je, s informacijama).

Tada je molekula potprogram. Ili predmet.

Tako smo stvorili hrpu objekata u našem programu. Moramo ih nekako klasificirati da se ne bi zabunili. To je ono za što Java nudi klase. Pomoću njih opisujemo klasu objekata (opći koncept, na primjer ptice), a zatim, imajući opisanu klasu, možemo kreirati objekt - instancu te klase. Odnosno, klasa je sama riječ Ptice, a objekt je neka specifična ptica, ako nastavimo našu analogiju.

Nadalje, ptice su različiti tipovi. Ali svi oni imaju neke zajedničke karakteristike, naslijeđene iz koncepta "Ptice". Slično u Javi, iz klase možete stvoriti drugu klasu koja nasljeđuje njezina svojstva i metode (značajke). To se zove nasljedstvo.

Različite ptice imaju različite boje perja, različite oblike kljuna i krila. Isto tako za klase, prilikom kreiranja nove klase, mogu se promijeniti naslijeđene karakteristike. To se zove polimorfizam.

Dakle, shvatili smo osnovne koncepte Jave. Sada prođimo kroz program.

Ovako deklariramo klasu:

javna klasa HelloWorld {

U ovom slučaju postoji samo jedna klasa u našem programu, a to je bazna klasa, odnosno klasa zadužena za pokretanje programa. Zato njen naziv mora odgovarati nazivu datoteke, kako bi interpreter “znao” gdje treba početi izvršavati program.

Osnovna klasa (HelloWorld) ima osnovnu metodu: main. Proglasili smo ga javnim i statičnim. Prvi označava da je metoda javna. Da nije tako, naš program jednostavno ne bi krenuo. Postoje i metode koje nisu javno dostupne, ali o njima ćemo govoriti u sljedećim lekcijama. Za sada zapamtite da osnovna metoda (koja se pokreće kada pokrenemo program) mora biti javna. I njegovo ime bi trebalo biti glavno kako bi tumač znao gdje treba početi izvršavati program.

Sada što je statično. Ovo je modifikator koji označava da je metoda statična. Odnosno, radi čak i kada instanca klase (objekta) nije kreirana. Općenito, polja i metode sa statičkim modifikatorom zajedničke su svim objektima klase. O ovome ćemo također razgovarati kasnije.

Svaka metoda može, ali i ne mora imati povratnu vrijednost. Ako jest, onda je to funkcija. Tip povratne vrijednosti također je uključen u deklaraciju metode. Ako nije, postavite ga na void (kao u našem primjeru).

Pristup poljima i metodama objekta odvija se kroz točku. Tu su i ugrađeni objekti, na primjer, System, koji koristimo u našem primjeru:

Sustav . van . ispisati ( "Pozdrav svijete!" );

u ovom slučaju pristupamo polju out, koje je također objekt namijenjen ispisu podataka, i pozivamo njegovu metodu ispisa, koja prikazuje tekst na ekranu (kao naredba PRINT u dobrom starom BASIC-u).

(C) Šuravin Aleksandar

Java (tj. Java) je otok u Indoneziji, vrsta kave i programski jezik. Tri potpuno različita značenja, a svi su važni na svoj način. Međutim, za većinu programera interesantan je programski jezik Java. Tijekom proteklih nekoliko godina (od kraja 1995.) Java je uspjela osvojiti zajednicu programera. Njegov fenomenalan uspjeh učinio je Javu najbrže rastućim programskim jezikom u povijesti. Bilo je dosta pompe oko jezika i njegovih mogućnosti. I mnogi programeri, kao i krajnji korisnici, ne razumiju u potpunosti što je Java jezik i koje mogućnosti pruža.

Java je revolucionarni programski jezik

Kvalitete koje Javu čine tako privlačnom nalaze se iu drugim programskim jezicima. Mnogi jezici idealni su za određene vrste aplikacija. Čak i više od Jave. Ali Java je objedinila sve te kvalitete u jednom jeziku. Ovo je revolucionarni korak naprijed za industriju razvoja softvera.

Pogledajmo pobliže neka svojstva ovog jezika:

  • objektno orijentirano
  • prenosivost
  • višenitna podrška
  • automatsko sakupljanje smeća
  • pouzdanost
  • podrška za rad s mrežom i internetom
  • jednostavnost i lakoća korištenja

Objektna orijentacija

Mnogi jezici koji prethode Javi, kao što su C i Pascal, jesu proceduralni Jezici. Procedure (ili funkcije) su blokovi koda koji su bili dio modula ili aplikacije. Parametri (primitivni tipovi podataka: cijeli brojevi, znakovi, nizovi i brojevi s pomičnim zarezom) proslijeđeni su procedurama. Kod je obrađen odvojeno od podataka. Morali ste proslijediti strukture podataka, a procedure su mogle lako promijeniti njihov sadržaj. To je uzrokovalo mnoge probleme, budući da bi korištenje nekih dijelova programa u drugim dijelovima programa moglo proizvesti nepredvidive rezultate. Bilo je potrebno mnogo vremena i truda da se pronađe pogrešan postupak. Pogotovo kada su u pitanju veliki programi.

Neki od proceduralnih jezika čak su omogućili dobivanje adrese podataka u memoriji. Znajući ovu adresu, bilo je moguće pročitati ili dodati podatke nakon nekog vremena ili slučajno napisati nove podatke preko starih.

Java je objektno orijentirano Jezik. Objektno orijentirani jezik radi s objekti. Objekti sadrže podatke (polja) i kod (metode). Svaki objekt pripada određenom razreda, što je "nacrt" koji opisuje polja i metode koje objekt nudi. U Javi je gotovo svaka varijabla objekt neke vrste - čak i niz. Objektno orijentirano programiranje zahtijeva drugačiji način razmišljanja, ali to je bolji način razvoja softvera od proceduralnog programiranja.

Danas postoji mnogo popularnih objektno orijentiranih jezika. Neki od njih su izvorno dizajnirani da budu objektno orijentirani, kao što su Java i Smalltalk. Drugi, kao što je C++, dijelom su objektno orijentirani, a dijelom proceduralni. U C++-u još uvijek možete prebrisati sadržaj podatkovnih struktura i objekata, uzrokujući rušenje aplikacije. Srećom, Java onemogućuje izravan pristup sadržaju memorije, stvarajući tako pouzdaniji sustav.

Prenosivost

Većina programskih jezika dizajnirana je za određeni operativni sustav i procesor. Prilikom sastavljanja izvor(upute od kojih je program izgrađen) pretvara u strojni kod, koji se može izvršiti samo na uređajima određene vrste. Ovaj proces proizvodi "interni kod" koji radi nevjerojatno brzo.

Postoje i druge vrste jezika - interpretabilan. Čita se interpretirani kod softverska aplikacija(tumač), koji obavlja navedene radnje. Interpretirani kod najčešće ne treba kompajlirati - prevodi se dok se izvršava. Zbog toga interpretirani kod radi prilično sporo, ali omogućuje prijenos programa između različitih operativnih sustava i procesora s različitim arhitekturama.

Java uzima najbolje iz obje tehnologije. Java kod se kompilira u strojni kod neovisan o platformi tzv Java bajt kod. Specijalni tumač Virtualni stroj Java ili "Java Virtual Machine (JVM)" čita i obrađuje bajt kod. Na sl. Slika 1 prikazuje dijagram male Java aplikacije. Bytecode označen strelicom predstavljen je u tekstualnom obliku, ali kada se prevede, predstavljen je kao bajtovi radi uštede prostora.



Riža. 1 - Raščlanjivanje bajt koda za "HelloWorld"

Pristup koji koristi Java pruža nekoliko značajnih prednosti u odnosu na interpretirane jezike. Prvo, izvorni kod je zaštićen od gledanja i modificiranja - korisnicima je dostupan samo bajt kod. Drugo, sigurnosni mehanizmi mogu skenirati bajt kod tražeći znakove promjene ili prisutnosti zlonamjerni kod, nadopunjujući druge Java sigurnosne mehanizme. Međutim, najvažnije je da se Java kod može kompajlirati samo jednom, a zatim pokrenuti na bilo kojem uređaju ili operativnom sustavu koji podržava Java Virtual Machine (JVM). Java kod se može izvoditi na Unix, Windows, Macintosh, pa čak i Palm Pilot sustavima. Java se čak može pokrenuti u web pregledniku ili na web poslužitelju. Prenosivost vam omogućuje da napišete aplikaciju samo jednom i zatim je pokrenete na više aplikacija razne uređaje. Ovo štedi mnogo vremena i novca.

Višenitnost

Ako ste ikada pisali složene aplikacije u C-u ili PERL-u, velike su šanse da ste naišli na koncept višestrukih procesa. Aplikacija se može podijeliti u zasebne kopije koje rade paralelno. Svaka kopija duplicira kod i podatke, što rezultira povećanom potrošnjom memorije. Prilično je teško natjerati ove kopije na interakciju. Stvaranje svakog procesa zahtijeva pristup operativnom sustavu, što opet gubi CPU vrijeme.

Mnogo najbolja metoda je upotreba višestrukih izvršnih niti, jednostavno nazvana potoci. Niti mogu dijeliti podatke i kod, što olakšava prijenos podataka između instanci niti. Također koriste manje memorije i CPU resursa. Neki jezici, poput C++, podržavaju niti, ali ih je vrlo teško implementirati. Java ima ugrađenu podršku za višenitnost. Teme zahtijevaju nešto drugačiji način razmišljanja, ali su vrlo jednostavne za razumijevanje. Javina podrška za niti vrlo je jednostavna za korištenje i često se koriste u aplikacijama i apletima.

Automatsko prikupljanje smeća

Ne, ne govorimo o iznošenju smeća iz kuće (iako bi bilo lijepo imati računalo koje bi se moglo nositi s takvim zadatkom). Pojam "sakupljanje smeća" odnosi se na odlaganje neiskorištenih memorijskih područja. Kada aplikacije stvaraju objekte, JVM dodjeljuje memorijska područja za njihovo pohranjivanje. Ako objekt više nije potreban (nema referenci na njega), ovo se memorijsko područje kasnije može ponovno koristiti.

Jezici kao što je C++ zahtijevaju od programera da ručno dodijele i oslobode memoriju za podatke i objekte. To komplicira program i dovodi do drugog problema: curenja memorije. Kada programeri zaborave očistiti memoriju, količina slobodne memorije dostupna za korištenje se smanjuje. Programi koji često stvaraju i uništavaju objekte mogu na kraju popuniti svu dostupnu memoriju. U Java programer nema potrebe za brigom o takvim stvarima jer JVM obavlja automatsko sakupljanje smeća za objekte.

Pouzdanost

Sigurnost igra vrlo važnu ulogu u Javi. Jer Java apleti preuzeti na daljinu i izvršiti u pregledniku, puno se pažnje posvećuje sigurnosti. Ne bismo htjeli da appleti dobiju pristup našim osobnim dokumentima, izbrišu naše datoteke ili uzrokuju bilo kakvu štetu. Postoje stroga sigurnosna ograničenja na razini API-ja kada je riječ o apletima koji pristupaju datotekama i mreži. Osim toga, postoji podrška za provjeru integriteta preuzetog koda digitalni potpisi. Na razini bajt-koda provjeravaju se očiti hakovi kao što je manipulacija snopom ili nevažeći bajt-kod. Snažni sigurnosni mehanizmi Jave pomažu u zaštiti od nenamjernih ili namjernih proboja sigurnosti, ali važno je zapamtiti da nijedan sustav nije savršen. Najslabija karika u ovom lancu je Java Virtual Machine, u kojem sve radi - JVM može biti osjetljiv na napade jer je znao slabe strane. Vrijedno je napomenuti da iako je u JVM-u pronađeno nekoliko ranjivosti, to se događa vrlo rijetko i obično se brzo popravi.

Podrška za rad s mrežom i internetom

Java je stvorena s internetom na umu i za podršku mrežnom programiranju. Java API pruža opsežnu podršku mrežne funkcije, od utičnica i IP adresa do URL-ova i HTTP-a. Nema ničeg lakšeg od pisanja mrežne aplikacije u Javi. U tom slučaju, rezultirajući kod može se prenijeti na bilo koju platformu. U jezicima kao što je C/C++, kod za umrežavanje mora se ponovno napisati za svaki operativni sustav i obično ima složeniju strukturu. Java mrežna podrška štedi puno vremena i truda.

Java također podržava egzotičnije tipove mrežnog programiranja, kao što je udaljeno pozivanje metoda (RMI), arhitektura procesora zahtjeva zajedničkog objekta (CORBA) i Jini arhitektura distribuiranog sustava. Ove tehnologije distribuiranih sustava čine Javu privlačnim jezikom za velike projekte.

Jednostavnost i lakoća korištenja

Jezik Java vuče korijene iz jezika C++. C++ je vrlo popularan i raširen. A ipak se smatra složenim jezikom, sa značajkama kao što su višestruko nasljeđivanje, predlošci i pokazivači koji su kontraproduktivni. Zauzvrat, Java je više "čisto" objektno orijentirani jezik. Nema pristupa memorijskim pokazivačima, već referencama na objekte. Podrška za višestruko nasljeđivanje također je uklonjena. To je omogućilo postizanje razumljivijih i jednostavni sklopovi klase. I/O i mrežne biblioteke vrlo su jednostavne za korištenje. Java API pruža programerima veliku količinu koda koji štedi vrijeme (mrežne funkcije i strukture podataka). Nakon što su neko vrijeme radili s Javom, većina programera nerado se vraća drugim jezicima zbog jednostavnosti i elegancije Jave.

Zaključak

Java pruža mnoge prednosti programerima. Iako mnogi od njih postoje u drugim jezicima, Java ih spaja. Javin brzi rast bio je doista fenomenalan i još uvijek ne pokazuje znakove usporavanja. U sljedećem članku ćemo govoriti o srcu Jave - Java Virtual Machine.


Pozdrav dragi čitatelju. Odavno sam želio napisati ovakav članak, ali ili nisam imao dovoljno vremena ili se ispriječila podmukla lijenost. No, kako god bilo, ipak sam uspio sabrati misli da napišem nešto što će vam, nadam se, donijeti kakvu korist. Rado ću podijeliti svoje znanje i iskustvo, a zauzvrat ćete dobiti vrijeme i pažnju. Po mom mišljenju, ova je publikacija prikladna za one koji su spremni odlučiti o svojim interesima i žele povezati svoj život s IT-om - na ovaj ili onaj način. Pa, idemo!

Odabir programskog jezika

Publikacija počinje nalikovati mnogim sličnim materijalima. Po zakonu žanra, morat ću napisati naziv par-tri programska jezika, navesti par prednosti i mana i na kraju, bez odgovora na pitanje, prijeći na sljedeći dio. U tome ima djelomično istine, jer svatko bira jezik koji mu je bliži, ovisno o tome kakvu vrstu proizvoda želi razvijati u budućnosti. Većina vas je učila Turbo Pascal u školi i teško da će vam biti novost da se sada gotovo ništa ne piše na ovom jeziku. Dakle, u ovom slučaju morate mudro odabrati jezik, iako znanja nikada ne možete imati previše, ali ako želite učinkovito ući u red programera u kratkom roku, morate mudro pristupiti izboru jezika. Na samom početku zapamtite: dobar programer nikada neće biti gladan, au većini slučajeva moći će si kupiti puno kavijara(ova definicija je prikladna za bilo koju specijalnost, ali nijedna vam specijalnost neće dati takvu slobodu da odaberete gdje ćete raditi, kako u pogledu kompanija tako iu zemljama - on je programer i programer u Indiji).

Logično je da što je neki jezik popularniji i traženiji, to su veće šanse za pronalazak posla u budućnosti, a jezik treba biti lak za učenje. Jer iako je velik broj igrica napisan u C++-u i za to dobivaju dobre novce, za početnika, pogotovo neupućenog u OOP (objektno orijentirano programiranje), bolje je ostaviti ovaj jezik neko vrijeme po strani. Na sljedećoj poveznici nalazi se lista najpopularnijih programskih jezika u 2014. godini, a kao što vidite na prvom mjestu je Java, slijede jezici C, zatim Phyton, JavaScript, PHP, Ruby itd. Ako sami potražite slične statistike, vidjet ćete da su u različitim izvorima mjesta različito zauzeta, ali općenito će prvih 10 mjesta u sadržaju svugdje biti isto.

Ako se okrenete drugom, koji se temelji na analizi otvorenih radnih mjesta objavljenih na Twitteru, vidjet ćete vrlo sličnu situaciju s prvim primjerom. I da, oba su članka na engleskom, naviknite se na ovo, ako želite postati programer, zapamtite da gotovo sva dokumentacija i izvori korisna informacija napisani su na engleskom, pa ako slabo poznajete ovaj jezik, dodajte učenje i vježbanje engleskog na svoj popis obaveza za sutra i blisku budućnost. Mislim da ću čak napisati poseban članak posvećen učenju stranog jezika.

Na temelju ova dva izvora već možemo zamisliti koji su programski jezici trenutno “u modi”. Kao što naslov sugerira, autor članka je za sebe odabrao Javu. Iako mislim da je najbolji za učenje OOP-a, ima mnogo ljudi koji se neće složiti sa mnom, a to je i logično - koliko ljudi, toliko mišljenja. Ovdje stojimo na malom raskrižju: odaberite Java, C# (vrlo sličan Javi), Phyton, ako želimo raditi s nadjevima programa i aplikacija (back-end) ili PHP, JavaScript, HTML, ako želimo web razvoj (front-end). U prvom slučaju bih odabrao Java, au drugom PHP, iako opet, to je više po vašem ukusu, morate sami tražiti informacije o raznim jezicima i općenito razumjeti što želite raditi. Za razmišljanje, ovdje je izbor jezika koji se koriste u najvećim internetskim tvrtkama na svijetu.

Dva su glavna razloga zašto bih odabrao Java ili PHP. Prvi je da su ovi jezici vrlo popularni i neće biti teško pronaći odgovarajući posao, a drugi je da ni na jednom drugom jeziku nećete naći toliko materijala za obuku kao na ova dva, i na ruskom i na engleskom .


Obrazovanje

Dakle, došli smo do faze do koje većina ljudi dolazi bez problema, ali ovo razdoblje je s pravom jedno od najtežih u karijeri programera. Iako programer uči cijeli život, vrijeme kada počinje činiti prve korake uvelike određuje njegovu daljnju sudbinu. Općenito, treningom se testira snaga čovjeka, hoće li izdržati, neće li za mjesec dana izgubiti interes (kao što se nekima događa), hoće li uspjeti doći do kraja i savladati osnovno znanje, na koje će se onda naslagati čitavi slojevi informacija.

Općenito, imam svoju teoriju koju sam više puta potvrdio u praksi: Apsolutno sve se može naučiti u 1 godinu.. Vjerujte, to je apsolutna istina, nekima će možda trebati i manje vremena, ali ako čovjek ne prestane odustajati i mudro pristupi učenju tijekom cijele godine, onda je gotovo nemoguće da neće naučiti. Ovo nije samo u programiranju, u apsolutno bilo kojem području: ako želite svirati gitaru - nema problema (nije mi trebalo toliko vremena i truda), učite argentinski tango, surfajte - sve je to dovoljno za godinu dana. Glavno je učiti!

U ovom slučaju ću uzeti u obzir Java jezik, jer mi je ipak bliži. Srećom, internet je prepun ljudi koji besplatno pomažu drugima u učenju, pa neće biti teško pronaći materijal koji vam odgovara. , koju možete pregledavati olovkom i papirom unutar zidova svog udobnog stana (za sada samo na ruskom). Za one koji su navikli čitati gradivo kroz koje prolaze, internet opet pruža velike mogućnosti, a ovo je samo jedno od svih vrsta mjesta s lekcijama o Javi. Teorija ima više nego dovoljno, ali ne mogu ništa reći o mjestu za obuku kao što je Coursera.org, gdje možete pronaći tečajeve za obuku na raznim jezicima i u raznim područjima, uključujući programiranje - opet, sve je potpuno besplatno. Ne postoje jedna ili dvije takve stranice, samo morate pretražiti.

No koliko god teorija bila informativna, programiranje je neizostavno bez prakse. Ali čak i ovdje, pola posla je već obavljeno za nas i ne moramo tražiti razne zadatke za poboljšanje naših vještina; usluga poput JavaRush-a će u tome puno pomoći. Općenito, ova stranica nudi i teoriju i praksu, počevši od jednostavnog umnožavanja koda sa ekrana i završavajući složenim zadacima, au pauzama čak nudi opuštanje i gledanje poznate animirane serije. Prema autorima, oni koji su dosegli razinu 20 u službi imat će dovoljno znanja da već dobiju posao u IT tvrtki. .

Pomoć u praksi

Kao što je već spomenuto, praksa je sastavni dio svakog učenja, a posebno u programiranju. Ovdje ćete morati kodirati i kodirati, sve do mišićne memorije vaših prstiju. Ovo je, naravno, malo pretjerano, ali u početku ćete stvarno morati puno udarati po tipkama kako biste zapamtili značenja raznih struktura kako biste ih u budućnosti mogli koristiti gotovo automatski.

Mnogi programeri početnici isprva imaju puno pitanja, osobito kada trebaju dovršiti samostalan zadatak. Ovo je u redu. Ali u takvim situacijama morate shvatiti da na gotovo svako pitanje koje imate možete pronaći odgovor na internetu. Malo je vjerojatno da ste prva osoba koja se s tim susreće, stoga nemojte žuriti s postavljanjem pitanja na raznim programerskim forumima (o kojima ću pisati malo kasnije). Sjednite malo, pravilno formulirajte problem u svojoj glavi i slobodno ga potražite u tražilici. Sigurno će većina tražiti na ruskom, ali ne zaboravite da je jezik programera engleski, pa ako niste pronašli odgovor u velikom i moćnom, vrijedi potražiti na jeziku koji su svi učili u školi, ali nikad naučio. No čak i ako se u ovom slučaju pokaže da nigdje nema odgovora na vaše pitanje, u bitku ulaze najbolji internetski forumi:
dokumentacija jezika na kojem pišu. Opisuje kako određene klase i sučelja rade; ponekad je dokumentacija jedini izvor koji može pomoći u rješavanju problema, jer je to samo početno stanje svatko ima slična pitanja i možeš ih pronaći bez problema gotova rješenja, ali što se više ulazi u divljinu, sve je teže pronaći odgovore, pa se morate osloniti na svoju, nadam se, već pametnu glavu.

Sastavljanje koda

Već sam dosta toga napisao, naravno, teško je tako veliku temu obraditi u jednom članku, ali mislim da su prvi koraci već napravljeni i da bi trebali pobuditi odgovarajuća razmišljanja u vama. Mislim da je ovo tek prvi članak u seriji “Kako postati programer” i, sukladno tome, “zašto?” ako ste na raskrižju i još ne znate koji put odabrati. Sljedeći put ću se dotaknuti materijalno zanimljivijih stvari, jer nije tajna da programeri nisu siromašni ljudi, a gdje će i koliko će biti plaćeni drugi put, vidjet ćemo.

Za kraj, onima koji zaista žele postati programeri, želim da uhvate bika za rogove, skupe svu svoju volju u šaku i rade ono što žele. Rečeno je već tisuće puta, ali ponovit ću, glavna stvar je želja i rad. Tada će vam sve uspjeti. Zapamtite najvažnije: učenje programskih jezika i raznih tehnologija ne doživljavaju kao cilj, već kao SREDSTVO. Zamislite samo kakve vam se prilike otvaraju. Možda baš vi postanete jedan od onih koji mijenjaju svijet u stvarnom vremenu. Sretno i hvala na pažnji!

Video bonus

Oznake: Dodajte oznake

Od autora: Ovaj programski jezik pokreće približno 3 milijarde pametnih telefona, 125 milijuna televizora i svaki pojedini Blu-Ray player na svijetu. Ovaj jezik redovito osvaja nagrade u ocjenama programera softvera i najpopularniji je među najvećim IT tvrtkama. To je tehnički fenomen i radi na apsolutno svakom uređaju, što odgovara njegovom principu "piši jednom, pokreni bilo gdje" (WORA - "piši jednom, pokreni bilo gdje"). Tko je pogodio, neka digne ruke! Naravno, ovo je Java jezik. A danas ću vam otkriti sve svoje karte i reći vam cijelu istinu o tome kako postati Java programer od nule! Udobno se smjestite!

Nekoliko činjenica o Javi

Kako vas ne bih zamarao dugim teorijskim prodikama, grupirao sam neke podatke o Javi u popis, nakon čijeg čitanja ćete dobiti uvid o kakvom se jeziku radi i kakvu ulogu ima u divlje životinje programiranje:

Java je "pomodan" i višeplatformski programski jezik. Radi na bilo kojem uređaju s bilo kojim operativnim sustavom. Na njemu su ispisane sve Google i Android aplikacije. Nećete pronaći toliko informacija i materijala za obuku ni za jedan drugi jezik;

službeni datum objavljivanja jezika je 23. svibnja 1995. Izvorno je trebao biti interaktivni kabelska televizija, ali "nije išlo." Izumitelj Jave je Sun Microsystems, koji je 2010. kupio Oracle;

Mnogi ljudi brkaju Java i JavaScript. Ako želite nešto napraviti (web stranice, web aplikacije), odaberite drugu opciju. Java je back-end, tj. razvoj punjenja aplikacija;

Moderne tehnologije web razvoja

AngularJS, Webpack, NodeJS, ReactJS, TypeScript, Gulp, Git, Github...
Saznajte sve o moderne tehnologije u web razvoju

je objektno orijentirani programski jezik, čiji kod izvršava poseban virtualni java stroj(JVM). U SAD-u otprilike 9 od 10 računala ima instaliran isti JVM;

Jezik je dobio ime po marki kave - zbog čega se na službenom amblemu nalazi inspirativna šalica.

Jeste li još tu ili ste potrčali skuhati si šalicu aromatične kave? Zatim nastavimo razgovor o tome kako postati Java programer.

Instalacija softverskog okruženja

Začudo, neki ljudi imaju problema već u fazi instaliranja Java softverskog okruženja. Da biste to učinili, morate otići na službenu web stranicu razvojne tvrtke - Oracle. Vidjet ćete poveznicu na trenutnu verziju na samom vrhu stranice. Trebate Java SE (Standardno izdanje) i Java Development Kit - set razvojnih alata. Imajte na umu da postoje različite distribucije za različite OS.

Recimo da imamo Windows. Idemo na "Svojstva sustava" i vidimo kakav sustav imamo - 32-bitni ili 64-bitni. Preuzimamo datoteku koja nam odgovara po bitnoj dubini. Ako odaberete pogrešnu distribuciju, dobit ćete pogrešku prilikom kompajliranja koda. Nakon potvrde prihvaćanja licencnog ugovora kliknite gumb za preuzimanje.

Što je Java Developer Toolkit?

Programer većinu svog vremena provodi u IDE-u (IntelliJ IDEA, Eclipse, WebStorm, NetBeans). IDE je integrirano razvojno okruženje, posebno sučelje za programiranje. Ne samo da vam pomaže u pisanju koda, već i olakšava korištenje drugih alata za programiranje. Neki savjetuju onima koji žele postati Java programer od nule da napišu svoje prve programe u običnom notepadu ili Notepad++.

Možda bi elementarne programe trebalo pisati u editoru. Ali u budućnosti i dalje toplo preporučujem korištenje IDE-a. Ima funkcije za dovršavanje koda, kontrolu sintakse, skok na definiciju metode i mnoge druge. A inteligentni savjeti spasit će vas od potrebe da zapamtite sve nazive funkcija i njihove parametre, što je jednostavno fizički nemoguće.

Na timski rad, kada na jednom programu radi više ljudi odjednom, potrebno je koristiti tzv. sustav kontrole verzija (Perforce, Git, Subversion itd.). Međutim, sustavi za kontrolu verzija vrlo su zgodni kada rade sami.

Približan algoritam za učenje Jave

Učenje osnova jezika Java. Prvi korak je razviti svoje vještine logičkog razmišljanja i naučiti osnovne koncepte sintakse programskog jezika. Naoružani knjigom, člankom ili videozapisom s uputama naučite kako stvarati koristeći IDE ili uređivač teksta jednostavni su Java objekti koji sadrže razne opcije ponašanje ovisno o ulaznim podacima.

Analiza naprednih značajki jezika Java. U ovoj fazi naučite sintaksu, biblioteke i okvire koji će vam biti od koristi pri izradi složenijih aplikacija s praktičnim fokusom. Dobar programer ne samo da zna kako koristiti razne biblioteke, već zna i kako one rade unutra. Osim toga, koncepti kao što su ulazno/izlazne operacije, nasljeđivanje i apstrakcije, serijalizacija, generički tipovi, regularni izrazi, ne bi trebala biti prazna fraza za vas.

Suptilnosti programiranja. Nemojte se ustručavati pažljivo proučiti dokumentaciju i žargon Java programiranja. U ovoj fazi već biste trebali "mutirati" u zrelog programera. Razgovarajte s Java guruima koje ćete pronaći na tematskim forumima i drugim okruženjima gdje se okupljaju programeri. Pokažite im svoj kod, posavjetujte se i savjetujte druge - "akumulirajte karmu." Možete čak pokrenuti vlastiti blog, objavljivati ​​isječke vlastitog koda na njemu i vidjeti što iskusniji programeri imaju za reći o tome.

Kako početi programirati?

Za one koji planiraju postati Java programer od nule, reći ću vam kako napisati svoj prvi program.
Dakle, otvori bilo koju uređivač teksta i napiši:

Klasa HelloWorld ( public static void main(String args) ( System.out.println("Hello World!"); ) )

Spremite datoteku pod imenom HelloWorld.java. Imajte na umu da Java razlikuje velika i mala slova, pa se riječi "helloworld" i "HelloWorld" razlikuju. Ako su nazivi datoteka i klasa u kodu različiti, program se jednostavno neće pokrenuti. Osim toga, važno je da je kodiranje ANSI.

Sada moramo prevesti program pomoću javac prevoditelja iz JDK-a. Iako nismo instalirali razvojno okruženje, kompajlirat ćemo pomoću naredbeni redak cmd pozivanjem iz izbornika Start. U prozoru koji se pojavi upišite cmd i pritisnite Enter.

Ako smo spremili HelloWorld.java u mapu Prog na disku C, tada unesite naredbu:

CD C:\Proga

i pritisnite Enter. Pa smo promijenili direktorij u onaj u kojem se nalazi naš program. Zatim unesite:

Javac HelloWorld.java

Ponovno pritisnite Enter. Ako sustav ne generira pogrešku, kompilacija je bila uspješna, au mapi Prog pronaći ćete datoteku HelloWorld.class. Objasnit ću zašto je to potrebno. Datoteka s nastavkom .java je samo "skica" koda, ne sadrži "tehnički dio", koji ne utječe na funkcije, već na pokretanje programa. A .class datoteka sadrži bajtne kodove koji vam omogućuju izvršavanje pisanog koda kroz Java interpreter.

Ako ste sve napravili kako treba, vidjet ćete svoju kreaciju na ekranu, elektronički um u nastajanju koji će vas pozdraviti: “Hello World!”


Eto, to je sve za danas, dragi prijatelji. Nadam se da i sami razumijete kako možete postati Java programer od nule. U svom sljedećem članku govorit ću o tome kako zaraditi kao Java programer. Stoga ostanite s nama ili se još bolje pretplatite na ažuriranja našeg bloga. Cao svima!



reci prijateljima
Pročitajte također