JavaRush /ื‘ืœื•ื’ Java /Random-HE /ืจืžื” 29. ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช ืจืื™ื•ืŸ ื‘ื ื•ืฉื ื”ืจืžื”
DefNeo
ืจึธืžึธื”

ืจืžื” 29. ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช ืจืื™ื•ืŸ ื‘ื ื•ืฉื ื”ืจืžื”

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ืจืžื” 29. ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช ืจืื™ื•ืŸ ื‘ื ื•ืฉื ืจืžื” - 1
  1. ืžื” ืงืจื” autoboxing?

    ืื’ืจื•ืฃ ืื•ื˜ื•ืžื˜ื™ ื”ื•ื ืžื ื’ื ื•ืŸ ืœืืชื—ื•ืœ ืžืจื•ืžื– ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื ืฉืœ ืžื—ืœืงื•ืช ืžืขื˜ืคืช (ื‘ื™ื™ื˜, ืงืฆืจ, ืชื•ื•ื™ื, ืžืกืคืจ ืฉืœื, ืืจื•ืš, ืฆืฃ, ื›ืคื•ืœ) ืขื ื”ืขืจื›ื™ื ืฉืœ ื”ืกื•ื’ื™ื ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ื”ืžืงื•ืจื™ื™ื ื”ืžืชืื™ืžื™ื ืœื”ื (ื‘ื”ืชืืžื”, , , , , , , , byte) short, charืœืœื int. ืฉื™ืžื•ืฉ longืžืคื•ืจืฉ ื‘ื‘ื ืื™ ื”ืžื—ืœืงื”.floatdouble

    ืื•ื˜ื•ื‘ื•ืงืก ืžืชืจื—ืฉ ื›ืืฉืจ ืคืจื™ืžื™ื˜ื™ื‘ื™ ืžื•ืงืฆื” ื™ืฉื™ืจื•ืช ืœืžื—ืœืงืช ืขื˜ื™ืคื” (ื‘ืืžืฆืขื•ืช =ื”ืื•ืคืจื˜ื•ืจ " "), ืื• ื›ืืฉืจ ืคืจื™ืžื™ื˜ื™ื‘ื™ ืžื•ืขื‘ืจ ืœืคืจืžื˜ืจื™ื ืฉืœ ืฉื™ื˜ื” (ื›ื’ื•ืŸ "ืžื—ืœืงื” ืขื˜ื™ืคื”"). ืฉื ื™ ืžืฉืชื ื™ื ืžืกื•ื’ื™ื ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ื•ืงื‘ื•ืขื™ ื–ืžืŸ ืงื•ืžืคื™ืœืฆื™ื” (ืžื™ืœื•ืœื™ื™ื ื• final-ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื) ื ื™ืชื ื™ื ืœืืจื™ื–ื” ืื•ื˜ื•ืžื˜ื™ืช ืœ"ืžื—ืœืงื•ืช ืขื˜ื™ืคื”". ื‘ืžืงืจื” ื–ื”, ืžื™ืœื•ืœื™ื•ืช ื—ื™ื™ื‘ื•ืช ืœื”ื™ื•ืช ื ื›ื•ื ื•ืช ืชื—ื‘ื™ืจื™ืช ื›ื“ื™ ืœืืชื—ืœ ืžืฉืชื ื” ืžื”ืกื•ื’ ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ ื”ืžืงื•ืจื™.

    ืื—ืกื•ืŸ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืžืฉืชื ื™ื ืžืกื•ื’ื™ื ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ื“ื•ืจืฉ ื”ืชืืžื” ืžื“ื•ื™ืงืช ืœืกื•ื’ ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ ื”ืžืงื•ืจื™ - ืกื•ื’ "ืžื—ืœืงืช ื”ืขื˜ื™ืคื”". ืœื“ื•ื’ืžื”, ื ื™ืกื™ื•ืŸ ืœืชืจื’ื ืื•ื˜ื•ืžื˜ื™ืช ืžืฉืชื ื” ืžืกื•ื’ byteืœืชื•ืš Short, ืžื‘ืœื™ ืœื‘ืฆืข ืชื—ื™ืœื” cast ืžืคื•ืจืฉ, byte->shortื™ื’ืจื•ื ืœืฉื’ื™ืืช ืงื•ืžืคื™ืœืฆื™ื”.

    ืื•ื˜ื•ื‘ื•ืงืก ืฉืœ ืงื‘ื•ืขื™ ืกื•ื’ ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ืžืืคืฉืจ ื’ื‘ื•ืœื•ืช ื”ืชืืžื” ืจื—ื‘ื™ื ื™ื•ืชืจ. ื‘ืžืงืจื” ื–ื”, ื”ืžื”ื“ืจ ืžืกื•ื’ืœ ืœื‘ืฆืข ื”ืจื—ื‘ื”/ืฆืžืฆื•ื ืžืจื•ืžื–ื™ื ืฉืœ ื˜ื™ืคื•ืกื™ื ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ืžืจืืฉ. ื”ืฉื™ื ื•ื™ ืžืชืจื—ืฉ ื‘ืฉื ื™ ืฉืœื‘ื™ื:

    1. ื”ืจื—ื‘ื” ืžืจื•ืžื–ืช (ืฆืžืฆื•ื) ืฉืœ ื”ืกื•ื’ ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ ื”ืžืงื•ืจื™ ืœืกื•ื’ ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ ื”ืžืชืื™ื ืœืžื—ืœืงืช ื”-wrapper (ืœื”ืžืจื” int->Byte, ืจืืฉื™ืช ื”ืžื”ื“ืจ ืžืฆื˜ืžืฆื ื‘ืื•ืคืŸ ืžืจื•ืžื– intืœ- byte)

    2. ืืจื™ื–ื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ืคืจื™ืžื™ื˜ื™ื‘ื™ ืœ"ืžื—ืœืงืช ื”ืขื˜ื™ืคื”" ื”ืžืชืื™ืžื” (ื”ืžื”ื“ืจ ืื•ืจื– ืื•ื˜ื•ืžื˜ื™ืช byte->Byte). ืขื ื–ืืช, ื‘ืžืงืจื” ื–ื” ื™ืฉื ืŸ ืฉืชื™ ื”ื’ื‘ืœื•ืช ื ื•ืกืคื•ืช:

      • ื”ืงืฆืืช ืคืจื™ืžื™ื˜ื™ื‘ื™ ืœ"ืขื˜ื™ืคื”" ื™ื›ื•ืœื” ืœื”ืชื‘ืฆืข ืจืง ื‘ืืžืฆืขื•ืช =ื”ืื•ืคืจื˜ื•ืจ " " (ืœื ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืคืจื™ืžื™ื˜ื™ื‘ื™ ื›ื–ื” ืœืคืจืžื˜ืจื™ื ืฉืœ ืฉื™ื˜ื” ืœืœื ืœื™ื”ื•ืง ืกื•ื’ ืžืคื•ืจืฉ)

      • ืกื•ื’ ื”ืื•ืคืจื ื“ ื”ืฉืžืืœื™ ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช ื™ืฉืŸ ื™ื•ืชืจ ืž Character, ืกื•ื’ ื”ืื•ืคืจื ื“ ื”ื™ืžื ื™ ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช ื™ืฉืŸ ื™ื•ืชืจ ืž int, (ืžื•ืชืจืช ื”ืจื—ื‘ื”/ื”ืชื›ื•ื•ืฆื•ืช byte <-> short, byte <-> char, short <-> char
        ื•ืจืง ืฆืžืฆื•ื byte <- int, short <- int, char <- int, ื›ืœ ืฉืืจ ื”ืืคืฉืจื•ื™ื•ืช ื“ื•ืจืฉื•ืช ืœื™ื”ื•ืง ืกื•ื’ ืžืคื•ืจืฉ)

    ืชื›ื•ื ื” ื ื•ืกืคืช ืฉืœ "ืžื—ืœืงื•ืช ืขื˜ื™ืคื”" ืฉืœ ืžืกืคืจื™ื ืฉืœืžื™ื ืฉื ื•ืฆืจื• ืขืœ ื™ื“ื™ ืงื‘ื•ืขื™ ืื’ืจื•ืฃ ืื•ื˜ื•ืžื˜ื™ ื‘ื˜ื•ื•ื— -128 +127 ื”ื™ื ืฉื”ื ื ืฉืžืจื™ื ื‘ืžื˜ืžื•ืŸ ืขืœ ื™ื“ื™ ื”-JVM. ืœื›ืŸ, ืขื˜ื™ืคื•ืช ื›ืืœื” ืขื ืื•ืชื ืขืจื›ื™ื ื™ื”ื™ื• ื”ืคื ื™ื•ืช ืœืื•ื‘ื™ื™ืงื˜ ืื—ื“.

  2. ืœืžื” ืžืฉืชืžืฉื™ื ื‘ื• autoboxing?

    ืืฆื˜ื˜ ืืช ื”ื”ืจืฆืื”:

    ื›ื–ื›ื•ืจ, ืœื’'ืื•ื•ื” ื™ืฉ ืฉื ื™ ื˜ื™ืคื•ืกื™ื ืฉืขื‘ืจื• ื‘ื™ืจื•ืฉื” ืžื”ืžื—ืœืงื” Objectื•ืกื•ื’ื™ื ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื. ืื‘ืœ, ื›ืคื™ ืฉื”ืชื‘ืจืจ, ื“ื‘ืจ ื ื•ื— ื›ืžื• ืื•ืกืคื™ื ื•ื’ื ืจื™ื•ืช ื™ื›ื•ืœ ืœืขื‘ื•ื“ ืจืง ืขื ืกื•ื’ื™ื ืฉื”ื•ืขื‘ืจื• ื‘ื™ืจื•ืฉื” Object.

  3. ะะปัŒั‚ะตั€ะฝะฐั‚ะธะฒั‹ autoboxing?

    ะะต ะฝะฐัˆะตะป ะพั‚ะฒะตั‚ะฐ, ะฝะพ ะทะฐะฟะพัั‚ะธะป ะฝะฐ StackOverFlow.

    ะ˜ัั…ะพะดั ะธะท ัั‚ะพะน ะดะธัะบัƒััะธะธ, ะฟะพะปัƒั‡ะฐะตั‚ัั, ั‡ั‚ะพ ะฐะปัŒั‚ะตั€ะฝะฐั‚ะธะฒะฐ autoboxing`ัƒ ัั‚ะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะฟั€ะธะผะธั‚ะธะฒะฝั‹ั… ั‚ะธะฟะพะฒ, ั‚ะฐะบ How ะธัะฟะพะปัŒะทะพะฒะฝะธะต autoboxing`a ัะฝะธะถะฐะตั‚ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ัŒ. ะ’ั‹ะฒะพะด: ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ autoboxing ั‚ะพะปัŒะบะพ ั‚ะฐะผ ะณะดะต ัั‚ะพ ะฝะตะพะฑั…ะพะดะธะผะพ.

    ะะฐะฟะธัะฐะฝะฐ ัั‚ะฐั‚ัŒั ะฟั€ะพ Autoboxing: Autoboxing: Traps and Advantages

  4. ะขะธะฟั‹-ะพะฑะตั€ั‚ะบะธ ะดะปั ะฟั€ะธะผะธั‚ะธะฒะฝั‹ั… ั‚ะธะฟะพะฒ mutable or immutable?

    Immutable, ั‚ะฐะบ How ะฟั€ะธะผะธั‚ะธะฒะฝั‹ะต an objectั‹ ั‚ะพะถะต immutable. Whatะฑั‹ ั€ะฐะฑะพั‚ะฐั‚ัŒ How ั Mutable ั‚ะธะฟะพะผ ะตัั‚ัŒ ะบะปะฐัั MutableInteger, ะธ.ั‚.ะด.

  5. ะšะฐะบ ะฟั€ะธะผะธั‚ะธะฒะฝั‹ะต ั‚ะธะฟั‹ ะฟั€ะธะฒะพะดัั‚ัั ะบ ะฝะตะฟั€ะธะผะธั‚ะธะฒะฝั‹ะผ ะฐะฝะฐะปะพะณะฐะผ?

    ะะฐ ัั‚ะพั‚ ะธ ะฟะพัะปะตะดัƒัŽั‰ะธะน ะฒะพะฟั€ะพัั‹ ั…ะพั€ะพัˆะพ ะพั‚ะฒะตั‡ะฐะตั‚ ะฒะพั‚ ัั‚ะฐ ัั‚ะฐั‚ัŒั: ะะฒั‚ะพัƒะฟะฐะบะพะฒะบะฐ ะธ ั€ะฐัะฟะฐะบะพะฒะบะฐ ะฒ Java

    ะญั‚ะพ ะทะฐะบะปัŽั‡ะตะฝะธะต ะธะท ะฝะตะต: ะฐะฒั‚ะพัƒะฟะฐะบะพะฒะบะฐ ัะฒะปัะตั‚ัั ะผะตั…ะฐะฝะธะทะผะพะผ ะดะปั ัะบั€ั‹ั‚ะพะณะพ ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐะฝะธั ะฟั€ะธะผะธั‚ะธะฒะฝั‹ั… ั‚ะธะฟะพะฒ ะดะฐะฝะฝั‹ั… ะฒ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะธะต ะบะปะฐััั‹-ะพะฑะพะปะพั‡ะบะธ (an objectั‹). ะšะพะผะฟะธะปัั‚ะพั€ ะธัะฟะพะปัŒะทัƒะตั‚ ะผะตั‚ะพะด valueOf() ั‡ั‚ะพะฑั‹ ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐั‚ัŒ ะฟั€ะธะผะธั‚ะธะฒะฝั‹ะต ั‚ะธะฟั‹ ะฒ an objectั‹, ะฐ ะผะตั‚ะพะดั‹ IntValue(), doubleValue() ะธ ั‚.ะด., ั‡ั‚ะพะฑั‹ ะฟะพะปัƒั‡ะธั‚ัŒ ะฟั€ะธะผะธั‚ะธะฒะฝั‹ะต ั‚ะธะฟั‹ ะธะท an object (ั‚ะพ ะตัั‚ัŒ ะพะฑั€ะฐั‚ะฝะพะต ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐะฝะธะต). ะะฒั‚ะพัƒะฟะฐะบะพะฒะบะฐ ะฟั€ะตะพะฑั€ะฐะทัƒะตั‚ ะปะพะณะธั‡ะตัะบะธะน ั‚ะธะฟ boolean ะฒ Boolean, byte ะฒ Byte, char ะฒ Character, float ะฒ Float, int ะฒ Integer, long ะฒ Long, short ะฒ Short. ะ ะฐัะฟะฐะบะพะฒะบะฐ ะฟั€ะพะธัั…ะพะดะธั‚ ะฒ ะพะฑั€ะฐั‚ะฝะพะผ ะฝะฐะฟั€ะฐะฒะปะตะฝะธะธ.

  6. ะšะฐะบ ะฝะตะฟั€ะธะผะธั‚ะธะฒะฝั‹ะต ั‚ะธะฟั‹ ะฟั€ะธะฒะพะดัั‚ัั ะบ ะฟั€ะธะผะธั‚ะธะฒะฝั‹ะผ?

    ะ’ั‹ัˆะต ะพั‚ะฒะตั‚ะธะป.

  7. ะšะฐะบ ัั€ะฐะฒะฝะธะฒะฐัŽั‚ัั ะฟั€ะธะผะธั‚ะธะฒะฝั‹ะต ะธ ะฝะตะฟั€ะธะผะธั‚ะธะฒะฝั‹ะต ั‚ะธะฟั‹?

    ะ’ ะปะตะบั†ะธะธ ัั‚ะพ ะฟะพะดั€ะพะฑะฝะพ ั€ะฐััะผะฐั‚ั€ะธะฒะฐะตั‚ัั, ะฝะพ ั ะฝะฐัˆะตะป ั‚ะฐะบ ัะบะฐะถะตะผ ั‚ะพะถะต ัะฐะผะพะต, ะฝะพ ะดั€ัƒะณะธะผะธ ัะปะพะฒะฐะผะธ.

    ะ’ Java ะตัั‚ัŒ ะดะฒะฐ ัะฟะพัะพะฑะฐ ัั€ะฐะฒะฝะธะฒะฐั‚ัŒ an objectั‹ ะฝะฐ equalsัั‚ะฒะพ, == ะธ ะผะตั‚ะพะด equals().

    == ะธัะฟะพะปัŒะทัƒะตั‚ัั ะดะปั ะฟั€ะธะผะธั‚ะธะฒะฝั‹ั… ั‚ะธะฟะพะฒ. ะ”ะปั an objectะพะฒ ยซ==ยป ัั‚ะพ ะธัะบะปัŽั‡ะธั‚ะตะปัŒะฝะพ ัั€ะฐะฒะฝะตะฝะธะต ััั‹ะปะพะบ. ะ”ะปั ะพัั‚ะฐะปัŒะฝั‹ั… ัะปัƒั‡ะฐะตะฒ ะฝัƒะถะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะผะตั‚ะพะด equals(). ะšั€ะพะผะต ั‚ะพะณะพ ะผะตั‚ะพะด hashCode() ัะปัƒะถะธั‚ (ะฒ ั‚ะตะพั€ะธะธ) ะดะปั ั‚ะพะน ะถะต ั†ะตะปะธ. ะฅะพั€ะพัˆะธะผ ั‚ะพะฝะพะผ ัั‡ะธั‚ะฐะตั‚ัั, ะตัะปะธ ะฒั‹ ะฟะตั€ะตะพะฟั€ะตะดะตะปor equals() ะธ hashCode(). ะŸะพัะปะต ะธะฝะธั†ะธะฐะปะธะทะฐั†ะธะธ ะฝะตะบะธั… an objectะพะฒ a ะธ b ะดะพะปะถะฝะพ ะฒั‹ะฟะพะปะฝัั‚ัŒัั ะฟั€ะฐะฒะธะปะพ:

    ะ•ัะปะธ ะฒั‹ั€ะฐะถะตะฝะธะต a.equals(b) ะฒะตั€ะฝะตั‚ true, ั‚ะพ a.hashCode() ะดะพะปะถะตะฝ ะฑั‹ั‚ัŒ equals b.hashCode().

  8. ะ’ัะตะณะดะฐ ะปะธ ัะพะทะดะฐะตั‚ัั ะฝะพะฒั‹ะน an object ะฟั€ะธ ะพะฟะตั€ะฐั†ะธะธ autoboxing?

    ะญั‚ะพ ะฒ ะปะตะบั†ะธัั… ะตัั‚ัŒ:

    ะšะพะณะดะฐ ะผั‹ ะฟั€ะธัะฒะฐะธะฒะฐะตะผ ะฟะตั€ะตะผะตะฝะฝะพะน ั‚ะธะฟะฐ Integer meaning ั‚ะธะฟะฐ int, ะฟั€ะธ ัั‚ะพะผ ะฒั‹ะทั‹ะฒะฐะตั‚ัั ะผะตั‚ะพะด Integer.valueOf: ั„ัƒะฝะบั†ะธั valueOf ะฝะต ะฒัะตะณะดะฐ ัะพะทะดะฐะตั‚ ะฝะพะฒั‹ะน an object ั‚ะธะฟะฐ Integer. ะžะฝะฐ ะบััˆะธั€ัƒะตั‚ ะทะฝะฐั‡ะตะฝะธั ะพั‚ -128 ะดะพ 127.

    ะ•ัะปะธ ะฟะตั€ะตะดะฐะฒะฐะตะผะพะต meaning ะฒั‹ั…ะพะดะธั‚ ะทะฐ ัั‚ะธ ะฟั€ะตะดะตะปั‹, ั‚ะพ ะฝะพะฒั‹ะน an object ัะพะทะดะฐะตั‚ัั, ะฐ ะตัะปะธ ะฝะตั‚, ั‚ะพ ะฝะตั‚.

    ะ•ัะปะธ ะผั‹ ะฟะธัˆะตะผ new Integer(), ั‚ะพ ะณะฐั€ะฐะฝั‚ะธั€ะพะฒะฐะฝะฝะพ ัะพะทะดะฐะตั‚ัั ะฝะพะฒั‹ะน an object. ะ•ัะปะธ ะผั‹ ะฒั‹ะทั‹ะฒะฐะตะผ Integer.valueOf(), ัะฒะฝะพ or ะฟั€ะธ autoboxing, ั‚ะพ ัั‚ะพั‚ ะผะตั‚ะพะด ะผะพะถะตั‚ ะฒะตั€ะฝัƒั‚ัŒ ะดะปั ะฝะฐั How ะฝะพะฒั‹ะน an object, ั‚ะฐะบ ะธ ะพั‚ะดะฐั‚ัŒ an object ะธะท ะบััˆะฐ, ะตัะปะธ ะฟะตั€ะตะดะฐะฝะฝะพะต ั‡ะธัะปะพ ะปะตะถะธั‚ ะฒ ะดะธะฐะฟะฐะทะพะฝะต ะพั‚ -128 ะดะพ 127.

  9. ะšะฐะบ ั€ะฐะฑะพั‚ะฐะตั‚ ะบััˆะธั€ะพะฒะฐะฝะธะต ะฟั€ะธ ะพะฟะตั€ะฐั†ะธะธ autoboxing?

    ะžั‚ะฒะตั‚ะธะป ะฒ ะฒะพะฟั€ะพัะต ะฒั‹ัˆะต, ะฝะฐ ะฒััะบะธะน ัะปัƒั‡ะฐะน ัะพะทะดะฐะป ะฒะพะฟั€ะพั ะฝะฐ StackOverFlow, ะฝะพ ั‚ะฐะผ ะพั‚ะฒะตั‡ะฐัŽั‚ ั‚ะพะถะต ัะฐะผะพะต

  10. ะ”ะปั Howะธั… ั‚ะธะฟะพะฒ ะธ/or ะทะฝะฐั‡ะตะฝะธะน ั€ะฐะฑะพั‚ะฐะตั‚ ะบััˆะธั€ะพะฒะฐะฝะธะต?

    ะ’ ะฒะพััŒะผะพะผ ะฒะพะฟั€ะพัะต. ะ•ัะปะธ ัƒ ะบะพะณะพ โ€“ ั‚ะพ ะตัั‚ัŒ ัะพะพะฑั€ะฐะถะตะฝะธั ะฝะฐ ั‚ะตะผัƒ ั‚ั€ะตั… ะฟะพัะปะตะดะฝะธั… ะฒะพะฟั€ะพัะพะฒ, ั‚ะพ ะฝะฐะฟะธัˆะธั‚ะต ะฒ ะบะพะผะผะตะฝั‚ะฐั€ะธัั….

ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION