Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • știri
  • Învățarea Java. Ce legătură are Java cu limbajele dinamice și cu programarea funcțională? Istoricul versiunilor Java

Învățarea Java. Ce legătură are Java cu limbajele dinamice și cu programarea funcțională? Istoricul versiunilor Java

Deci, Java are o istorie lungă și dificilă de dezvoltare, dar este timpul să luăm în considerare ce sa întâmplat cu creatorii, ce proprietăți are această tehnologie.

Cea mai cunoscută și, în același timp, provocând cea mai aprinsă dezbatere, proprietatea este mult sau multiplatformă. S-a spus deja că se realizează prin utilizarea mașinii virtuale JVM, adică program regulat, care este executat de sistemul de operare și oferă aplicațiilor Java toate caracteristicile necesare. Deoarece toți parametrii JVM sunt specificați, singura sarcină rămasă este implementarea mașinilor virtuale pe toate platformele existente și utilizate.

Prezența unei mașini virtuale definește multe proprietăți ale Java, dar deocamdată să ne concentrăm pe următoarea întrebare - este Java un limbaj compilat sau interpretat? De fapt, sunt folosite ambele abordări.

Codul sursă al oricărui program Java este reprezentat de fișiere text obișnuite care pot fi create în orice editor de text sau instrument specializat de dezvoltare și au extensia .java. Aceste fișiere sunt introduse în compilatorul Java, care le traduce într-un bytecode Java special. Acest set de instrucțiuni compact și eficient este susținut de JVM și este o parte integrantă a platformei Java.

Ieșirea compilatorului este stocată în fișiere binare cu .extensie de clasă. O aplicație Java constând din astfel de fișiere este introdusă în mașina virtuală, care începe să le execute sau să le interpreteze, deoarece ea însăși este un program.

Mulți dezvoltatori au criticat inițial sloganul îndrăzneț al lui Sun „Scrie o dată, rulează peste tot”, constatând tot mai multe inconsecvențe și inconsecvențe pe platforme. Cu toate acestea, trebuie să recunoaștem că pur și simplu erau prea nerăbdători. Java tocmai sa născut, iar primele versiuni ale specificațiilor nu au fost suficient de cuprinzătoare.

Nu a durat mult până când Sun a ajuns la concluzia că nu era suficient să publice specificațiile în mod liber (ceea ce se făcuse cu mult înainte de Java). De asemenea, este necesar să se creeze proceduri speciale pentru testarea noilor produse pentru conformitatea cu standardele. Primul astfel de test pentru JVM a conținut doar aproximativ 600 de verificări, un an mai târziu numărul acestora a crescut la zece mii și de atunci a crescut (tocmai acest test nu a putut trece la un moment dat MS IE 4.0). Desigur, autorii mașinilor virtuale le-au îmbunătățit tot timpul, eliminând erorile și optimizând munca. Cu toate acestea, orice tehnologie, chiar și foarte bine concepută, necesită timp pentru a crea o implementare de înaltă calitate. Java 2 Micro Edition (J2ME) urmează în prezent o cale de dezvoltare similară, dar mai multe despre asta mai târziu.

Următoarea proprietate cea mai importantă este orientarea obiectelor Java, care este întotdeauna menționată în toate articolele și comunicatele de presă. Abordarea orientată pe obiecte (OOP) în sine este discutată în cursul următoare, dar este important să subliniem că în Java aproape totul este implementat sub formă de obiecte - fire de execuție (threads) și fluxuri de date (streamuri), rețele, lucrul cu imagini, cu o interfață cu utilizatorul, tratarea erorilor etc. La urma urmei, orice aplicație Java este un set de clase care descriu noi tipuri de obiecte.

O discuție detaliată despre modelul obiect Java este efectuată pe parcursul cursului, dar vom sublinia principalele caracteristici. În primul rând, creatorii au abandonat moștenirea multiplă. S-a decis că a făcut programele prea complicate și confuze. Limbajul adoptă o abordare alternativă, tipul special „interfață”. Este discutat în detaliu în prelegerea corespunzătoare.

Mai mult, Java folosește tastare puternică. Aceasta înseamnă că orice variabilă și orice expresie are un tip deja cunoscut în momentul compilării. Această abordare este folosită pentru a simplifica identificarea problemelor, deoarece compilatorul raportează imediat erorile și indică locația lor în cod. Cauta la fel situatii exceptionale(excepții - așa sunt numite situațiile incorecte în Java) în timpul execuției programului (runtime) va necesita testare complexă, în timp ce cauza defectului poate fi găsită într-o clasă complet diferită. Astfel, este necesar să se facă eforturi suplimentare la scrierea codului, dar fiabilitatea acestuia este semnificativ crescută (și acesta este unul dintre obiectivele fundamentale pentru care a fost creat noul limbaj).

Există doar 8 tipuri de date în Java care nu sunt obiecte. Au fost definite încă de la prima versiune și nu s-au schimbat niciodată. Acestea sunt cinci tipuri de numere întregi: byte, short, int, long și includ și caractere char. Apoi două fracționale tip plutitorși dublu și în final booleanul de tip boolean. Astfel de tipuri sunt numite simple sau primitive (din limba engleză primitivă) și sunt discutate în detaliu în prelegerea despre tipurile de date. Toate celelalte tipuri sunt tipuri de obiecte sau de referință. referinţă).

Din anumite motive, sintaxa Java i-a indus în eroare pe mulți. Este într-adevăr creat pe baza sintaxei limbajelor C/C++, așa că dacă vă uitați la codul sursă al programelor scrise în aceste limbi și în Java, nu este imediat posibil să înțelegeți care este scris în care. limba. Acest lucru i-a determinat cumva pe mulți să creadă că Java este un C++ simplificat cu caracteristici suplimentare, cum ar fi colectorul de gunoi. Vom considera colectorul automat de gunoi (colector de gunoi) puțin mai scăzut, dar este o mare concepție greșită că Java este același limbaj ca C++.

Desigur, atunci când au dezvoltat o nouă tehnologie, autorii Java s-au bazat pe un limbaj de programare utilizat pe scară largă din mai multe motive. În primul rând, la acea vreme ei înșiși considerau C++ ca principalul lor instrument. În al doilea rând, de ce să inventezi ceva nou când există unul vechi perfect potrivit? În cele din urmă, este evident că sintaxa necunoscută va speria dezvoltatorii și va complica semnificativ introducerea unui nou limbaj, iar Java ar fi trebuit să se răspândească cât mai repede posibil. Prin urmare, sintaxa a fost doar puțin simplificată pentru a evita construcțiile prea complicate.

Dar, așa cum am menționat deja, C++ era fundamental nepotrivit pentru noile sarcini pe care dezvoltatorii de la Sun și le-au stabilit, astfel încât modelul Java a fost reconstruit și în conformitate cu obiective complet diferite. Prelegerile ulterioare vor dezvălui treptat diferențe specifice.

În ceea ce privește modelul obiect, acesta a fost mai degrabă modelat după limbaje precum Smalltalk de la IBM sau limbajul Simula dezvoltat în anii 60 la Centrul de calcul norvegian, la care se referă însuși creatorul Java James Gosling.

O altă proprietate importantă a Java - ușurința de învățare și dezvoltare - a primit, de asemenea, recenzii mixte. Într-adevăr, autorii și-au dat osteneala să salveze programatorii de cele mai comune greșeli pe care le fac uneori chiar și dezvoltatorii experimentați C/C++. Iar primul loc aici este ocupat de lucrul cu memoria.

În Java a fost introdus de la bun început mecanism automat de colectare a gunoiului(de la gunoiul englez). Să presupunem că un program creează un obiect, lucrează cu el și apoi vine un moment în care nu mai este necesar. Este necesar să eliberați memoria ocupată pentru a nu interfera cu funcționarea normală a sistemului de operare. În C/C++, acest lucru trebuie făcut în mod explicit din program. Evident, cu această abordare, există două pericole - fie să ștergeți un obiect de care altcineva are nevoie (și dacă acesta este efectiv accesat, atunci va apărea o eroare), fie să nu ștergeți un obiect care a devenit inutil, ceea ce înseamnă o memorie. scurgere, adică Programul începe să consume din ce în ce mai multă RAM.

Când se dezvoltă în Java, programatorul nu se gândește deloc la eliberarea memoriei. Mașina virtuală în sine numără numărul de referințe la fiecare obiect și, dacă devine egal cu zero, atunci un astfel de obiect este marcat pentru procesare de către colectorul de gunoi. Astfel, programatorul trebuie doar să se asigure că nu există referințe la obiecte inutile. Colectorul de gunoi este un fir de execuție de fundal care scanează în mod regulat obiectele existente și le elimină pe cele care nu mai sunt necesare. Programul nu poate afecta în niciun fel activitatea colectorului de gunoi, puteți iniția în mod explicit următoarea trecere numai folosind o funcție standard. Este clar că acest lucru simplifică foarte mult dezvoltarea programelor, în special pentru programatorii începători.

Cu toate acestea, dezvoltatorii experimentați erau nemulțumiți că nu puteau controla pe deplin tot ceea ce s-a întâmplat cu sistemul lor. Nu informație clară, când exact un obiect care a devenit inutil va fi șters, când thread-ul de colectare a gunoiului va începe să funcționeze (și, prin urmare, va ocupa resurse de sistem), etc. Dar, cu tot respectul față de experiența unor astfel de programatori, trebuie remarcat faptul că marea majoritate a eșecurilor programelor scrise în C/C++ se datorează lucrului incorect cu memoria și, uneori, acest lucru se întâmplă chiar și cu produse foarte răspândite. firme serioase.

În plus, s-a pus un accent deosebit pe ușurința stăpânirii noii tehnologii. După cum sa menționat deja, era de așteptat (și aceste așteptări erau justificate, confirmând corectitudinea căii alese!) ca Java să primească cea mai largă utilizare posibilă, chiar și în acele companii în care nu mai făcuseră niciodată programare la acest nivel ( Aparate precum prăjitoarele de pâine și aparatele de cafea, crearea de jocuri și alte aplicații pentru celulare etc.). Au existat și o serie de alte considerații. Produsele pentru utilizatorii generali, nu pentru programatori profesioniști, trebuie să fie deosebit de fiabile. Internetul a devenit World Wide Web pe măsură ce au apărut utilizatori neprofesioniști, iar capacitatea de a crea applet-uri pentru ei nu este mai puțin atractivă. Aveau nevoie de un instrument simplu pentru a construi aplicații robuste.

În cele din urmă, boom-ul internetului din anii 90 a câștigat avânt și a propus noi cerințe mai stricte pentru timpul de dezvoltare. Proiectele multianuale care erau obișnuite în trecut nu mai răspundeau nevoilor clienților, trebuiau create sisteme noi în maximum un an, sau chiar în câteva luni.

Pe lângă introducerea colectorului de gunoi, au fost făcuți și alți pași pentru a ușura dezvoltarea. Unele dintre ele au fost deja menționate - respingerea moștenirii multiple, simplificarea sintaxei etc. Capacitatea de a crea aplicații multithreaded a fost implementată în prima versiune de Java (cercetări au arătat că acest lucru este foarte convenabil pentru utilizatori, iar standardele existente se bazează pe teletip). sisteme care au fost depășite de mulți ani în urmă). Alte caracteristici vor fi discutate în prelegerile ulterioare. Cu toate acestea, faptul că construirea și întreținerea sistemelor este într-adevăr mai ușoară în Java decât în ​​C/C++ a fost mult timp un fapt general acceptat. Cu toate acestea, totuși, aceste limbi sunt create în scopuri diferite și fiecare are propriile sale avantaje incontestabile.

