Ero C++ ja Java
Keskeinen ero C++ ja Java
- C++ käyttää vain kääntäjää, kun taas Java käyttää sekä kääntäjää että tulkkia.
- C++ tukee sekä operaattorin ylikuormitusta että menetelmän ylikuormitusta Java tukee vain menetelmän ylikuormitusta.
- C++ tukee manuaalista objektien hallintaa uusien ja poistettavien avainsanojen avulla Java on sisäänrakennettu automaattinen jätteenkeräys.
- C++ tukee rakenteita, kun taas Java ei tue rakenteita.
- C++ tukee ammattiliittoja samalla Java ei tue ammattiliittoja.
Mikä on C++ Kieli?
C++ on tietokoneohjelmointikieli, joka sisältää C-ohjelmointikielen ominaisuuden sekä Simula67:n (first object Oriented Language). C++ esitteli luokan ja esineiden käsitteen.
Se kapseloi korkean ja matalan tason kielen ominaisuuksia. Joten se nähdään keskitason kielenä. Aiemmin sitä kutsuttiin "C:ksi luokkien kanssa", koska sillä oli kaikki C-kielen ominaisuudet.
Mikä on Java Kieli?
Java on Sun Microsystemsin kehittämä ohjelmointikieli. Pieni ohjelmistokehitystiimi kehitti tämän kielen. Heidät tunnettiin Vihreänä tiiminä, joka aloitti Java kieli vuonna 1991.
Historia C++
C++ kielen on kehittänyt Bjarne Stroustrup AT & T Bell Laboratoriesissa. Stroustrup oli C:n vahva kannattaja ja Simula67:n ihailija. Hän halusi yhdistää molempien kielten parhaat puolet. Hänen tavoitteenaan oli luoda kieli, joka tukee olio-ohjelmointiominaisuuksia ja säilyttää edelleen C:n voiman. Tämä johti C++.
Historia Java
- Java Kielen nimi oli alun perin OAK. Alun perin se kehitettiin laitteiden ja digisovittimien käsittelyyn. Oak oli valtava epäonnistuminen. Niinpä vuonna 1995 Sun muutti nimen Java ja muokkasi kieltä hyödyntääkseen kasvavaa World Wide Web -kehitysliiketoimintaa.
Later, vuonna 2009, Oracle Corporation osti Sun Microsystemsin ja otti omistukseensa kaksi keskeistä Sun-ohjelmistoomaisuutta: Java ja Solaris.
Ero C++ ja Java
Parametri | C++ | Java |
---|---|---|
Yhteys | Ei tiukkaa suhdetta luokkanimien ja tiedostonimien välillä. sisään C++, otsikkotiedostoja ja toteutustiedostoja käytetään tietylle luokalle. | Tiukka suhde on pakollinen, esim. Luokan PayRoll lähdekoodin on oltava PayRoll.java. |
Syöttömekanismi | I/O-käskyt käyttävät in ja cout, esim. in » x; cout« y; | I/O-syöttömekanismi on melko monimutkainen, koska se lukee tavu kerrallaan (System.in). Tulostus on helppoa, esim. System.out.println(x); |
Kääntäjä ja tulkki | C++ vain tuki kääntäjä | Java tukee sekä kääntäjää että tulkkia |
Yhteensopivuus muiden kielten kanssa | Yhteensopiva C-lähdekoodin kanssa, lukuun ottamatta joitakin poikkeustapauksia. | Ei taaksepäinyhteensopivuutta aiempien kielten kanssa. Syntaksiin vaikuttaa C/C++. |
Kulunvalvonta ja esineiden suojaus | Joustava malli jatkuvalla suojauksella | Hankala malli kannustaa heikkoon kapselointiin. |
Käsite | Kirjoita kerran käännä missä tahansa | Kirjoita kerran ajaa missä tahansa kaikkialla |
Tuki ohjelmointityypille | Sallii sekä prosessuaalisen ohjelmoinnin että olio-ohjelmoinnin. | Tuki olio-ohjelmointimalli. |
liitäntä | Sallii suorat puhelut natiivijärjestelmäkirjastoihin. | Soita vain kautta Java Alkuperäinen käyttöliittymä ja äskettäin Java Native Access |
Muistinhallinta | Pääsy ohjelmoijalle | Järjestelmäohjattu |
Juurihierarkia | C++ sellaista juurihierarkiaa ei ole olemassa. C++ tukee sekä proseduuri- että olioohjelmointia; siksi sitä kutsutaan hybridikieleksi. | Java on puhdas olio-ohjelmointikieli. Se on. Miksi Se seuraa yhden juuren hierarkiaa. |
Parhaat ominaisuudet | C++ tukee oliopohjaisia ominaisuuksia Proseduuriohjelmointiominaisuudet. | Java tukee automaattista jätteenkeräystä. Se ei tue tuhoajia kuten C++ ei. |
Goto-lausunto | C++ on goto lausunto. Tosin ei ole ihanteellista käyttää goto-lausetta. | Java ei ole goto lausuntoa. Avainsanat got ja const on varattu, vaikka niitä ei käytetä. |
Monta perintöä | C++ tarjota useita perintöjä. Avainsanaa virtual käytetään ratkaisemaan ongelmia moniperinnön aikana, jos sellaisia on. | Java ei tarjoa moninkertaista perintöä. |
Soveltamisalan tarkkuuden operaattori | C++ on laajuuden resoluutiooperaattori (: :) jota käytetään määrittämään menetelmä luokan ulkopuolella ja pääsemään globaaliin muuttujaan alueella, jossa on olemassa myös paikallinen muuttuja samalla nimellä. |
Ei mittausalueen resoluutiooperaattoria (: :) in Java. Metodimääritelmien on tapahduttava luokassa, joten laajuusselvitystä ei tarvita. |
Tukimenetelmä | C++ tukee sekä menetelmän ylikuormitusta että operaattorin ylikuormitusta | Java tukee vain menetelmän ylikuormitusta. Se ei tue operaattorin ylikuormitusta. |
siirrettävyys | Lähde on käännettävä alustaa varten. joten koodi ei ole kannettava. | Tavukoodiluokat ovat siirrettävissä alustakohtaisiin JVM:eihin. |
Kirjoita semantiikka | Johdonmukainen primitiivisten ja objektityyppien välillä. | Eri primitiivisille ja objektityypeille. |
kirjastot | Pääasiassa matalan tason toiminnallisuus | Massiiviset, korkean tason palvelut. |
Suorituksenaikaisen virheen tunnistus | Ohjelmoijan vastuu. | Järjestelmän vastuu. |
Toiminnot ja tiedot | Toiminnot ja tiedot voivat olla minkä tahansa luokan ulkopuolisia, käytettävissä ovat globaalit ja nimitila-alueet. | Kaikki toiminnot ja tiedot ovat luokissa; paketin laajuus on saatavilla. |
foorumi | C++ ohjelmat ovat alustariippuvaisia. Ne on käännettävä tietylle alustalle. | Java ohjelmat ovat alustariippumattomia. Java ohjelmat on kirjoitettu Java Virtuaalikone (JVM). Se toimii ilman uudelleenkääntämistä. |
Suorituksenaikaisen virheen tunnistus | In C++, Ohjelmoijan vastuulla on tarkistaa virheet. | Järjestelmän vastuulla on tarkistaa ohjelman virhe. |
Osoitin | C++ tukiosoittimia. | Java tarjoaa vain rajoitetun tuen osoittimille. |
Tuote mallit | Se tukee rakenteita. | Se ei tue rakenteita. |
Ammattiliitot | C++ tukee ammattiliittoja. | Java ei tue ammattiliittoja. |
Kohteen hallinta | C++ tukee manuaalista objektien hallintaa uusien ja poistettavien avainsanojen avulla. | Java on raskas riippuu automaattisesta jätteenkeräyksestä. Se ei tue tuhoajia. |