Mis vahe on Java-s muutuvatel ja muutumatutel?



See artikkel Java-s muutuvatest ja muutumatutest on põhjalik juhend nende vaheliste erinevuste kohta ning käsitleb ka seda, miks java stringid on muutumatud.

Java on üks populaarsemaid pakub erinevaid kontseptsioone rakenduste loomiseks ja üks selline mõiste on Java-s muudetav ja muutumatu. Noh, see kontseptsioon tugineb väljade muudatuste tegemisele pärast objekti loomist ja hõlbustab seega selle programmeerimist . Niisiis, selles Java muutuvat ja muutumatut artiklit käsitlen järgmisi teemasid:

Mis on muutuv objekt?





Objekte, milles saate väljade ja olekute muutmist pärast objekti loomist, nimetatakse muudetavateks objektideks. Näide : java.util.Date, StringBuilder ja jne.

Mis on muutumatu objekt?



The objektid milles te ei saa objekti loomisel midagi muuta, nimetatakse muutumatuteks objektideks. Näide : Karbis olevad primitiivsed objektid nagu täisarv, pikk jms.

Niisiis, nüüd, kui teate, mis on Java-s muutlik ja muutumatu, laske meil edasi liikuda ja näha nende kahe erinevusi.

Erinevus muutuvate ja muutumatute objektide vahel



Javas olevate muutuvate ja muutumatute objektide erinevuste kohta saate viidata järgmisele tabelile.

Muutuv Muutumatu
Välja saab pärast objekti loomist muutaVälju ei saa pärast objekti loomist muuta
Üldiselt pakub välja väärtuse muutmise meetoditEi oma välja väärtuse muutmiseks ühtegi meetodit
Omab Getteri ja Setteri meetodeidKas ainult Getteri meetodit
Näide: StringBuilder, java.util.DateNäide: stringid, karbiga ürgsed objektid nagu täisarv, pikk jms

Nüüd, kui teate muutuvate ja muutumatute objektide erinevusi, uurime, kuidas neid luua klassides.

Kuidas luua muutuvat klassi?

Java-s muutuva klassi loomiseks peate veenduma, et järgmised nõuded oleksid täidetud:

teenuse piletisüsteemi koolitus
  1. Esitage meetod välja väärtuste muutmiseks
  2. Getteri ja Setteri meetod

Mõelge järgmisele koodile:

pakett edureka avaliku klassi näide {private String Coursename example (String Coursename) {this.coursename = Coursename} public String getName () {return Coursename} public void setName (String Coursename) {this.coursename = Coursename} public static void main (String [] args) {näide obj = uus näide ('masinõpe') System.out.println (obj.getName ()) // värskendage nime, see objekt on muutuv obj.setName ('masinõppe meistrid') süsteem. out.println (obj.getName ())}}

Näete järgmist väljundit:

Muutuvobjekti väljund - Java-Edurekas muutuv ja muutumatu

Nüüd, kui teate, kuidas luua muutuvat klassi, uurime järgmisena selles artiklis, kuidas luua muutumatut klassi.

Kuidas luua muutumatu klass?

Java-s muutumatu klassi loomiseks peate veenduma, et järgmised nõuded oleksid täidetud:

  1. Klass tuleks deklareerida kui lõplik nii et seda ei saa pikendada.
  2. Kõik väljad tuleks muuta privaatseks, nii et otsene juurdepääs pole lubatud
  3. Setter-meetodeid pole
  4. Tehke kõik muudetavad väljad lõplikuks, et neid saaks määrata ainult üks kord.
pakett edureka public class exampleimmutable {private final String Coursename exampleimmutable (final String Coursename) {this.coursename = Coursename} public final String getName () {return Coursename} public static void main (String [] args) {näide obj = uus näide ( 'Machine Learning') System.out.println (obj.getName ())}}

Näete järgmist väljundit:

Olgu, nii et nüüd, kui teate muutuvatest ja muutumatutest objektidest, lubage mul teile öelda, et stringid on Java-s muutumatud. Nüüd olen kindel, et see võis tekitada küsimuse, miks on stringid Java-s muutmatud. Nii et järgmisena selles artiklis vaatleme sama.

Miks on stringid Java-s muutumatud?

Java kasutab mõisteid . Niisiis, kui kaaluda näidet, kus teil on palju viitemuutujaid, mis viitavad ühele objektile, siis isegi kui üks võrdlusmuutuja muudab objekt , see mõjutab automaatselt kõiki teisi võrdlusmuutujaid. Samuti vastavalt Tõhus Java ,4. peatüki, lk 73, 2. väljaanne, on järgmised põhjused muutmatute klasside kasutamiseks:

  • Muutumatud objektid on lihtsad
  • Need objektid ei vaja sünkroonimist ja on oma olemuselt niidikindlad
  • Muutumatud objektid muudavad teiste objektide jaoks head ehitusplokid

Kui ma pean teid ühe näitega selgitama,

Oletame, et teil on muutuja proovivõtu , mis salvestab stringi „ Masinõpe “. Kui liitate selle stringi teise stringiga ' Meistrid ', siis loodud objekt Masinõpe ”Ei muutu. Selle asemel luuakse uus objekt Masinõppe meistrid “. Vaadake allolevat pilti:

Nagu ülaltoodud pildil näha, on proovivõtu referentsmuutuja viitab masinõppele, kuid mitte teisele stringile isegi pärast kahe objekti loomist. Sellega jõuame selle Java-i muutuva ja muutumatu teemalise artiklini. Ma loodan, et teie kutid on kõigis aspektides, mida ma eespool arutlesin, selge.

Nüüd, kui olete Java põhitõdedest aru saanud, vaadake järgmist Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi “Muutuvad ja muutumatud Java-s” kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.