Următoarea proprietate importantă a Java este securitatea. Accentul inițial pe aplicațiile distribuite și, în special, decizia de a rula applet-uri pe computerul client, a făcut din securitate o prioritate de top. Când rulați orice mașină virtuală Java, se aplică o întreagă gamă de măsuri. Următoarea este doar o scurtă descriere a unora dintre ele.

În primul rând, acestea sunt regulile de lucru cu memoria. S-a spus deja că memoria se șterge automat. Rezervarea acestuia este determinată și de JVM, nu de compilator, sau explicit din program, dezvoltatorul poate indica doar că dorește să creeze un alt obiect nou. În principiu, nu există indicii către adrese fizice.

În al doilea rând, prezența unei mașini virtuale-interpret face mult mai ușoară tăierea codului periculos la fiecare etapă de lucru. În primul rând, bytecode este încărcat în sistem, de obicei sub formă de fișiere de clasă. JVM-ul verifică cu atenție dacă toate respectă regulile generale de securitate Java și că nu sunt create de atacatori folosind alte mijloace (și nu sunt corupte în tranzit). Apoi, în timpul execuției programului, interpretul poate verifica cu ușurință fiecare acțiune pentru validitatea. Capacitățile claselor care au fost încărcate de pe un disc local sau prin rețea diferă semnificativ (utilizatorul poate atribui sau elimina cu ușurință anumite drepturi). De exemplu, aplicațiile nu vor accesa niciodată sistemul de fișiere local în mod implicit. Astfel de restricții încorporate se găsesc în toate bibliotecile standard Java.

În cele din urmă, există un mecanism pentru semnarea applet-urilor și a altor aplicații descărcate prin rețea. Un certificat special garantează că utilizatorul a primit codul exact în forma în care a fost eliberat de producător. Acest lucru, desigur, nu fonduri suplimentare protecție, dar permite clientului fie să refuze să lucreze cu aplicații de la producători neîncrezători, fie să vadă imediat că au fost făcute modificări neautorizate în program. În cel mai rău caz, el știe cine este responsabil pentru pagubă.

Combinația dintre proprietățile descrise ale Java ne permite să afirmăm că limbajul este foarte potrivit pentru dezvoltarea aplicațiilor Internet și intranet (rețele interne ale corporațiilor).

În cele din urmă, o trăsătură distinctivă importantă a Java este dinamismul său. Limbajul este foarte bine conceput, sute de mii de dezvoltatori și multe companii mari sunt implicate în dezvoltarea lui. Principalele etape ale acestei dezvoltări sunt prezentate pe scurt în secțiunea următoare.

Deci, să rezumam. Platforma Java are următoarele avantaje:

  • portabilitate, sau multiplatformă ;
  • orientare obiect, a fost creat un model de obiect eficient;
  • sintaxă familiară C/C++;
  • model de securitate încorporat și transparent;
  • orientare către Internet-sarcini, aplicații distribuite în rețea;
  • dinamism, ușurință în dezvoltare și adăugarea de noi funcții;
  • ușurința de a învăța.

Dar nu trebuie să presupuneți că învățarea mai ușoară înseamnă că nu trebuie să învățați deloc o limbă. Pentru a scrie programe cu adevărat bune, pentru a crea sisteme mari complexe, aveți nevoie de o înțelegere solidă a tuturor conceptelor de bază ale Java și a bibliotecilor utilizate. Despre asta este acest curs.

Versiuni și produse majore ale Java

Să ne rezervăm imediat că produsele de aici înseamnă soluții software de la Sun, care sunt „implementări de referință”.

Așadar, Java a fost anunțat pentru prima dată pe 23 mai 1995. Principalele produse disponibile ca versiuni beta la acel moment erau:

  • Specificația limbajului Java, JLS , Java Language Specification (descrie vocabular, tipuri de date, constructe de bază etc.);
  • specificația JVM;
  • Kit de dezvoltare Java , JDK - Un instrument pentru dezvoltatori constând în principal din utilitare, biblioteci de clasă standard și demonstrații.

Specificația limbajului a fost compilată atât de bine încât este folosită aproape neschimbată până în prezent. Desigur, au fost făcute un număr mare de clarificări, descrieri mai detaliate și au fost adăugate câteva funcții noi (de exemplu, declararea claselor interioare), dar conceptele de bază rămân neschimbate. Acest curs în într-o mare măsură pe baza specificaţiei limbajului.

Specificația JVM este destinată în primul rând creatorilor de mașini virtuale și, prin urmare, practic nu este utilizată de programatorii Java.

JDK pentru mult timp a fost instrumentul de bază pentru dezvoltarea aplicațiilor. Nu conține niciuna editori de text, dar operează numai pe fișiere Java deja existente. Compilatorul este reprezentat de utilitarul javac (compilator java). Mașină virtuală implementată programul java. Pentru lansările de probă de applet-uri, există un utilitar special appletviewer. În sfârșit, pentru generarea automată a documentației pe baza cod sursa instrumentul javadoc este inclus.

Prima versiune conținea doar 8 biblioteci standard:

  • java.lang - clase de bază necesare pentru funcționarea oricărei aplicații (numele este o abreviere pentru limba);
  • java.util - multe clase de ajutor utile;
  • java.applet - clase pentru crearea de applet-uri;
  • java.awt , java.awt.peer - o bibliotecă pentru crearea unei interfețe grafice de utilizator (GUI ), numită Abstract Window Toolkit , AWT , descrisă în detaliu în Lectura 11;
  • java.awt.image- clase suplimentare pentru lucrul cu imagini;
  • java.io - lucrează cu fluxuri de date (fluxuri) și fișiere;
  • java.net - rețele.

Astfel, toate bibliotecile încep cu java, sunt cele standard. Toate celelalte (începând cu com, org etc.) pot fi modificate în orice versiune fără suport de compatibilitate.

Versiunea finală a JDK 1.0 a fost lansată în ianuarie 1996.

Explicați imediat sistemul de denumire a versiunilor. Denumirea versiunii este formată din trei cifre. Prima este întotdeauna 1. Aceasta înseamnă că se menține compatibilitatea deplină între toate versiunile de 1.x.x. Adică, un program scris pe un JDK mai vechi va rula întotdeauna cu succes pe unul mai nou. Acolo unde este posibil, compatibilitatea inversă este de asemenea respectată - dacă programul este compilat cu un JDK mai nou și nu au fost folosite biblioteci noi, atunci în majoritatea cazurilor, mașinile virtuale vechi vor putea executa un astfel de cod.

A doua cifră s-a schimbat de la 0 la 4 (ultima la momentul creării cursului). În fiecare versiune, a existat o extindere semnificativă a bibliotecilor standard (212, 504, 1781, 2130 și 2738 - numărul de clase și interfețe de la 1.0 la 1.4), iar limbii în sine au fost adăugate câteva caracteristici noi. Utilitățile incluse în JDK s-au schimbat și ele.

În cele din urmă, a treia cifră înseamnă dezvoltarea unei versiuni. Nimic nu se schimbă în limbaj sau biblioteci, doar erorile sunt eliminate, optimizarea se realizează, argumentele de utilitate pot fi modificate (adăugate). Deci, cea mai recentă versiune de JDK 1.0 este 1.0.2.

Deși nimic nu este eliminat odată cu dezvoltarea versiunii 1.x, desigur, unele funcții sau clase devin învechite. Sunt declarate depreciate și, deși vor fi suportate până la anunțul 2.0 (de care nu s-a auzit încă), utilizarea lor este depreciată.

Odată cu succesul inițial al JDK 1.0, au sosit și criticile. Principalele deficiențe constatate de dezvoltatori au fost următoarele. În primul rând, desigur, performanța. Prima mașină virtuală a fost foarte lentă. Acest lucru se datorează faptului că JVM este în esență un interpret care este întotdeauna mai lent decât codul compilat. Cu toate acestea, optimizarea de succes care a eliminat acest neajuns era încă să vină. Au fost remarcate, de asemenea, capabilitățile AWT destul de slabe, lipsa de lucru cu bazele de date și altele.

În decembrie 1996, a fost anunțat o noua versiune JDK 1.1, amenajat imediat pentru acces gratuit la versiunea beta. În februarie 1997, este lansată versiunea finală. Ce a fost adăugat în noua versiune de Java?

Cu siguranță, Atentie speciala a fost dat performanței. Multe părți ale mașinii virtuale au fost optimizate și rescrise folosind Assembler mai degrabă decât C ca înainte. În plus, din octombrie 1996, Sun a dezvoltat un nou produs - Compilatorul Just-In-Time, JIT. Sarcina sa este să traducă bytecode Java al programului în codul „nativ” al sistemului de operare. Astfel, timpul de pornire a programului crește, dar execuția poate fi accelerată în unele cazuri de până la 50 de ori! Din iulie 1997, a apărut o implementare Windows și JIT este standard în JDK cu posibilitatea de a-l dezactiva.

Au fost adăugate multe funcții noi importante. JavaBeans - o tehnologie anunțată încă din 1996, vă permite să creați componente vizuale care sunt ușor de integrat în instrumentele de dezvoltare vizuală. JDBC (Java DataBase Connectivity) oferă acces la bazele de date. RMI (Remote Method Invocation) facilitează crearea de aplicații distribuite. Sprijinul pentru limbile naționale și sistemul de securitate au fost îmbunătățite.

În primele trei săptămâni, JDK 1.1 a fost descărcat de peste 220.000 de ori, în mai puțin de un an - de peste două milioane de ori. Pe acest moment versiunea 1.1 este considerată complet învechită și dezvoltarea sa s-a oprit la 1.1.8. Cu toate acestea, datorită faptului că cel mai comun browser MS IE acceptă încă doar această versiune, acesta continuă să fie folosit pentru scrierea de applet-uri mici.

În plus, pe 11 martie 1997, Sun a început să ofere Java Runtime Environment, JRE (Java Runtime Environment). De fapt, aceasta este implementarea minimă a mașinii virtuale necesară pentru a rula aplicații Java fără un compilator sau alte instrumente de dezvoltare. Dacă utilizatorul dorește doar să ruleze programe, acesta este exact ceea ce are nevoie.

După cum puteți vedea, principalul dezavantaj a fost suportul slab pentru interfața grafică cu utilizatorul (GUI). În decembrie 1996, Sun și Netscape au anunțat o nouă bibliotecă, IFC (Internet Foundation Classes), dezvoltată de Netscape în întregime în Java și concepută special pentru a crea o interfață de fereastră complexă. În aprilie 1997, se anunță că companiile intenționează să combine tehnologiile AWT ale Sun și cele IFC ale Netscape pentru a crea un nou produs Java Foundation Classes, JFC, care ar trebui să includă:

  • fereastra îmbunătățită

În acest ghid, vom acoperi tot ce trebuie să știți înainte de a începe studiul. programare activată java. Veți învăța despre capacitățile platformei, despre aplicația acesteia, precum și despre cum să începeți să învățați Java în mod corect.

Ce este limbajul de programare Java?

În 1991, Green Team, o divizie a Sun Microsystems, condusă de James Gosling, a creat un limbaj de programare pentru uz casnic dispozitive electronice. Pe vremea aceea se numea Stejar („Stejar”). De ce "Stejar"? Pur și simplu pentru că acest copac a crescut în afara ferestrei biroului lui Gosling.

