Fluxuri Java: crearea și completarea

Java este un limbaj de programare la nivel înalt dezvoltat de Sun Microsystems. Inițial a fost creat pentru a dezvolta programe pentru set-top box-uri și dispozitive portabile, dar mai târziu a devenit un limbaj popular și solicitat pentru crearea de aplicații web. Oracle a achiziționat Sun Microsystems în ianuarie 2010, astfel încât Java este acum suportat și distribuit de Oracle.

Java utilizează un model de programare orientat pe obiect și poate fi utilizat pentru a crea aplicații care pot rula pe un singur computer sau pot fi distribuite între servere și clienți din rețea. Acesta poate fi, de asemenea, utilizat pentru a crea o aplicație mică sau un modul de aplicație pentru a fi folosit ca parte a unei pagini Web.java streams

avantaje

Sintaxa Java este similară cu C ++, dar este un limbaj de programare strict orientat pe obiect. De exemplu, majoritatea programelor Java conțin clase care sunt folosite pentru a defini obiecte și metode. Metodele, la rândul lor, sunt atribuite unor clase individuale. Java este, de asemenea, cunoscut ca un sistem de semnare mai riguros decât C ++. Aceasta înseamnă că variabilele și funcțiile trebuie să fie definite în mod explicit, astfel încât codul sursă să poată detecta mai ușor și mai rapid decât alte limbi erori sau "excepții". Acest lucru limitează, de asemenea, alte tipuri de erori care pot fi cauzate de variabilele nedefinite sau de tipurile neasignate.

Spre deosebire de fișierele Windows executabile (fișiere .EXE) sau de aplicațiile Macintosh (fișiere .APP), programele Java nu sunt pornite direct de sistemul de operare. În schimb, datele sunt interpretate de o mașină virtuală Java sau JVM care rulează pe mai multe platforme. Toate programele Java sunt multi-platforme și pot rula pe diferite platforme, inclusiv computere Macintosh, Windows și Unix. JVM trebuie să fie instalat pentru a rula aplicații sau aplicații. Disponibil ca descărcare gratuită.

Elemente și principii

Succesul și popularitatea Java au contribuit la caracteristicile limbajului. Vom lista principalele dintre ele:

  • Programele create în Java, au calitatea de toleranță în rețea. Codul sursă este compilat în așa fel încât limbajul de programare este codul de octet, care poate fi rulat oriunde în rețeaua de la server sau client cu o mașină virtuală Java (JVM). JVM interpretează bytecode în cod, care va rula pe echipamente de calculator. Dimpotrivă, majoritatea limbaje de programare, cum ar fi COBOL, C ++, Visual Basic sau Smalltalk, compila codul în binar. Fișierele binare sunt independente de platformă, astfel încât un program scris pentru un calculator care rulează Windows pe-based Intel, nu poate rula Mac, Linux mainframe-mașină sau IBM. JVM include un compilator opțional Just-in-time (JIT), care compilează dinamic bytecode în cod executabil ca o interpretare alternativă a unui cod de instrucțiune octet la un moment dat. În multe cazuri, dinamica compilare JIT mai repede decât interpretarea unei mașini virtuale.

  • Cod Fiabilitate. Spre deosebire de programele scrise în C ++ și în alte limbi, obiectele Java nu conțin referințe la date externe sau alte obiecte cunoscute. Acest lucru asigură faptul că ghidul nu conține adresa de stocare a datelor într-o altă aplicație sau sistemul de operare în sine, motiv pentru care sistemul de operare a programului și poate termina sau de a iniția o defecțiune. JVM efectuează o serie de verificări pe fiecare obiect pentru a asigura integritatea.

  • Java este un limbaj orientat pe obiecte. Un obiect poate profita de faptul că face parte dintr-o clasă de obiecte și moștenește un cod comun pentru clasă. Această metodă poate fi considerată drept una dintre posibilitățile sau comportamentul obiectului. Metoda orientată spre obiect este relativ obișnuită în peisajul modern de programare, dar încă din 1996, doar câteva limbi au aplicat în mod eficient concepte orientate pe obiecte și modele de design.

  • Flexibilitatea aplicațiilor. Apletul Java are toate caracteristicile destinate lansării rapide.

  • Java este ușor de învățat. Sintaxa limbii este similară cu C ++. Dacă dezvoltatorul deține limbi C / C ++, învățarea acestei limbi nu va fi dificilă.

  • O concepție greșită este că există o relație între Java și jаvascript. Aceste limbi au o sintaxă similară, dar din punct de vedere constructiv ele sunt structuri diferite.

