Pagkakaiba sa pagitan ng String at StringBuffer Class sa Java

May -Akda: Laura McKinney
Petsa Ng Paglikha: 3 Abril 2021
I -Update Ang Petsa: 13 Mayo 2024
Anonim
Pagkakaiba sa pagitan ng String at StringBuffer Class sa Java - Teknolohiya
Pagkakaiba sa pagitan ng String at StringBuffer Class sa Java - Teknolohiya

Nilalaman


Ang String at StringBuffer pareho ay ang mga klase na nagpapatakbo sa mga string. Ang klase ng StringBuffer ay ang klase ng peer ng klase na String. Ang object ng klase ng String ay may takdang haba. Ang bagay ng klase ng StringBuffer ay lumalaki. Ang pangunahing pagkakaiba sa pagitan ng String at StringBuffer ay ang object ng "String" na klase ay hindi mababago. Ang bagay ng klase na "StringBuffer" nababagabag.

  1. Tsart ng paghahambing
  2. Kahulugan
  3. Pangunahing Pagkakaiba
  4. Konklusyon

Tsart ng paghahambing

Batayan para sa PaghahambingStringStringBuffer
PangunahingAng haba ng bagay na String ay naayos.Ang haba ng StringBuffer ay maaaring tumaas.
PagbabagoAng object ng String ay hindi mababago.Ang bagay na StringBuffer ay pinapagana.
PagganapMas mabagal ito sa panahon ng pagkakasundo.Ito ay mas mabilis sa panahon ng pagkakasundo.
MemoryaKumonsumo ng higit pang memorya.Mas kaunting memorya.
ImbakanPatuloy na pool.Pag-alaala ng Heap.


Kahulugan ng String

Ang "String" ay isang klase sa Java. Ang bagay ng klase String ay may takdang haba, at pinakamahalagang tandaan, ang object ng klase ng String ay "hindi mababago". Kapag pinasimulan mo ang bagay na String, hindi mo na mababago muli ang bagay na iyon. Ang object ng klase String ay naka-imbak sa String na palaging pool.

Unawain muna natin na, kapag gumawa ka ng anumang string; lumikha ka ng isang bagay ng string string. Ang string constants din ang mga object string.

System.out.ln ("Kumusta, ito ay Teckpix Solution");

Sa pahayag sa itaas, ang string "Kamusta na ito ay Teckpix Solution" ay isang palaging string.

Ngayon maunawaan natin ang mutility ng String object sa tulong ng isang halimbawa.

String str = bagong String ("Teckpix"); str.concat ("Solusyon"); system.out.ln (str); // output Teckpix

Sa itaas na code, sinubukan kong tapusin ang dalawang mga string na "Teckpix" at "Solution". Tulad ng alam natin sa tuwing nilikha ang isang string na nangangahulugang ang object ng uri String ay nilikha. Samakatuwid, ang string na "Teckpix" ay lumilikha ng isang bagay, na ang sanggunian ay itinalaga sa string object "str". Susunod, sinubukan kong gumawa ng isa pang string na "Solusyon" gamit ang string na "Teckpix" gamit ang pamamaraang "concat ()" ng klase String.


Tulad ng mga bagay na String ay hindi mababago, walang pagbabago ang ginagawa sa string na "Teckpix" at ang bagong string na "Solusyon" ay lumilikha ng isa pang bagay sa string na palaging pool. Ngunit, ang sanggunian sa bagay na "Solusyon" ay hindi nahuli ng anumang bagay samakatuwid ang sanggunian sa object Solution ay nawala kahit na naroroon pa rin ito sa pare-pareho na pool. Tulad ng walang pagbabagong nagagawa sa bagay na Teckpix, kapag ang bagay na str str na kung saan ko itinalaga ang sanggunian ng Teckpix kanina, ay ang string na "Teckpix" lamang.

Kahulugan ng StringBuffer

Ang klase na "StringBuffer" ay ang klase ng peer ng klase na "String". Ang klase StringBuffer ay nagbibigay ng higit na pag-andar sa mga string. Ang bagay ng klase ng StringBuffer ay maaaring i-mutable na ang bagay ay maaaring mabago. Ang haba ng bagay na StringBuffer ay lumalaki. Maaari mong ipasok ang mga character o substrings sa gitna ng string literal na itinalaga sa StringBuffer object o sa dulo nito. Inilaan ng StringBuffer ang puwang para sa 16 karagdagang mga character kapag walang hiniling na tiyak na haba.

Maunawaan natin ang kadalian ng bagay ng StringBuffer sa tulong ng isang halimbawa:

StringBuffer Sb = bagong StringBuffer ("Teckpix"); Sb.append ("Solusyon"); system.out.ln (Sb); // Output Teckpix Solution

Tulad ng alam namin na ang bagay na StringBuffer ay pinapagana. Ang pamamaraan ng append () binabago ang StringBuffer object Sb kung saan sa una, ang sanggunian ng bagay na "Teckpix" ay itinalaga nang mas maaga. Ang pamamaraan ng append () ay nagdadagdag ng bagong string literal na "Solusyon", hanggang sa dulo ng string na literal na "Teckpix". Ngayon kapag tinutukoy ko ang bagay na Sb ito ay ang binagong object object na "Teckpix Solutions".

  1. Ang haba ng String object ay naayos ngunit ang haba ng isang bagay ng StringBuffer ay maaaring tumaas kapag kinakailangan.
  2. Ang hindi tinutukoy na bagay ay hindi mababago. Ang bagay na ito ay hindi ma muling mai-reigned kahit na, ang bagay ng StringBuffer ay maaaring i-mutable.
  3. Ang string ng bagay ay mas mabagal sa pagganap samantalang, ang bagay ng StringBuffer ay mas mabilis.
  4. Ang string ng string ay nakakonsumo ng higit pang memorya samantalang, ang mga bagay ng StringBuffer ay kumonsumo ng mas kaunting memorya.
  5. Ang mga string ng mga string ay naka-imbak sa isang palaging pool samantalang, ang mga bagay ng StringBuffer ay naka-imbak sa memorya ng bunton.

Konklusyon:

Ang mga bagay ng StringBuffer ay nagbibigay ng higit na pag-andar sa mga kuwerdas kumpara sa klase ng String. Samakatuwid, mas mainam na magtrabaho kasama ang StringBuffer sa halip na klase ng String.