Echipa Verde a demonstrat utilizarea stejarului într-un televizor interactiv. Dar pentru televiziunea digitală prin cablu din acei ani, această tehnologie era prea avansată. În același timp, Internetul câștiga popularitate, pentru care noul limbaj de programare era cel mai potrivit.

După ceva timp, noua limbă a fost redenumită în Green, iar după aceea - în Java, în onoarea cafelei din insula Java. Prin urmare, sigla Java arată o cană de cafea.

Pe parcursul Dezvoltare Java C/C++ erau populare, așa că Gosling a făcut sintaxa limbajului similară cu C/C++ și a implementat pentru acesta principiul " scrie o dată - rulează oriunde". În 1995, Sun Microsystems a lansat prima versiune oficială a Java. Și, în același timp, a fost anunțat că Java va fi inclus în browserul Netscape Navigator.

În 2010, Sun Microsystems, împreună cu limbajul de programare Java, a fost achiziționat de Oracle Corporation.

Istoricul versiunilor Java

  1. Iunie 1991 - începerea proiectului de dezvoltare limbaj de programare java.
  2. JDK 1.0 - ianuarie 1996.
  3. JDK 1.1 - februarie 1997.
  4. J2SE 1.2 - decembrie 1998.
  5. J2SE 1.3 - mai 2000.
  6. J2SE 1.4 - februarie 2002.
  7. J2SE 5.0 - septembrie 2004.
  8. Java SE 6 - decembrie 2006.
  9. Java SE 7 - iulie 2011.
  10. Java SE 8 - 18 martie 2014.
  11. Java SE 9 - 21 septembrie 2017.

Caracteristicile limbajului de programare Java

Java - limbaj multiplatform

Cod Java scris pe o singură platformă ( adică sistemul de operare) poate fi rulat neschimbat pe alte platforme.

Pentru Pornire Java folosind mașina virtuală Java ( Mașină virtuală Java, JVM). JVM-ul procesează codul de octet, după care procesorul procesează codul primit de la JVM. Toate mașinile virtuale funcționează similar, așa că același cod funcționează în același mod pe toate sistemele de operare, ceea ce face Java. limbaj multiplatform programare.

Limbajul de programare orientat pe obiecte

Există diferite stiluri de programare și unul dintre cele mai populare este programarea orientată pe obiecte. Cu această abordare, o problemă complexă este împărțită în altele mai mici prin crearea de obiecte. Acest lucru face codul reutilizabil.

Caracteristicile orientate pe obiecte se găsesc în multe limbaje de programare, inclusiv Java, Python și C++. Dacă sunteți serios să învățați cum să programați, ar trebui să includeți o abordare orientată pe obiect în planul dvs. de învățare.

Java este rapid

Versiuni timpurii limbaj de programare Java a fost adesea criticat pentru că este lent. Dar astăzi situația s-a schimbat dramatic. Noile versiuni ale JVM-ului sunt mult mai rapide, iar procesoarele care le interpretează sunt din ce în ce mai rapide.

Java este unul dintre cele mai rapide limbaje de programare de astăzi. Codul Java bine optimizat rulează aproape la fel de rapid ca limbajele de programare de nivel scăzut precum C/C++ și mult mai rapid decât Python, PHP etc.

Java este o platformă sigură

Java este:

  • o platformă sigură pentru dezvoltarea și rularea aplicațiilor;
  • oferă instrumente pentru gestionarea automată a memoriei, ceea ce reduce vulnerabilitatea codului;
  • asigură transferul securizat de date.

Bibliotecă de bază extinsă

Unul dintre motivele adoptării pe scară largă a Java este imensa sa bibliotecă standard. Conține sute de clase și metode din diverse pachete care fac viața mai ușoară dezvoltatorilor. De exemplu,

java.lang este caracteristici avansate pentru șiruri, matrice etc.

java.util este o bibliotecă pentru lucrul cu structuri de date, expresii regulate, date și ore etc.

kava.io - bibliotecă pentru introducerea/ieșirea fișierelor, gestionarea excepțiilor etc.

Utilizarea platformei Java

Înainte de a învăța Java programare de la zero, trebuie să știți că peste 3 miliarde de dispozitive din întreaga lume rulează pe această platformă. La ce anume poate fi folosit:

  1. Aplicații Android - Pentru a dezvolta aplicații Android, limbajul de programare Java este adesea folosit împreună cu Android SDK (din engleză software development kit - kit de dezvoltare software).
  2. Aplicații web - Java este folosit pentru a crea aplicații web folosind programe server, Struts framework și JSP . Iată câteva aplicații web populare scrise în Java: Google.com, Facebook.com, eBay.com, LinkedIn.com.

Este de remarcat faptul că aceste site-uri nu sunt neapărat scrise exclusiv în Java și pot folosi și alte limbaje de programare.

  1. Dezvoltare de software- Programe precum Eclipse, OpenOffice, Vuze, MATLAB și multe altele sunt scrise în Java.
  2. Procesarea datelor mari - pentru procesarea "datelor mari"Puteți folosi cadrul Hadoopscris în Java.
  3. Sisteme de tranzacționare- utilizarea platformei Platforma de tranzacționare Oracle Extreme Java, puteți scrie programe pentru tranzacționare.
  4. Dispozitive încorporate- Miliarde de dispozitive precum televizoare, carduri SIM, playere Blu-ray etc. sunt alimentate de tehnologia Oracle Java Embedded astăzi.

De asemenea programare activată Java este folosit pentru a dezvolta jocuri, aplicații științifice ( de exemplu, pentru procesarea limbajului natural) și în multe alte domenii.

Terminologia Java pe care ar trebui să o cunoașteți

Java este un set de tehnologii ( limbaj de programare şi platforma informatica ) conceput pentru a crea și rula software. Cu toate acestea, termenul Java este adesea folosit pentru a se referi la limbajul de programare în sine.

Limbaj de programare Java este un limbaj de programare multiplatformă, cu scop general, orientat pe obiecte, cu o gamă largă de capabilități.

Java 9 este cea mai recentă versiune de Java la momentul scrierii acestui articol.

Java EE, Java Me și Java SE - aceste nume reprezintă Java Enterprise Edition, Micro Edition și, respectiv, Standard Edition.

Java EE este destinat aplicațiilor care rulează pe servere. Java ME este proiectat pentru dispozitive cu putere limitată, cum ar fi dispozitivele încorporate. Java SE este ediția standard a Java pentru scrierea programelor obișnuite.

Dacă ești nou la Programare Java, vă recomandăm să începeți cu Java SE .

JVM - Java Virtual Machine (" mașină virtuală Java") este un program care permite unui computer să ruleze programe scrise în Java.

JRE - Java Runtime Environment (" Java runtime”) include JVM-ul, bibliotecile aferente și alte componente necesare pentru a rula programe. Dar JRE nu are un compilator, un depanator sau alte instrumente de dezvoltare.

JDK - Kit de dezvoltare Java Dezvoltator Java) conține JRE și alte instrumente de dezvoltare, cum ar fi compilatoare, depanare etc.

Cum să rulați Java pe sistemul dvs. de operare

Cum să rulați Java pe Mac OS

Iată ce trebuie să faceți pentru Java programare de la zeroși instalarea platformei pe Mac OS X sau macOS:

  1. Descărcați cea mai recentă versiune de Java ( JDK) cu Pagini de descărcare Java SE.
  2. Faceți dublu clic pe fișierul DMG descărcat și urmați instrucțiunile programului de instalare.
  3. Pentru a verifica instalarea, deschideți un terminal și introduceți următoarea comandă:

versiunea javac

Dacă Java este instalat corect, va fi afișată versiunea programului ( de exemplu, javac 1.8.0_60).