crearea unui flux de javaplatformă

Există trei platforme-cheie pe care programatorii dezvoltă aplicații Java:

  • Java SE - aplicațiile simple independente sunt dezvoltate folosind Java Standard Edition. Anterior cunoscut sub numele de J2SE, Java SE oferă toate API-urile necesare dezvoltării aplicațiilor desktop tradiționale.

  • Java EE - Java Enterprise Edition, cunoscut anterior ca J2EE, oferă posibilitatea de a crea componente de pe partea de server care pot răspunde la ciclul Web de solicitare-răspuns. Acest aranjament vă permite să creați programe Java care pot interacționa cu clienții Internet, inclusiv browsere web, clienți bazați pe CORBA și chiar servicii web bazate pe REST și SOAP.

  • Java ME - Java oferă, de asemenea, o platformă ușoară pentru dezvoltarea mobilă, cunoscut sub numele de Java Micro Edition, cunoscut anterior ca J2ME. Java ME sa stabilit ca o platformă foarte populară pentru dezvoltarea dispozitivelor încorporate, dar sa străduit să reușească în arena de dezvoltare a smartphone-urilor. În ceea ce privește dezvoltarea de smartphone-uri, Android a devenit o platformă de dezvoltare mobilă.

Exemple de utilizare

Folosind diferitele componente furnizate de Java EE, dezvoltatorii pot scrie cu ușurință programe care utilizează modele de design populare de software și cele mai bune practici consecvente universal.

Cadrele pentru Struts, Spring și JavaServer Faces utilizează servletul Java pentru a implementa modelul de design al controlerului frontal pentru a centraliza interogările.fluxuri de intrare java

Între timp, cea mai mare parte a ecosistemului Java este un număr mare de proiecte open source, platforme software și API care au creat o comunitate care folosește limba. De exemplu, Fundația Apache găzduiește diverse proiecte scrise folosind Java, printre care:

  • Un cadru simplu de înregistrare pentru Java (SLF4J).

  • Platforme mari de procesare a datelor.

  • Platforme de integrare, cum ar fi Apache Camel, Axa Apache și CXF pentru dezvoltarea de servicii Web RESTful.

  • Platforme pentru dezvoltarea microservicii.

Alte companii vor încerca să traducă mediile Java EE în cloud. Pe măsură ce dezvoltatorii creează servicii cloud, capacitatea de a scala rapid aceste servicii este o problemă cheie, precum și capacitatea de a lucra împreună în cloud.

critică

Sintaxa Java este deseori condamnată pentru verbozitate. Settoarele și preluătorii redundanți, tastând puternic, fac programele Java umflate. Ca răspuns, mai multe limbi periferice au apărut pentru a rezolva această problemă, inclusiv Groovy, care a început rapid să câștige popularitate.

Un alt dezavantaj este că programele Java nu pot să scadă liniar în lumea computerelor de înaltă performanță. Datorită faptului că Java se referă la obiecte din interiorul, operațiile complexe și paralele bazate pe listă pot conduce JVM să caute soluții. Limba Scala rezolvă multe dintre deficiențele limbajului Java, care reduc scalabilitatea acestuia.exemple java de fire

Java Streams

Streams este o paradigmă de programare inventată de J. Paul Rodker-Morrison la sfârșitul anilor 1960, care utilizează conceptul de "prelucrare a datelor" pentru proiectarea și crearea de aplicații. Fluxul Java definește aplicațiile ca rețele de proces care comunică cu blocuri de date (pachete de informații) care călătoresc prin conexiuni predefinite. Aceste procese pot fi conectate pe o perioadă nedeterminată pentru a forma aplicații fără a schimba conținutul lor intern. Astfel, fluxul este orientat spre componentă.

Crearea unui flux Java este o formă specifică de programare a unui flux de date. Se bazează pe tampoane limitate, pachete de informații cu durate de viață specifice, porturi denumite și definiții separate ale conexiunilor.

Procesele interacționează prin conexiunile accesate prin porturi. Legăturile sunt, de obicei, implementate prin tampoane limitate. Mărimea tamponului sau numărul maxim de pachete pe care o coadă poate conține este numită lățimea de bandă a conexiunii. Unele implementări vă permit să stabiliți conexiuni cu o capacitate de 0, ceea ce înseamnă că adresele IP ale datelor sunt transferate imediat între procesele de trimitere și primire.

definiție

Procesarea de fluxuri tratează o aplicație ca un set de procese ("cutii negre") care comunică prin conexiuni la care procesele sunt accesate folosind porturile. Un proces este o instanță a unei componente care funcționează concomitent cu alte procese, inclusiv cu alte instanțe ale aceleiași componente.