Următorul pas este să instalați IDE-ul ( mediu de dezvoltare integrat) pentru a scrie și a rula cod Java. Vom instala versiunea gratuită a IntelliJ IDEA și vom rula Java pe ea. Iată ce trebuie să faci pentru asta:

  1. Mergi la Pagina de descărcare a IntelliJși descărcați ediția gratuită pentru comunitate.
  1. Deschideți fișierul DMG descărcat și urmați instrucțiunile de instalare. Pentru acces rapid puteți muta IntelliJ IDEA în folderul Aplicații.
  2. Deschideți IntelliJ IDEA. Selectați opțiunea „Nu importați setările” (“ Nu importați setările"") și faceți clic pe „Ok» . După aceea, acceptați politica de confidențialitate Jetbrains făcând clic pe butonul „Accept”.
  3. Acum puteți personaliza interfața pentru dvs. De asemenea, puteți sări peste acest pas și să lăsați totul ca implicit. Dacă nu sunteți sigur, săriți peste acest pas făcând clic pe „Omiteți toate și setați valorile implicite” (" Omite totul și setează setările implicite»).


  1. Programul vă va afișa o pagină de bun venit. Faceți clic pe „Creare New Project” („ Creați un nou proiect»).
  2. În fereastra următoare, selectați „Java”În panoul din stânga și faceți clic pe „Nou”În partea de sus a ferestrei programului pentru a selecta „JDK» . Aici trebuie să selectați locul în care ați instalat JDK-ul, apoi faceți clic pe Următorul.


  1. Veți avea opțiunea de a crea un proiect dintr-un șablon („Creați proiect din șablon”). Îl ignorăm și apăsăm butonul „Următorul”.
  2. Următorul pas de instalare limbaj de programare Java, introduceți numele proiectului și faceți clic pe butonul „ Terminare” .
  3. În panoul din stânga veți vedea proiectul dvs. Dacă panoul nu este vizibil, accesați meniu Vizualizări > ToolWindows > Proiect.
  4. Accesați Salut > Nou > Java și setați numele clasei. L-am numit Primul.


  1. Pentru a rula programul pe care tocmai l-ați scris, mergeți la Run > Run... Faceți clic pe First ( acesta este numele fișierului pe care l-am creat


Cum să rulați Java pe Linux

Pentru a rula exemple din lecții de programare de la zero Java pe Linux va avea nevoie de kitul de dezvoltare JAVA SE ( JDK) și un IDE pentru a vă dezvolta proiectele. Urmați instrucțiunile pas cu pas pentru a începe să utilizați Java.

Instalați Java

  1. Deschideți un terminal și tastați următoarea comandă pentru Instalări Java:

    sudo add-apt-repository ppa:webupd8team/java


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

  1. Acceptați acordul de licență și termenii de utilizare făcând clic pe OK și, respectiv, Da.
  2. Ai instalat Java. Pentru a verifica dacă instalarea a avut succes, introduceți următoarea comandă într-un terminal:

versiunea java

Dacă este afișată versiunea curentă, instalarea a avut succes. Dacă nu, verificați cu Pagina de ajutor Oracle.

Instalarea IntelliJ IDEA

  1. Mergi la .


  1. Descărcați ediția gratuită pentru comunitate făcând clic pe butonul Descărcare.
  2. După descărcare schimba directorul din terminalîn directorul de descărcări și extrageți fișierul tar Java în folderul /opt cu următoarea comandă:

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

  1. După despachetare, schimbați directorul în folderul bin IntelliJ IDEA:

    cd /opt/ /cos

  2. Pentru a porni IDE-ul, introduceți următoarea comandă:
  3. Alegeți „Nu importați setările” („ Nu importați setările„”) și faceți clic pe „OK”. După aceea, acceptăm politica de confidențialitate Jetbrains făcând clic pe butonul „Accept” .
  4. Acum pentru trecere cursuri de programare Java poate personaliza interfața pentru dvs. Creați o comandă rapidă pe desktop pentru acces rapid la program. După aceea, pentru a lansa IDE-ul, faceți clic pe „Următorul”La toți pașii următori.
  5. Programul va afișa o pagină de bun venit. Faceți clic pe „Creați un nou proiect” (" Creați un nou proiect»).
  6. În fereastra următoare, selectați Java în panoul din stânga și asigurați-vă că Java este selectat în rândul Project SDK. Dacă nu, atunci selectați locația în care ați instalat JDK: /usr/lib/jvm/java-8-oracle.


  1. Faceți clic pe „Următorul” de două ori și creați un proiect.
  2. În pasul următor, introduceți numele proiectului și faceți clic pe butonul „ Terminare” . Acum veți vedea proiectul dvs. în panoul din stânga. Dacă acest panou nu este vizibil, mergeți la meniu Vizualizări > ToolWindows > Proiect.
  3. Adăugați o nouă clasă Java. Selectați src în panoul din stânga cu un clic dreapta și accesați Nou > Clasă Java. Setați numele clasei. Numele clasei nu trebuie să conțină spații.


  1. Scrieți codul Java și salvați proiectul.
  2. Pentru a rula programul, accesați Run > Run... Faceți clic pe HelloWorld ( Denumirea proiectului) - programul va compila fișierul și îl va rula.


Cum să rulați Java pe Windows (XP, 7, 8 și 10)

Pentru a învăța Java fundamentale de programareși rulând platforma pe Windows, veți avea nevoie de un kit de dezvoltare JAVA SE (JDK) și de un IDE pentru dezvoltarea proiectelor. Urmați instrucțiunile pas cu pas de mai jos:

Instalare Java

  • Mergi la pagina de descărcare Kit de dezvoltare Java Standard Edition.
  1. În secțiunea Kit de dezvoltare Java SE din partea de sus a tabelului, faceți clic pe „Acceptați acordul de licență” (" Acceptați acordul de licență"). Apoi faceți clic pe linkul Windows (x64) dacă aveți un sistem de operare pe 64 de biți sau Windows (x86) dacă aveți un sistem de operare pe 32 de biți.

  1. După descărcare, rulați fișierul de instalare și urmați instrucțiunile care vor apărea pe ecran. Faceți clic pe " Următorul". Selectați toate funcțiile făcând clic pe „ Această caracteristică va fi instalată pe hard disk local" și copiați locația de instalare ( este evidentiata cu galben) în Notepad, apoi apăsați din nou " Următorul».


  1. În timpul procesului de instalare, vi se va solicita să instalați JRE. Faceți clic pe Următorul și apoi pe Terminare pentru a finaliza instalarea.
  2. Acum trebuie să editați variabila PATH. Mergi la Panou de control > Sistem și securitate > Sistem. În panoul din stânga selectați „ Setari de sistem avansate.

  1. Faceți clic pe " Variabile de mediu". la capitolul " Variabile de sistem» găsiți variabila PATH și în fereastra următoare faceți clic pe „Edit”.

  1. Selectați tot textul din „ Valoare variabila"și copiați-l într-un fișier text separat. Acest lucru va facilita editarea și verificarea erorilor. Vedeți dacă textul copiat conține linia: C : ProgramData Oracle Java javapath ; . Dacă da, atunci puteți trece la pasul următor. Dacă nu, atunci lipiți locația de instalare pe care ați copiat-o mai devreme la începutul variabilei și adăugați bin la sfârșitul liniei astfel: C : Program Files (x 86) Java jdk 1.8.0_112 bin ; Vă rugăm să rețineți că versiunea dvs. JDK (jdk 1.8.0_112) poate fi diferită. Copiați valoarea variabilei și lipiți-o în caseta PATH.


  1. Faceți clic pe " O.K' pentru a salva modificările.
  2. Pentru a verifica dacă platforma este instalată corect pt introducere în programare Java, deschis Linie de comanda tastând cmd la prompt Căutare Windows sau prin comanda "Run ..." ( Windows-R). Introduceți comanda java -version. Dacă este afișată versiunea curentă de Java, atunci instalarea a avut succes. Dacă nu, verificați cu Pagina de ajutor Oracle.

Instalarea IntelliJ IDEA

  1. Mergi la Pagina de descărcare a IntelliJ IDEA.
  2. Descărcați ediția gratuită pentru comunitate făcând clic pe Descărcare.


  1. Odată descărcat, rulați fișierul de configurare și urmați instrucțiunile care vor apărea pe ecran. Apoi creați o comandă rapidă pe desktop pentru versiunea pe 64 de biți și adăugați asocieri cu extensia .java. Faceți clic pe „Următorul” și continuați cu instalarea.


  1. Odată instalat, deschideți IntelliJ IDEA făcând clic pe pictograma de pe desktop.
  2. Selectați „Nu importați setările” (" Nu importați setările”) și faceți clic pe OK. După aceea, acceptăm politica de confidențialitate Jetbrains făcând clic pe „Accept”.
  3. Acum puteți personaliza interfața pentru dvs. De asemenea, puteți sări peste acest pas și să lăsați totul ca implicit făcând clic pe butonul Omiteți toate și Setați valorile implicite.
  4. Programul va afișa o pagină de bun venit. Faceți clic pe „Creați un nou proiect” (" Creați un nou proiect»).


  1. În fereastra următoare, selectați „Java” în panoul din stânga și faceți clic pe „Nou” în partea de sus a ferestrei programului pentru a selecta JDK. Aici trebuie să selectați locația în care a fost instalat JDK-ul în timpul instalării Java, apoi faceți clic pe „Următorul”.
  2. IntelliJ IDEA va găsi JDK-ul și îl va recunoaște. Nu trebuie să verificați alte opțiuni, doar faceți clic pe „Următorul” .
  3. Pe ecranul următor, introduceți numele proiectului: HelloWorld și faceți clic pe Terminare. Dacă programul spune că directorul nu există, faceți clic pe OK. Dacă nu vedeți panoul din stânga, accesați Vizualizări > Instrument Windows > Proiect .
  4. Pentru a seta numele clasei, selectați folderul src din panoul din stânga. Faceți clic dreapta pe el, accesați Nou > Java și dați un nume clasei. Numele clasei nu trebuie să conțină spații.


  1. Scrieți cod și salvați proiectul Java lectie de programare.
  2. Pentru a rula programul, accesați meniul Run > Run... Faceți clic pe HelloWorld - programul va compila fișierul și îl va rula.


Primul tău program Java

Pentru a prezenta utilizatorilor un nou limbaj de programare, utilizați programul Hello World („Hello world!”). Acesta este un program simplu care afișează cuvintele Hello, World! În această secțiune, vă vom învăța cum să scrieți acest programîn Java folosind IntelliJ IDEA.

  1. Deschideți IntelliJ IDEA.
  2. Accesați Fișier > Nou > Proiect... > Java ( în bara de navigare din stânga).
  3. Setați numele proiectului (Numele proiectului) de la curs de programare J a va. Îi vom numi Hello World și facem clic pe Terminare.
  4. Acum trebuie să creăm o nouă clasă Java.
  5. Selectați folderul src din panoul din stânga, apoi accesați Fișier > Nou > Clasă Java și denumiți noua clasă HelloWorld .
  6. Copiați următorul cod în fișierul HelloWorld.java și salvați-l.

clasă publică HelloWorld ( public static void main(String args) (


// afișează „Hello, World!”


System.out.println("Bună ziua, lume!");

  1. Apăsați butonul de pornire ( Alerga). Dacă totul este în ordine, veți vedea pe ecran inscripția Hello, World!

Cum să înveți Java?

Documentație oficială Java

Oracle, compania care deține Java, publică tutoriale de calitate. Documentația oficială acoperă toate caracteristicile Java și este actualizată în mod regulat.

Notă: Singurul dezavantaj este că documentația oficială Java nu este întotdeauna scrisă în cel mai simplu limbaj posibil.

Dacă chiar vrei să înveți programare in Java, cumpără o carte bună. Desigur, 1000 de pagini nu pot fi citite într-o zi. Dar un manual bun vă va ajuta să învățați cum să programați.

Java: Ghidul complet (ediția a 10-a)

O carte grozavă pentru cei care abia încep să învețe Java. Cea mai recentă ediție include toate caracteristicile versiunii Java 8.

Cartea acoperă tot ce trebuie să știți despre programarea Java, inclusiv sintaxa, cuvintele cheie și elementele fundamentale de programare, precum și biblioteca Java API, applet-urile Java și multe altele.

Filosofia Java (ediția a IV-a)

Dacă migrați la Java dintr-un alt limbaj de programare, această carte este pentru dvs. Dacă porniți de la zero, cel mai bine este să îl citiți împreună cu altul.

Java 8. Referință de buzunar: Primul ajutor pentru programatorii Java

Această carte conține răspunsuri clare la întrebările care apar atunci când învață J programare ava de la zero. Acesta acoperă pe scurt toate conceptele de bază ale Java (inclusiv Java 9). Nu doriți să răsfoiți sute de pagini căutând linia potrivită? Cumpără această carte.

În loc de o concluzie

Dacă începi să înveți Java, nu poți greși - este limbaj promițător programare, plină de o mare varietate de posibilități.

Înainte de a începe să înveți Java, iată câteva sfaturi:

  • Nu citi articole tutoriale și exemple ca un roman. Singura modalitate de a deveni un programator bun este să scrieți mult cod.
  • Dacă migrați dintr-un alt limbaj de programare (să zicem C#), nu trebuie să scrieți cod în stil C#.
  • Găsiți comunități Java online. După ce ați învățat cum să scrieți programe Java simple, căutați site-uri și forumuri Java populare. Încercați să rezolvați problemele pe care le au alți programatori. Aceasta este o modalitate excelentă de a vă extinde propriile cunoștințe. În plus, dacă rămâi blocat, vei ști unde să ceri ajutor.

Sperăm că acest articol vă va încuraja să învățați Java și să vă ajute să începeți primele programe.

Traducerea articolului „ Învață programarea Java. Ghidul definitiv” a fost pregătit de o echipă prietenoasă de proiect

Vom vorbi despre sintaxa Java de bază pentru începători. Sintaxa unui limbaj de programare este un set de reguli care guvernează modul în care este scris și interpretat...

Ce este securitatea informațiilor? Aceasta este starea securității informațiilor, care asigură confidențialitatea, disponibilitatea și integritatea acesteia.

De obicei, pentru a evalua starea securității informațiilor, este necesar să înțelegem și să analizăm amenințările și sursele acestora, să evaluăm nivelul de deteriorare, probabilitatea implementării și relevanța amenințărilor, riscurilor (opțional) care ne pot afecta sistemul/ informație.

În opinia mea, este imposibil să se evalueze securitatea unei singure tehnologii sau limbaj de programare fără referire la mod specific implementare, adică fără un produs software finit specific într-un limbaj care are o specificație tehnică detaliată cu o descriere a arhitecturii și funcționalității. Dar nici acest lucru nu va fi suficient, deoarece este necesar să se evalueze starea de securitate a unui sistem informațional finit cu arhitectura sa specifică, setul de componente, procesele de afaceri, informațiile și, în sfârșit, oamenii. Permiteți-mi să vă dau un exemplu de construcție a unei case. Avem materiale (nisip, ciment, pietriș, cărămizi etc.) și unelte (găleată, lopată, spatulă etc.). Nu vom putea evalua calitatea și fiabilitatea casei finite doar pe baza materialelor/uneltelor folosite: cât va dura, dacă vor fi crăpături în ea, dacă va fi frig sau liniștit în ea. Trebuie să alegeți un proiect de casă, tehnologie de construcție și o echipă de meșteri. Și numai după finalizarea construcției, vom putea măsura conformitatea cu proiectul, GOST, SNiP-uri, vom putea verifica măsurătorile pentru protecție termică, zgomot, sarcini, vom analiza calitatea cimentului și vom răspunde la majoritatea întrebărilor. Dar la întrebarea principală „cât va dura?” nu vom avea un raspuns exact, din moment ce nu cunoastem toate conditiile de functionare ale casei si toti factorii care vor afecta de-a lungul timpului.

Cum să asigurați securitatea în Java

Să luăm Java ca exemplu. . Este un limbaj de programare orientat pe obiecte; programele scrise în Java sunt traduse în bytecode Java, care este executat de Java Virtual Machine (JVM), un program care procesează cod de octet și transmite instrucțiuni hardware-ului ca interpret. Avantajul acestui mod de executare a programelor este independența completă a bytecode-ului față de sistemul de operare și hardware, ceea ce vă permite să rulați aplicații Java pe orice dispozitiv pentru care există o mașină virtuală corespunzătoare.

« Limbajul universal sună frumos, dar cea mai frecventă problemă este și cealaltă față a monedei - o scurgere de memorie în JVM, care duce la depășiri și blocări ale memoriei. În legătură cu această problemă, vulnerabilitățile nu sunt excluse, deoarece postulatul principal al fiabilității este cu cât mai simplu, cu atât mai bine. În acest caz, o plăcintă atât de complexă este asamblată din asigurarea compatibilității un numar mare platforme și sisteme de operare, ceea ce face aproape imposibilă urmărirea și închiderea tuturor vulnerabilităților găsite în acestea și remedierea lor rapidă. Pentru același Microsoft, vulnerabilitățile pot fi găsite și remediate după 4-8 ani și asta dacă nu ținem cont de caracteristicile lăsate nedeclarate intenționat sau greșit.

Din practica mea: atunci când programatorii adaugă o nouă funcționalitate care este legată de cea deja implementată sau repară funcționalitatea veche, atunci în 15% din cazuri sparg produsul care funcționează anterior. Și dacă în același timp nu efectuează testare completă- la ieșire avem un produs cu funcționalitate nouă, dar cu una veche parțial nefuncțională. Există, de asemenea, diferențe în scrierea codului pentru diferite platforme, versiuni ale sistemului de operare, software. În acest sens, ne putem imagina cât de dificil este să menții limbajul de programare Java și JVM-ul, ca să nu mai vorbim de problemele de securitate.

În acest moment, a fost lansat Java Development Kit 10, care ne oferă mecanisme de securitate standard lansate pentru Java SE 8 și descrise în Documentația de securitate. În cea de-a zecea versiune, nu a fost adăugat nimic nou.

Rețineți că Oracle are un Centru de resurse de securitate Java. În general, societatea acționează securitate javaîn patru secțiuni principale:

A) Dezvoltatorii trebuie:

Urmăriți și utilizați toate cele mai recente actualizări de mediu de dezvoltare și de securitate;

Utilizați programe de control al corectitudinii codului (de exemplu, Checker Framework);

B) administratorii de sistem ar trebui:

Urmăriți și utilizați toate cele mai recente actualizări pentru Java și componentele necesare pentru ca produsul să funcționeze (inclusiv OS, biblioteci, cadre etc.);

Utilizați regulile de implementare Java descrise de și ;

Utilizați un marcaj temporal de încredere.

C) utilizatorii finali trebuie:

Utilizați întotdeauna cea mai recentă versiune originală de Java;

D) profesioniștii în securitate trebuie să:

Utilizați instrumente avansate de management și securitate (de exemplu, Advanced Management Console);

Monitorizați instalarea la timp a tuturor actualizărilor de securitate;

Este important ca toată lumea să respecte și să respecte regulile și cerințele de siguranță. Este posibilă atingerea unei stări de siguranță la un nivel adecvat doar lucrând împreună și aplicând toate măsurile disponibile (tehnice, organizatorice). După cum arată practica mea, în 60% dintre organizații, serviciile IT și de securitate a informațiilor sunt bine cu securitatea, precum și cu utilizatorii care folosesc dispozitive corporative și sunt conectați la un singur domeniu. Dar cei mai necontrolați în acest domeniu sunt dezvoltatorii, liderii de echipă, arhitecții.

Dezvoltare software și probleme de securitate

Mai larg, principalele cauze ale problemelor de securitate în aplicații în timpul dezvoltării software sunt următoarele:

A) Lipsa de înțelegere a terminologiei de securitate în general, ca să nu mai vorbim de cunoștințe specifice și soluții aplicate.

De regulă, dezvoltatorii au securitate cel mai bun caz este asociat cu următoarele lucruri: controlul accesului și înregistrarea în jurnal și protecția cu parolă, mai rar - protecția conexiunii la nivel https (folosind mecanisme de criptare care sunt disponibile de la cutie în mod implicit). Adică, oficial vor folosi metode de securitate, care de fapt vor rămâne formale, „pentru spectacol”, fără a ține cont de cerințele și nuanțe:

Pentru parole: de obicei se folosesc valorile implicite și nu se fac setări suplimentare pentru lungime, putere, frecvență de modificare, nerepetabilitate, număr de încercări. Destul de des, acești parametri nu pot fi ajustați, deoarece nu au fost incluși în sarcina de dezvoltare a software-ului, ceea ce duce la necesitatea de a adăuga cod.

Despre gestionarea și înregistrarea accesului: în cel mai bun caz, dezvoltatorii au descris grupurile sau rolurile utilizatorilor și obiectele de acces care ar trebui să fie disponibile în software. În cel mai rău caz, dezvoltatorii înșiși au „împărțit” secțiunile și obiectele în cele necesare utilizatorilor și administratorilor. În primul caz, obținem un sistem care poate fi configurat flexibil, dar este nevoie de o perioadă semnificativă de timp pentru a configura și a conveni asupra drepturilor. În al doilea - un sistem formal de control al accesului. În plus, dezvoltatorii trebuie să înțeleagă ce fel de informații și în ce măsură este necesar să se înregistreze. Cu toate acestea, adesea nu li se furnizează aceste informații, ceea ce duce la detalii insuficiente în jurnalele pentru a analiza incidentele sau a înțelege ce se întâmplă în software. Sau la stocarea excesivă a jurnalelor și a unei cantități mari de informații, ceea ce impune restricții semnificative asupra capacității de a stoca informații pentru perioada necesară de timp (de exemplu, unul până la trei ani) sau devine necesară achiziționarea de stocări de informații suplimentare. Când informațiile sunt suprascrise, probleme suplimentare cu viteza de analiză și analiză a incidentelor și viteza de găsire a informațiilor potrivite. Redundanța poate necesita, de asemenea, finanțare suplimentară pentru extinderea personalului, achiziționarea de sisteme SIEM cu personalizarea regulilor unice de procesare a informațiilor sau poate duce la riscuri asociate cu informații învechite. În același timp, se alocă prea mult timp analizei și procesării informațiilor.

Protecția canalelor de comunicare nu este mai puțin semnificativă, în special pentru sistemele de plată și bancare, unde, pe lângă dezvăluirea datelor cu caracter personal și cu caracter personal, sunt posibile pierderi financiare. Cel mai adesea se întâmplă să nu se gândească la protejarea canalelor și a mediului de transmitere a informațiilor, iar dacă o fac, folosesc setările „implicite”, de exemplu, TLS / SSL. Dar are și propriile particularități în alegerea versiunii de protocol (TLS 1.1, 1.2, 1.3 sau SSL v1-3), algoritm de criptare (RC4, IDEA, Triple DES, SEED, Camellia sau AES), lungimea cheii. Uneori, de exemplu, este selectat protocolul corect TLS 1.2, cu criptare AES, o lungime a cheii de 256 de biți, dar se uită posibilitatea de a selecta o adresă pe portul 443 pentru HTTPS și sau portul 80 pentru HTTP, în loc să blochezi portul 80 , în urma căruia devine posibil să se obțină acces printr-un canal nesigur. Sau, de exemplu, ridică infrastructura pe mașinile virtuale și nu se gândesc deloc la necesitatea închiderii accesului la rețea între mașinile virtuale.

B) A doua problemă este legată de business, deoarece investește în funcționalități speciale specifice care nu țin cont de blocurile de securitate.

Din păcate, companiile nu înțeleg întotdeauna de ce trebuie să cheltuiască resurse pe blocuri de securitate dacă nu există un beneficiu funcțional de la acestea, bani mai mult produs nu va aduce, dar există doar riscuri probabile care ar putea să nu funcționeze. Companiile înțeleg mai des nevoia de a investi în securitate atunci când a avut loc deja un incident de securitate a informațiilor.

Din păcate, nu numai afacerile sunt de vină pentru acest lucru, ci și mediul său, care:

De asemenea, nu înțelege în securitate;

Bugetul specialiştilor în securitatea informaţiei a fost cruţat (nu se angajează deloc, sau se angajează specialişti de înaltă specializare, sau se angajează o persoană care răspunde de toate);

Nu a reușit să transmită în mod rezonabil nevoia de securitate și să fundamenteze corect riscurile actuale (reputaționale, financiare, temporare).

C) Problemă de comunicare în companie sau lipsa acesteia.

Acesta este cazul când afacerile și mediul său înțeleg nevoia și importanța securității informațiilor. Au alocat bugete, au angajat specialiști corespunzători, dar există dificultăți în comunicarea între unitățile de afaceri și securitatea informațiilor/servicii IT, dezvoltatori.

D) Conștientizarea insuficientă a utilizatorilor obișnuiți ai companiei în materie de securitate a informațiilor.

Să presupunem că există toate subdiviziunile necesare, specialiști, măsuri tehnice și organizatorice. Dar utilizatorii se odihnesc și nu vor să lucreze conform regulilor. Aceasta este o situație foarte comună și este, de asemenea, necesar să o rezolvăm în mod cuprinzător, deoarece oamenii nu înțeleg de ce au nevoie de muncă suplimentară pentru a se conforma cu problemele de securitate a informațiilor (scanați fișierele cu antivirus, amintiți-vă parolele complexe, cunoașteți și respectați politicile și afacerile). procese etc.). Este necesar să se organizeze periodic cursuri de master, să se spună la nivel de zi cu zi ce este securitatea informației, ce probleme și soluții există, pentru a aduce obiective și obiective globale de securitate a informațiilor, pentru a le motiva și a impactului lor asupra afacerii.

E) Lipsa arhitecților în securitatea informațiilor - specialiștii în securitatea informațiilor nu participă întotdeauna la dezvoltarea software-ului, iar programatorii înșiși se gândesc la securitatea arhitecturii și la utilizarea modelelor de securitate scrise și gata făcute (Security patterns).

Dezvoltatorii nu cunosc și nu pot cunoaște toate nuanțele, deoarece sarcina lor este să finalizeze dezvoltarea și să treacă la următoarea. Dacă te aprofundezi în dezvoltarea în sine, procesul este mult mai complicat decât pare. Prin urmare, este necesar să primiți clar sarcina de la companie, să o descompuneți în mini-sarcini ușor de înțeles pentru dezvoltatori, să efectuați dezvoltarea, să efectuați teste alfa și beta, să încărcați, să testați funcționale, să remediați erorile, să reveniți la teste - acest proces este ciclic si lung. Prin urmare, nu este de mirare că nu au suficiente resurse pentru a gândi siguranța produsului până la cel mai mic detaliu.