O abordare comună a programării în flux este de a conceptualiza programul ca o serie de fire și sub-fluxuri care curg printr-o serie de procese conexe. Paralelismul se realizează prin limitarea comunicării dintre procesele care utilizează fluxurile de pachete de informații atunci când se termină firul Java.java fluxuri de date

Programarea vizuală în acest context implică conectarea componentelor textului sau a graficelor într-o vizualizare bidimensională care utilizează capacitatea de a recunoaște imaginile umane și stilurile vizuale ale gândirii. Programarea de texte este încă disponibilă la nivel de componentă și pentru aplicații simple - la nivel de rețea.

Principalele caracteristici sunt reutilizarea codului, testabilitatea și paralelismul.

introducere

Programarea Streaming determină aplicarea cu ajutorul „fabrica de date“ metafora. Cererea nu este considerată ca un singur proces de serie, care începe la un moment dat și apoi face o operație pe unitatea de timp pentru finalizare, și ca o rețea de procese asincrone de comunicare prin fluxuri de blocuri de date structurate, numite pachete de informații (IP). Rețeaua este determinată de procese externe, ca o listă de compuși care sunt interpretate de o bucată de software, denumit în mod obișnuit ca planificator.

Procesele interacționează printr-o conexiune cu o capacitate fixă. Conexiunea este conectată la proces folosind un port care are un nume care este consecvent între codul de proces și definiția rețelei. Același cod poate executa mai multe procese. În orice moment, această adresă IP poate aparține unui singur proces sau poate fi în calea dintre două procese. Porturile pot fi simple sau masive.

Deoarece procesele de fire Java pot continua să funcționeze atât timp cât doriți cu date de intrare și ieșire, aplicațiile care utilizează această metodă lucrează de obicei mai puțin timp decât programele normale și utilizează în mod optim toate procesoarele de pe mașină.

rețea

Definiția unei rețele este de obicei schematică și este transformată într-o listă de conexiuni într-o limbă sau o notație de nivel inferior. Java I / O este adesea limbajul programării vizuale la acest nivel. Definițiile mai complexe ale rețelelor au o structură ierarhică, care este creată din subrețele cu legături flexibile de conectare. Alte exemple de fire Java se bazează pe limbi de programare mai tradiționale. În special, RaftLib utilizează operatori de tip C ++ și iostream pentru a executa un flux Java.

Descrierea procesului

Lucrul cu firele Java demonstrează legarea datelor ca cea mai slabă legătură dintre componente. Conceptul de comunicare liberă, la rândul său, este legat de conceptul de arhitecturi orientate spre servicii. Bazinul de fire Java corespunde unui număr de criterii pentru o astfel de arhitectură.nou flux java

Metoda streaming promovează un stil de specificare funcțional la nivel înalt care simplifică dezvoltarea condițiilor ipotetice pentru comportamentul sistemului. Un exemplu de fluxuri Java este modelul de mișcare a datelor distribuite pentru crearea și analiza constructivă a semanticii protocoalelor distribuite.

caracteristicile

Programarea în flux are următoarele proprietăți unice:

  • Structurale: diagramele și componentele au o structură clară (interfață, stare și comportament).

  • Designul sistemului este împărțit în două straturi: grafic (de obicei vizual) și componente (de obicei text). În ceea ce privește arhitectura software, sunt încurajate diferite roluri. Ca exemplu: Firele Java sunt controlate de funcțiile de rol "Graph Designer" și "Component-Implementer".

  • Principiul paralelismului: fiecare proces este executat în firul său, în programul însoțitor sau într-un alt mediu.

  • Activarea - din perspectiva designerului în ceea ce privește grafica de proces sunt realizate simultan, și planificarea caracteristica software vă permite să aloce timp CPU și să gestioneze alte servicii necesare pentru a sprijini această funcționalitate.

  • Pachetele de informații când se creează un flux Java au un ciclu de viață și aparțin unui singur proces.

  • Componentele pot avea mai multe intrări sau ieșiri.

  • Aplicația este un grafic, nu un copac. Sunt permise conexiunile ciclice (buclele de feedback).

  • Conexiunile pot fi combinate într-un grafic, ceea ce înseamnă că pachetele din arce diferite ajung la portul de intrare. Conexiunile ar trebui separate prin componenta datorită varietății strategiilor de partiționare și a regulilor de proprietate IP.

  • Conexiunile sunt implementate ca tampoane limitate cu un volum de la 0 la un număr limitat de implementare.