Pentru a putea vorbi despre securitate, trebuie să rezolvați problemele descrise mai sus. Nu descriu în mod specific opțiunile pentru soluții, deoarece totul depinde de probleme specifice, mediu, condiții. Nu există o pastilă universală și trebuie folosită orice măsură posibilă. Sarcina principală este să se asigure că toți angajații companiei înțeleg, înțeleg și respectă cerințele de securitate a informațiilor și să fie interesați de respectarea acestora. Și abia atunci se va putea vorbi despre eficiență și nivel bun maturitatea securității informațiilor în companie.

Secțiunea Java a developerWorks conține sute de articole, tutoriale, sfaturi și conținut scris de comunitatea Java pentru a vă ajuta să profitați la maximum de platforma Java și de tehnologiile aferente în dezvoltarea aplicațiilor dvs. Cu toate acestea, pentru dezvoltatorii începători care au început să folosească Java, poate fi dificil să navigheze prin volumul imens de resurse disponibile online. Prin urmare, am creat această pagină, care oferă o imagine de ansamblu asupra tehnologiilor Java de bază în contextul general al capabilităților acestui limbaj. Aici veți găsi link-uri către alte resurse de învățare Java, cum ar fi articole developerWorks pentru începători și alte resurse educaționale, precum și link-uri de descărcare pentru produsele IBM.

Ești un dezvoltator Java începător? Pe această pagină veți găsi o prezentare generală a principalelor tehnologii Java™ și locul lor în dezvoltarea software-ului modern. Cu link-uri către articole introductive developerWorks despre acest subiect și subiecte conexe, alte resurse educaționale, precum și descărcări și produse IBM, această pagină este un punct de plecare excelent pentru a învăța Java.

Ce înseamnă „tehnologii Java”?

Java este atât un limbaj de programare, cât și o platformă.

În primul rând, Java este un nivel înalt orientat pe obiecte limbaj de programare. La compilare, care este executat o dată în timpul construirii aplicației, codul Java este convertit într-un cod de limbaj intermediar ( bytecode). La rândul său, bytecode este analizat și executat ( interpretat) Java Virtual Machine (JVM), care acționează ca un traducător între limbajul Java și hardware-ul sistemului de operare. Toate implementările Java trebuie să emuleze JVM pentru a aplicații create ar putea rula pe orice sistem, inclusiv mașină virtuală Java.

În al doilea rând, Java este platforma software, ale căror versiuni sunt furnizate pentru diverse sisteme hardware. Există trei versiuni de Java (vezi mai jos secțiunea Edițiile platformei Java). Platforma include un JVM și o interfață de programare a aplicațiilor (API) Java, care este un set extins de componente software gata făcute (clase) care facilitează dezvoltarea și implementarea applet-urilor și aplicațiilor. API-ul Java acoperă multe aspecte ale dezvoltării Java, inclusiv manipularea obiectelor de bază, programarea în rețea, securitatea, generarea XML și serviciile Web. API-ul este organizat ca un set de biblioteci numite pachete, care conțin clase și interfețe pentru rezolvarea sarcinilor conexe.

Pe lângă API, fiecare implementare completă a platformei Java trebuie să includă următoarele:

  • Un set de instrumente pentru dezvoltatori pentru compilarea, rularea, monitorizarea, depanarea și documentarea aplicațiilor.
  • Mecanisme standard pentru implementarea aplicațiilor într-un mediu de utilizator.
  • Instrumente care vă permit să creați interfețe grafice complexe pentru utilizator.
  • Biblioteci de integrare pt acces la program la baze de date și manipularea de la distanță a obiectelor.

JVM este, de asemenea, un mediu dovedit pentru rularea aplicațiilor scrise în limbaje non-Java. În special, Groovy, Scala și implementările specializate ale Ruby și Python oferă dezvoltatorilor capacitatea de a executa dinamic și limbaje funcționale(Pentru mai multe informații, consultați Cum se relaționează Java cu limbajele dinamice și programarea funcțională?).

Limbajul Java a fost dezvoltat de Sun Microsystems. În prezent, dezvoltarea tehnologiilor Java, inclusiv lucrările la specificații, implementări de referință și teste de compatibilitate, se desfășoară sub controlul JCP (Java Community Process), o organizație deschisă non-profit care reunește dezvoltatorii Java și deținătorii de licențe. În 2007, Sun a lansat o versiune gratuită de Java, inclusiv componentele de bază ale platformei, sub licența GNU GPL v2 (GPLv2). Puteți citi mai multe despre această versiune în Java și Free Software Development.

De ce ar trebui să înveți Java?

Principalul avantaj al limbajului Java este exprimat în portabilitatea aplicațiilor Java, adică. capacitatea de a rula pe orice platformă hardware și sistem de operare, deoarece toate JVM-urile, indiferent de platforma pe care rulează, sunt capabile să execute același bytecode.

Limbajul și platforma Java sunt foarte scalabile. Puteți crea cu ușurință aplicații pentru dispozitive cu resurse limitate adaptând software-ul scris inițial pentru computere desktop. În același timp, limbajul Java este ideal și pentru dezvoltarea de aplicații Web server-side, cu ajutorul cărora utilizatorul poate accesa resurse de calcul de pe Web. Capacitatea de a executa în siguranță codul descărcat de pe web a fost construită de la zero în Java, astfel încât limbajul oferă un nivel ridicat de securitate atunci când lucrați pe Internet. Aplicațiile web rulează în medii de rulare numite Containere web, care oferă multe servicii convenabile, inclusiv expedierea cererilor, securitatea și concurența, gestionarea ciclului de viață și accesul la API-uri, cum ar fi gestionarea numelor, tranzacțiile și e-mailul. Seria este scrisă în Java servere de aplicații, care acționează ca containere Web pentru alte componente Java, XML și servicii Web care interacționează cu bazele de date și generează în mod dinamic conținutul paginii Web. Aceste servere oferă, de asemenea, un mediu pentru implementarea aplicațiilor și instrumentelor de întreprindere pentru gestionarea tranzacțiilor, clustering, securitate, conectivitate și nivelul cerut disponibilitate, performanță și scalabilitate.

Prin sprijinirea utilizării standardelor deschise în aplicațiile de întreprindere, Java deschide ușa către serviciile Web bazate pe XML pentru a ajuta partenerii de afaceri să partajeze conținut și aplicații. Java se află în centrul multor produse și servicii de consultanță tehnică IBM (Produse și tehnologii IBM pentru dezvoltatori Java) și joacă un rol cheie într-o serie de domenii cheie ale afacerii companiei.

  • Explorați abordarea IBM și aflați cum SOA vă ajută să construiți aplicații eterogene care sunt alimentate de surse diferite atât în ​​interiorul cât și în afara întreprinderii, susținând astfel procesele de afaceri orizontale. IBM oferă o serie de instrumente axate pe afaceri și pe IT pentru a vă ajuta să începeți să utilizați această tehnologie.
  • este o abordare componentă oferită de IBM, oferind o gamă completă de oportunități pentru schimbare strategică. Soluțiile oferite se bazează pe o infrastructură hardware și software flexibilă, extensibilă și deschisă, bazată pe standarde (inclusiv Java).

Edițiile platformei Java
Există trei ediții ale platformei Java care permit dezvoltatorilor de aplicații, furnizorilor de servicii și producătorilor de hardware să creeze soluții care să răspundă nevoilor anumitor grupuri de utilizatori.

  • Java SE ( Platforma Java, Editie Standard). Folosind Java SE, puteți crea și implementa aplicații pentru desktop și server Java și puteți dezvolta software încorporat și în timp real. Ediția Java SE include clasele necesare pentru a crea servicii Web și componentele de bază ale Java EE (Java Platform, Enterprise Edition). Versiunea actuală a platformei Java SE este Java SE 6, cunoscută și sub numele de Mustang. Cu toate acestea, mulți dezvoltatori încă folosesc Java SE 5 (Java 5.0, sau „Tiger”).
    • Pentru o prezentare excelentă a caracteristicilor Java SE 5, consultați articolele din . Cele mai multe aspecte ale programării pentru platforma Java SE 5, pentru care au fost construite multe aplicații existente, sunt încă relevante pentru Java SE 6.
    • Acest articol descrie noile caracteristici din Java SE 6 pentru monitorizarea și evaluarea performanței aplicației.
    • Acest articol oferă o introducere într-un limbaj de scripting care rulează pe platforma Java SE 6 pentru a simplifica programarea interfețelor de utilizator complexe.
    • O serie din două părți intitulată oferă o introducere în API-ul furnizat de Java SE 6, care permite aplicațiilor Java să execute cod de script dinamic și invers. .
  • Java EE (Java Platform, Enterprise Edition). Această versiune de întreprindere a platformei ajută dezvoltatorii să construiască și să implementeze aplicații de server Java portabile, fiabile, scalabile și securizate. Bazându-se pe capacitățile Java SE, Java EE oferă servicii Web, modele de componente, API-uri de gestionare la distanță și pentru implementarea software-ului pentru întreprinderi SOA și Web 2.0.
    • Citiți articolele și pentru o prezentare generală introductivă a caracteristicilor ultima versiune Platforme Java EE.
    • Consultați seria, un cadru popular pentru construirea de aplicații Java EE ușoare și robuste.
    • Pentru mai multe informații despre Java EE, consultați articolele din .
    • Articolele din seria Noțiuni de bază: Migrarea la platforma Java au fost scrise special pentru dezvoltatorii de aplicații .NET, Windows client/server și aplicații ASP pentru a-i ajuta să migreze la Java.
  • Java ME (Java Platform, Micro Edition). Java ME oferă un mediu pentru rularea aplicațiilor create pentru o gamă largă de sisteme mobile și încorporate, cum ar fi telefoane mobile, PDA-uri, set-top box-uri și imprimante. Această ediție a platformei oferă interfețe de utilizator flexibile, un model de securitate robust, o gamă completă de protocoale de rețea încorporate și suport puternic pentru aplicații încărcate dinamic online și offline. Aplicațiile bazate pe specificațiile Java ME pot fi rulate pe mai multe dispozitive și pot încă să-și folosească eficient capacitățile sistemului.

Ce tehnologii sunt componentele de bază ale platformei Java?

Secțiunea Java din developerWorks conține fișierul . Mai jos sunt enumerate câteva dintre componente, posibile pachete de suplimente și extensii incluse cu fiecare ediție a platformei. Fiecare tehnologie are o scurtă descriere, precum și un link către resurse care descriu locul ei în lumea Java. Rețineți că multe dintre componente sunt incluse în toate cele trei ediții ale platformei Java.

Tehnologii incluse în Java SE:

  • Clasuri Java Foundation (Swing)(JFC) este un set de biblioteci de clase Java pentru crearea de interfețe grafice cu utilizatorul și alte caracteristici grafice în aplicațiile client Java. Management .
  • JavaAjutor este un sistem de ajutor extensibil, independent de platformă, care permite dezvoltatorilor și scriitorilor tehnici să încorporeze pagini de ajutor în applet-uri, componente software, aplicații, sisteme de operare și dispozitive și să creeze sisteme de ajutor bazate pe web. Consultați articolul.
  • Mulțumită Interfață nativă Java(JNI) Aplicațiile Java care rulează în interiorul JVM pot interacționa cu programe și biblioteci scrise în alte limbaje de programare.
  • Tehnologie Java Web Start simplifică implementarea aplicațiilor Java, permițând utilizatorilor să descarce și să ruleze instrumente software bogate, cum ar fi foi de calcul, cu un singur clic, fără instalare (vezi articolul).
  • Conectivitate la baza de date Java(JDBC) este un API care oferă mijloacele de a accesa majoritatea surselor de date relaționale din aplicațiile Java. Poate fi folosit pentru a vă conecta la mai multe baze de date. date SQL, precum și alte surse de date tabelare, cum ar fi foi de calcul și fișiere plate.
  • Imagini avansate Java(JAI) este un API orientat pe obiecte care oferă un model de programare simplu, la nivel înalt, care facilitează manipularea imaginilor.
  • Serviciul de autentificare și autorizare Java(JAAS) este o tehnologie care oferă servicii cu mijloacele de a autentificare a utilizatorilor și de a verifica drepturile lor de acces. Include o implementare Java a infrastructurii standard PAM (Pluggable Authentication Module) și acceptă autorizarea la nivel de utilizator.
  • Extensie Java Criptografie(JCE) este un set de pachete care oferă infrastructură și implementări de algoritmi pentru criptare, generare și schimb de chei și cod de autentificare a mesajelor (MAC). Această tehnologie include, de asemenea, suport pentru cifruri simetrice, asimetrice, bloc și flux, precum și fluxuri securizate și obiecte sigilate. Mai mult informatii detaliate poate fi găsit în manual.
  • Obiecte de date Java(JDO) este un model Java standard de persistență a obiectelor bazat pe interfețe. Permite dezvoltatorilor să stocheze direct instanțe ale claselor de domenii Java în stocare persistentă (cum ar fi o bază de date). Acest model în unele cazuri poate înlocui scrierea directă într-un fișier, serializarea, JDBC, precum și utilizarea componentelor EJB de pe partea serverului, atât gestionate de container (Container Managed Persistence - CMP), cât și starea de stocare automată (Bean Managed Persistence - BMP).
  • Pachet Extensii de management Java(JMX) oferă instrumente pentru construirea de aplicații distribuite, modulare, dinamice și activate pe Web pentru gestionarea și monitorizarea dispozitivelor, software-ului și rețelelor bazate pe furnizarea de servicii (vezi articolul ).
  • Java Media Framework(JMF) vă permite să adăugați informații audio, video și alte informații media în aplicațiile și applet-urile Java (consultați manualul).
  • Interfață Java de denumire și director(JNDI) este o interfață unificată pentru accesarea diferitelor servicii de denumire și director într-o rețea corporativă. Permite aplicațiilor să se conecteze eficient la diverse servicii de denumire și director într-un mediu de întreprindere eterogen.
  • Extensii Java Secure Socket(JSSE) este un set de pachete pentru a permite schimbul securizat de informații pe Internet. Ei implementează versiunea Java a protocoalelor SSL (Secure Sockets Layer) și TLS (Transport Layer Security) și oferă facilități pentru criptarea datelor, verificarea integrității mesajelor, autentificarea serverului și a clientului (acesta din urmă este opțional).
  • Java Speech API(JSAPI) include specificațiile JSGF (Java Speech Grammar Format) și JSML (Java Speech Markup Language). Acest pachet oferă capabilități pentru utilizarea tehnologiilor de vorbire în interfața cu utilizatorul. JSAPI este un API multiplatformă pentru a sprijini recunoașterea comenzilor vocale, sistemele de introducere a vorbirii și sinteza vorbirii. Consultați următoarea secțiune a articolului pentru mai multe detalii.
  • Java 3D este un API care oferă capabilități grafice 3D multiplatforme și scalabile în aplicațiile Java. API-ul este organizat ca un set de interfețe orientate pe obiecte care formează un singur model de programare, simplu, de nivel înalt.
  • Mecanism Facilitatea de metadate Permite dezvoltatorilor să definească atribute pentru clase, interfețe, câmpuri și metode, astfel încât acestea să poată fi tratate diferit de instrumente de creație, instrumente de implementare și biblioteci terță parte în timpul execuției (consultați ).
  • API-ul Java Content Repository este un API pentru accesarea depozitelor de conținut în Java SE, indiferent de implementarea acestora. Astfel de depozite sunt sisteme de management al informațiilor la nivel înalt și sunt versiuni extinse ale depozitelor de date clasice.
  • Enumerări(enumerarea) este un tip de date care vă permite să descrieți diferite elemente de date ca un set tipizat de constante.
  • generice(tipuri generice) vă permit să creați clase cu parametri ( tipuri abstracte) care sunt specificate în timpul etapei de instanțiere. Consultați articolul pentru mai multe detalii și, de asemenea, consultați articolul despre modul în care tipurile generice facilitează lucrul cu colecții în Java SE 6.0.
  • Utilități Concurență este un set de clase care oferă funcționalitate de nivel mediu, care este de obicei cerută de aplicațiile paralele de procesare a datelor.
  • API Java pentru procesarea XML(JAXP) este un API care permite aplicațiilor Java să analizeze și să transforme documente XML, indiferent de procesorul XML utilizat. Acest lucru permite aplicațiilor să comute cu ușurință între diferite procesoare fără modificări ale codului aplicației. La rândul său, tehnologia JAXB ( API Java pentru legarea XML) oferă capabilități pentru automatizarea maparii dintre documentele XML și obiectele Java.
  • API SOAP cu atașamente pentru Java(SAAJ) oferă dezvoltatorilor funcții pentru formarea și procesarea mesajelor în conformitate cu specificația SOAP 1.1, specificând SOAP cu atașamente (SOAP cu atașamente). Vezi articolul pentru mai multe detalii).

Tehnologii incluse în J2EE:

  • Enterprise JavaBeans(EJB) este un model de componentă care simplifică dezvoltarea middleware prin furnizarea de servicii precum gestionarea tranzacțiilor, securitatea și conectivitate la baze de date.
  • Specificația portlet-ului definește un set de API-uri pentru crearea portalurilor Java, acoperind aspecte precum agregarea și prezentarea informațiilor, personalizare și securitate (vezi articolul).
  • javamail este un API care oferă un set de clase abstracte care modelează sistemul de e-mail.
  • Serviciul de mesaje Java(JMS) este un API care acceptă crearea de aplicații Java portabile bazate pe mecanismul de mesagerie. El defineste set comun concepte și strategii de programare de bază pentru toate sistemele de mesagerie compatibile JMS.
  • JavaServer Faces(JSF) oferă un model de programare care vă ajută să construiți aplicații Web prin construirea de pagini din componente reutilizabile de interfață utilizator, asociind acele componente cu surse de date și evenimente de la parte client cu handlere de pe partea serverului. Pentru mai multe informații, consultați ghidul din două părți și seria de articole în coloană.
  • Pagini de server Java(JSP) oferă dezvoltatorilor web mijloacele de a crea rapid și de a menține cu ușurință pagini web dinamice, multiplatforme, care separă interfața utilizatorului și generarea de conținut, astfel încât designerii să poată schimba marcajul fără a atinge conținutul generat dinamic (vezi .
  • Biblioteca standard de etichete pentru paginile JavaServer(JSTL) este un set de etichete specializate care oferă un format standard pentru efectuarea acțiunilor cerute de multe aplicații Web. Consultați Actualizați-vă paginile JSP cu JSTL și seria din patru părți numită .
  • Servlet-uri Java extinde funcționalitatea serverelor Web prin furnizarea unei abordări multiplatformă, bazată pe componente, pentru construirea de aplicații Web, fără limitările de performanță ale CGI.
  • Arhitectura conectorului J2EE(JCA) oferă o arhitectură standard pentru conectarea aplicațiilor J2EE la sisteme de informație ale întreprinderii eterogene (EIS). Această arhitectură definește un set de mecanisme scalabile și securizate bazate pe tranzacții prin care furnizorii EIS pot furniza adaptoare de resurse standard pentru includerea într-un server de aplicații. Pentru mai multe informații, consultați articolele și manualul.
  • Specificația de management J2EE(JMX) definește modelul de informații de management pentru platforma J2EE. Acest model a fost conceput special pentru a interopera cu multe sisteme de control și protocoale. Conține instrumente standard pentru comparare cu generalul model informativ(Common Information Model - CIM), SNMP Management Information Base (MIB) și model de obiect Java utilizând o componentă server rezidentă EJB (J2EE Management EJB Component - MEJB).
  • Java Transaction API(JTA) este un API de implementare la nivel înalt și independent de protocol, care oferă programelor și serverelor de aplicații mijloacele de acces la tranzacții. Serviciul de tranzacții Java(JTS) definește o implementare a unui manager de tranzacții care acceptă JTA și implementează o mapare subiacentă la OMG Object Transaction Service (OTS 1.1). Propagarea tranzacțiilor în JTS este implementată folosind protocolul Inter-ORB (IIOP). Vezi articolul pentru mai multe detalii.

Tehnologii incluse în J2ME:

  • Profilul dispozitivului de informații mobile(MIDP) este una dintre cele două configurații care alcătuiesc mediul de rulare Java pentru dispozitivele mobile cu resurse limitate. MIDP oferă funcționalități de bază aplicațiilor, inclusiv instrumente pentru crearea de interfețe cu utilizatorul, conectarea la resursele de rețea, stocarea datelor la nivel local și gestionarea ciclului de viață.
  • Configurarea dispozitivului conectat(CDC) este un cadru standardizat pentru construirea și implementarea aplicațiilor care pot fi accesate de pe multe dispozitive în rețea și încorporate.
  • Mobile 3D Graphics API pentru J2ME(M3G) este un API grafic 3D interactiv ușor, care este o componentă opțională a J2ME. Puteți citi mai multe despre el într-o serie în două părți.

Tehnologii Java și dezvoltare de aplicații web

Timp de mulți ani, Java a fost limbajul principal pentru dezvoltarea aplicațiilor Web. Recent, multe cadre și biblioteci au apărut pentru a facilita crearea de aplicații Web în Java, inclusiv aplicații interactive bogate. aplicatii web 2.0.

Consultați subiectele de dezvoltare web Java de mai jos.

  • Articolele din coloană vorbesc despre Grails - o infrastructură modernă pentru crearea de aplicații web scris în Groovy. Grails vă permite să combinați fără probleme codul Java scris anterior cu capacitatea de a utiliza un limbaj de scripting flexibil și dinamic. Pentru mai multe informații despre Groovy, consultați Cum se relaționează Java cu limbajele dinamice de mai jos? programare functionala?.
  • Ajax este o metodologie de programare care utilizează limbaje de scripting la nivelul clientului pentru a comunica cu un server Web, permițându-vă să actualizați rapid informațiile din pagini fără a fi nevoie să le reîncărcați complet. După ce ați citit seria de articole și , veți afla cum vă poate ajuta Ajax ca dezvoltator de aplicații Java. Pentru mai multe informații, consultați developerWorks.
  • JavaServer Faces (JSF) oferă un model de programare care vă ajută să construiți aplicații Web prin asamblarea paginilor din componente reutilizabile ale interfeței utilizator, asociind acele componente cu surse de date și evenimente de la parte client cu handlere de server. Pentru mai multe informații, consultați ghidul din două părți și seria de articole în coloană.
  • Platforma Eclipse Web Tools (WTP) extinde popularul mediu de dezvoltare Eclipse prin adăugarea de instrumente pentru construirea de aplicații Web bazate pe tehnologii Java EE (consultați ghidul).
  • DeveloperWorks are multe alte resurse excelente pe aceste subiecte.

Tehnologii Java, SOA și servicii web

Arhitectura Orientată pe Servicii (SOA) este un model de componentă care leagă module functionale aplicații (cunoscute ca Servicii de unde a venit termenul Servicii web) prin interfețe și contracte strict descrise. Definițiile interfeței sunt independente de hardware-ul de bază, sistemul de operare și limbajul de programare în care este implementat serviciul, susținând astfel interacțiunea unificată între serviciile care sunt componente ale diferitelor sisteme. SOA este un exemplu de cuplare vag model de program, care este o alternativă la modelele clasice puternic cuplate orientate obiect.

Create astfel, serviciile Web vă permit să descrieți regulile și procesele de afaceri în XML, astfel încât aplicațiile să poată interacționa independent de platformele și limbajele de programare utilizate. Tehnologiile XML promovează portabilitatea datelor și facilitează crearea de mesaje, în timp ce tehnologiile Java fac posibilă scrierea codului portabil. XML și Java merg mână în mână, făcându-l combinația perfectă de tehnologie pentru construirea și implementarea serviciilor Web.

Informații mai detaliate pot fi obținute citind următoarele materiale:

  • Paginile și site-ul web developerWorks vă vor ajuta să navigați în aceste tehnologii provocatoare.
  • Articolele din această serie acoperă cadrele de servicii Web Java și noile straturi de caracteristici construite pe deasupra acestor servicii.
  • Acest articol oferă o introducere în stilul elegant de proiectare a serviciilor web numit Representational State Transfer (REST) ​​și explică cum să utilizați Java pentru a crea servicii web bazate pe REST.
  • O înțelegere a JAX-RPC (RPC bazată pe API-ul Java pentru lucrul cu XML) este esențială pentru a construi servicii web Java eficiente.
  • JAX-WS este următorul pas evident în dezvoltarea JAX-RPC. O introducere practică a acestui nou API este oferită în .
  • Seria de articole este un ghid pentru arhitectura componentelor de serviciu (SCA) - o specificație care descrie un model de dezvoltare a aplicațiilor și sistemelor bazate pe principiile SOA.
  • Acest articol oferă o introducere în cadrul Service Data Objects. date de serviciu) care simplifică modelul de date Java EE pentru construirea de aplicații SOA.