exemple

Componentele fluxurilor de date Java formează deseori perechi complementare. În logica obișnuită, programatorul descoperă rapid că nici structurile de intrare și ieșiri nu pot fi folosite pentru a controla ierarhia apelurilor de flux de control. În fluxurile de intrare Java, descrierea problemei oferă o soluție.

"Cuvintele" sunt menționate explicit în descrierea problemei, astfel încât dezvoltatorul ar trebui să le considere pachete de informații (IP). În fluxurile de intrare Java, nu există o singură ierarhie a apelurilor, deci programatorul nu are nevoie să prioritizeze.

Atunci când se creează un flux Java, pachetele de informații sursă (IIP) pot fi utilizate pentru a specifica informații parametrice, cum ar fi lungimea dorită a înregistrării de ieșire sau a numelor de fișiere. IIP sunt blocuri de date asociate cu portul din definiția rețelei, care devin adresele IP "normale" atunci când parametrul "primit" este emis pentru portul corespunzător.lucrul cu fluxurile de java

Actualizare lot

Acest tip de program include transferul fișierului de informații (modificări, adăugiri și ștergeri) la fișierul principal și crearea fișierului principal actualizat și a unuia sau mai multor rapoarte. Un flux Java nou este destul de greu de codat utilizând codul procedural sincron, deoarece două fluxuri de intrare (uneori mai multe) trebuie sincronizate.

Într-o arhitectură de streaming, componenta reutilizabilă simplifică foarte mult scrierea acestui tip de aplicație, deoarece acest instrument combină două fire și introduce date IP pentru a indica nivelurile de grupare. Să presupunem că una sau două flux Java compus din adrese IP cu valori cheie 1, 2 și 3, iar al doilea flux de adrese IP are valori cheie 11, 12, 21, 31, 32, 33 și 41, în cazul în care prima cifră corespunde valorilor cheia master. Folosind parantezele pentru a reprezenta adresele IP, fluxul de ieșire colectat va arăta astfel: (m1 d11 d12) (m2 d21) (m3 d31 d32d33) (d41).

Procesele de multiplexare

Programele de streaming susțin multiplexarea proceselor. Deoarece componentele sunt doar pentru citire, orice număr de instanțe ale acestei componente ("procese") poate fi efectuat asincron unul cu altul.

Când computerele aveau un procesor, a fost util când au continuat multe operații Java I / O. Acum că mașinile au mai multe procesoare, acest lucru devine un instrument foarte util. Firele din Thread-ul Java funcționează pe principiul multitasking-ului.

DrawFBP ca instrument

Programarea în flux este o paradigmă în care programele sunt create din componente care au un set de porturi specifice de intrare și ieșire. Aceste porturi sunt conectate împreună pentru a crea un grafic care definește logica și fluxul de date. DrawFBP este o aplicație desktop care poate defini programe pe bază de fire pentru Java și C #. Aceasta este cea mai funcțională interfață de utilizator pentru programarea în flux, dar este oarecum limitată de capacitățile firewall-ului Java și de imposibilitatea introspecției informațiilor disponibile prin interfața de descărcare a componentelor.

O parte esențială a interfeței cu utilizatorul este de a simplifica crearea și înțelegerea programelor bazate pe metoda fluxului.

Distribuiți pe rețelele sociale:

înrudit
Cum se actualizează Java pe sistemele de operare Linux și Windows?Cum se actualizează Java pe sistemele de operare Linux și Windows?
Primul program Java este Hello WorldPrimul program Java este Hello World
Ce este jаvascript? Istoria aspectului și principalele caracteristiciCe este jаvascript? Istoria aspectului și principalele caracteristici
Limbaj de programare JavaLimbaj de programare Java
Cum și de ce trebuie să instalez Java pe calculatorul meu?Cum și de ce trebuie să instalez Java pe calculatorul meu?
Țigarete Java: descriere și tipuriȚigarete Java: descriere și tipuri
Lista limbajelor de programare. Limbi de programare de nivel scăzut și înaltLista limbajelor de programare. Limbi de programare de nivel scăzut și înalt
Mijloacele Java de șiruri de caractere. Sortarea unui matrice în Java. Dispozitiv Java de două…Mijloacele Java de șiruri de caractere. Sortarea unui matrice în Java. Dispozitiv Java de două…
Java: expresii regulate, caractere specialeJava: expresii regulate, caractere speciale
Cum de a învăța programarea de la zero în limbi de programare populareCum de a învăța programarea de la zero în limbi de programare populare
» » Fluxuri Java: crearea și completarea