Ce legătură are Java cu limbajele dinamice și cu programarea funcțională?

Mulți dezvoltatori care încep să învețe Java au o experiență bogată cu alte limbaje de programare. În același timp, chiar și cei mai venerabili programatori admit că Java nu este un limbaj ideal pentru rezolvare toate sarcinile întâlnite în practică. Din fericire, cu suport din partea JVM, atunci când dezvoltați aplicații pentru platforma Java, puteți profita din plin de scripturile moderne dinamice și limbajele funcționale. Flexibilitatea și dinamismul acestor limbaje se dovedește a fi foarte utile la prototiparea și implementarea anumitor tipuri de aplicații.

Puteți citi mai multe despre posibilitățile de utilizare a limbajelor dinamice și funcționale pe platforma Java în materialele, link-uri către care sunt prezentate mai jos.

  • Limbajul de scripting Groovy permite dezvoltatorilor Java să folosească cele mai familiare construcții de limbaj și biblioteci, oferind în același timp un mediu de dezvoltare flexibil și dinamic, care nu necesită compilare, simplifică sintaxa și acceptă scripting în aplicațiile Java obișnuite. O prezentare detaliată a posibilităților acestui limbaj este oferită în articolele seriei.
  • Noul Scripting API din Java SE 6, care este compatibil cu Java SE 5 și conține un set mic de interfețe și clase, oferă o modalitate ușoară de a apela scripturi scrise în zeci de limbi din codul Java. Cu acesta, puteți încărca și apela scripturi externe în timpul execuției, schimbând dinamic comportamentul aplicației. Puteți citi mai multe despre acest API într-o serie din două părți numită .
  • Sunteți un susținător înfocat al programării funcționale? Apoi ar trebui să acordați atenție rubricii, care vorbește despre Scala, un limbaj de programare pentru JVM care combină o abordare de dezvoltare funcțională și orientată pe obiecte.
  • VM-urile au suportat limbaje de programare alternative de mult timp. În articolele din coloană, puteți citi despre implementări pentru JVM în limbi precum Rexx, Ruby, JavaScript, Python și altele.

Java și crearea de software liber

Există nenumărate biblioteci Java, seturi de instrumente, cadre, programe și servere de aplicații care sunt deschise dezvoltatorilor. caracteristici suplimentare despre utilizarea acestei platforme puternice. O serie de tehnologii gratuite au fost încorporate în platforma Java de-a lungul timpului, iar altele au rămas populare în rândul dezvoltatorilor Java de-a lungul anilor, în unele cazuri acționând ca standarde de facto.

  • Apache Software Foundation (EN) reunește multe proiecte deschise, dintre care majoritatea se bazează pe tehnologii Java. Unii membri ai acestei familii de proiecte sunt enumerați mai jos.
    • Apache Struts(EN) este un cadru pentru construirea de aplicații Web care urmează arhitectura Model-View-Controller.
    • Apache Shale(EN) este un alt cadru modern pentru construirea de aplicații Web, care este un succesor al Struts și se bazează pe tehnologia JSP (JavaServer Pages). O introducere în Shale poate fi găsită în .
    • Apache Ant este standardul de facto pentru automatizarea procesului de construire al aplicațiilor Java.
    • Instrumentul de compilare Apache Maven(EN) a fost conceput pentru a răspunde nevoilor proiectelor de dezvoltare software de astăzi, care se caracterizează prin colaborarea dinamică între echipele de dezvoltare și dependența de multe componente întreținute independent (vezi ghidul).
    • Apache Tomcat este un container web popular care acceptă Servlet-uri și Java Server Pages (JSP).
    • Proiectul Apache Geronimo(EN) se referă la construirea unui server de aplicații Java EE complet compatibil cu specificațiile, bazat pe tehnologie pură gratuită. Puteți citi mai multe despre Geronimo în acest articol, precum și despre developerWorks, care are o mulțime de conținut grozav.
    • Apache Derby(EN) este un server de baze de date relaționale implementat în întregime în Java. O introducere în Derby este oferită în articol.
  • Eclipse(EN) este o platformă de dezvoltare deschisă și independentă și un set de instrumente de bază pentru crearea de software. Este scris în Java și oferă un cadru de plug-in care facilitează dezvoltarea, integrarea și utilizarea instrumentelor software. IBM este membru fondator al Eclipse.org și este un membru activ al consiliului de conducere și al subcomitetelor proiectului. Puteți citi despre unele tehnologii componente ale platformei Eclipse care vizează crearea de aplicații Java în următoarele materiale:
    • AspectJ(EN) este o extensie de limbaj Java orientată pe aspecte, care poate fi utilizată pentru modularizarea funcționalității end-to-end, cum ar fi înregistrarea în jurnal sau gestionarea excepțiilor.
    • Standard Widget Toolkit(EN) (SWT) este un set de instrumente care vă permite să utilizați capacitățile sistemului de operare pentru a crea elemente de interfață cu utilizatorul într-un mod eficient și portabil.
    • Mylyn(EN) este un sistem puternic de gestionare a locurilor de muncă pentru utilizatorii Eclipse. Ghid detaliat Vezi articole și cunoscută anterior ca „Acegi Security for Spring” este o soluție de securitate puternică și flexibilă pentru aplicațiile de întreprindere construite pe cadrul Spring. Este tratat în detaliu în patru articole din serie.
  • Sun Microsystems a început să lucreze și la , prin lansarea următoarelor proiecte comunitare pe java.net(EN) :
    • OpenJDK

Cum să dezvolți abilitățile de programare Java?

Există două modalități principale de a vă dezvolta abilitățile de programare Java: urmați un curs special de pregătire (cu posibilitatea de certificare) sau învățați Java pe cont propriu, exersând codificare. Cursurile de formare nu numai că îți permit să câștigi experiență de la dezvoltatori calificați, dar îți oferă și posibilitatea de a obține o certificare care poate convinge un potențial angajator că ai abilitățile necesare pentru a rezolva provocările tehnice cu care ne confruntăm. Procedând astfel, veți putea să vă aprofundați cunoștințele în diferite domenii ale Java experimentând pe cont propriu și folosind toate resursele disponibile. Indiferent de calea pe care o alegeți, următoarele resurse vă vor ajuta.

  • Ghiduri și articole
    • developerWorks are o colecție vastă de .
    • Articole din serie și sunt excelente pentru a vă îmbunătăți abilitățile Java.
    • Aplicarea teoriei designului la construirea de aplicații din lumea reală este tratată în articolele din .
    • Dezvoltatorii Java cu experiență prepachetează instrumente pentru depanarea și testarea aplicațiilor lor. DeveloperWorks are mai multe articole din această serie de jocuri în timp real bazate pe platforma Eclipse pentru a învăța programarea Java. Pentru o introducere în CodeRuler, consultați Cucerirea regatelor medievale cu CodeRuler (RO).
  • Cursuri de pregătire tehnică IBM
    • Atenția dumneavoastră este invitată alegere mare cursuri Java online, față în față și multimedia dezvoltate de IBM Global Services.
  • Certificare
    • Puteți susține mai multe examene pentru a obține certificări care vă demonstrează abilitățile de programare Java. Materialele pentru cursurile de certificare pot fi găsite pe site-ul Java Certification(EN).
    • IBM oferă oportunități pentru abilitățile dumneavoastră în tehnologiile Java, cum ar fi crearea de aplicații de întreprindere pentru WebSphere, software Rational, DB2, XML și SOA.
  • Forumuri
    • Moderat de experți cu zeci de ani de experiență în tehnologia Java, acesta este cel mai interactiv mod de a învăța limbajul Java.

Produse și tehnologii IBM pentru dezvoltatorii Java

IBM este unul dintre liderii în aplicarea practică a tehnologiilor Java. Mai jos sunt legături către unele dintre produsele și tehnologiile IBM disponibile pentru dezvoltatorii de aplicații pentru platforma Java.

  • Produse descărcabile gratuit:
    • (Java Developer Kit) este un set de instrumente pentru construirea și testarea applet-urilor și aplicațiilor pentru Java SE și Java ME pe o varietate de sisteme de operare populare, inclusiv Windows, Linux și AIX.
    • (IBM Development Package for Eclipse) este un set de instrumente pentru dezvoltatori neacceptat, bazat pe Eclipse, care vă permite să creați și să rulați aplicații în propriul mediu de dezvoltare gata de fabricație.
    • : Puteți descărca pachete software gratuite Eclipse de la developerWorks, inclusiv produsele simultane Calisto și Europa.
    • este un depozit virtual de tehnologii Java promițătoare dezvoltate de IBM. Acestea includ API-uri, IDE-uri, kituri de dezvoltare, implementări de referință și utilitare. Mai jos sunt link-uri către unele dintre tehnologiile prezentate în alphaWorks.
    • . Acest utilitar ajută la analizarea și generarea de scripturi Ant testabile pentru proiecte de construcție dezvoltate cu Eclipse, Rational și WebSphere IDE pentru platformele Java EE și SCA.
    • (Instrumentul de modelare și analiză a modelelor IBM pentru Java Garbage Collector). Acest utilitar analizează fișierele de urmărire GC detaliate, analizează utilizarea memoriei dinamice (heap) și recomandă setările aplicației pe baza rezultatelor simulării memoriei. (Secure Shell Library for Java) este o implementare ușoară a protocolului SSH-2 dezvoltat de IETF (Internet Engineering Task Force). Oferă autentificare sigură și alte servicii securizate care funcționează într-o rețea nesigură. vă permite să consolidați și să transformați datele, crescând astfel productivitatea, flexibilitatea și productivitatea afacerii dvs. prin accesarea rapidă a informațiilor de care aveți nevoie.

Top articole similare