{"id":676,"date":"2019-11-17T14:36:00","date_gmt":"2019-11-17T14:36:00","guid":{"rendered":"http:\/\/www.yebeeniii.site\/?p=676"},"modified":"2020-02-08T14:53:26","modified_gmt":"2020-02-08T14:53:26","slug":"%ec%9d%b4%ed%8e%99%ed%8b%b0%eb%b8%8c-%ec%9e%90%eb%b0%94","status":"publish","type":"post","link":"http:\/\/happily70.dothome.co.kr\/?p=676","title":{"rendered":"\uc774\ud399\ud2f0\ube0c \uc790\ubc14"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c15. \ud074\ub798\uc2a4\uc640 \uba64\ubc84\uc758 \uc811\uadfc \uad8c\ud55c\uc744 \ucd5c\uc18c\ud654\ud558\ub77c<\/h4>\n\n\n\n<p>\ucef4\ud3ec\ub10c\ud2b8\uac00 \uc798 \uc124\uacc4\ub418\uace0 \uc548 \ub418\uace0\uc758 \ucc28\uc774\ub294 \ud074\ub798\uc2a4 \ub0b4\ubd80 \uad6c\ud604 \uc815\ubcf4\ub97c \uc678\ubd80 \ucef4\ud3ec\ub10c\ud2b8\ub85c\ubd80\ud130 \uc5bc\ub9c8\ub098 \uc798 \uc228\uacbc\uc9c0\uc5d0 \ub530\ub77c \uacb0\uc815\ub41c\ub2e4. \uc989, \uad6c\ud604\uacfc API\ub97c \uae54\ub054\ud788 \ubd84\ub9ac\ud558\ub294 \uac83\uc774\ub2e4. \uc774\uac83\uc740 \uc815\ubcf4\uc740\ub2c9 \ud639\uc740 \ucea1\uc290\ud654\ub77c\uace0 \ud754\ud788 \ubd88\ub9b0\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">15-1. \uc815\ubcf4\uc740\ub2c9\uc758 \uc7a5\uc810<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\uac1c\ubc1c \uc18d\ub3c4\uac00 \ub192\ub2e4. \uc5ec\ub7ec \ucef4\ud3ec\ub10c\ud2b8\ub97c \ubcd1\ub82c\ub85c \uac1c\ubc1c\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc774\ub2e4.<\/li><li>\uad00\ub9ac\ube44\uc6a9\uc774 \ub0ae\ub2e4. \ube68\ub9ac \ud30c\uc545\ud560 \uc218 \uc788\uace0, \ub2e4\ub978 \ucef4\ud3ec\ub10c\ud2b8\ub85c \uad50\uccb4\uc758 \ube44\uc6a9\ub3c4 \uc801\ub2e4. \uac19\uc740 \uc774\uc720\ub85c \uc131\ub2a5\ucd5c\uc801\ud654\uc5d0 \ub3c4\uc6c0\uc774 \ub41c\ub2e4.<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">15-2. \uc815\ubcf4\uc740\ub2c9\uc744 \uc81c\ub300\ub85c \uad6c\ud604\ud558\uae30<\/h5>\n\n\n\n<p>\uc790\ubc14\ub294 \uc5b8\uc5b4\ub808\ubca8\uc5d0\uc11c \uc815\ubcf4\uc740\ub2c9\uc744 \uc704\ud55c \ub2e4\uc591\ud55c \uc7a5\uce58\ub97c \uc81c\uacf5\ud574\uc8fc\ub294\ub370 \ud074\ub798\uc2a4, \uc778\ud130\ud398\uc774\uc2a4, \uc811\uadfc\uc81c\uc5b4\uc790 \ub4f1\uc774 \uc788\ub2e4. \ud2b9\ud788 \uc811\uadfc\uc81c\uc5b4\uc790\ub97c \ud1b5\ud574 \uc815\ubcf4\uc740\ub2c9\uc744 \uc798 \uad6c\ud604\ud574\ub0bc \uc218 \uc788\ub2e4. \ud575\uc2ec\uc740 \ubaa8\ub4e0 \ud074\ub798\uc2a4\uc640 \uba64\ubc84\uc758 \uc811\uadfc\uc131\uc744 \uac00\ub2a5\ud55c \uc881\ud600\uc57c \ud55c\ub2e4. \uc62c\ubc14\ub974\uac8c \ub3d9\uc791\ud558\ub294 \ud55c \uac00\uc7a5 \ub0ae\uc740 \uc811\uadfc \uc218\uc900\uc744 \ubd80\uc5ec\ud558\ub294\uac8c \uc88b\ub2e4. public \uc73c\ub85c \ub9cc\ub4e4\uc5b4\ub450\uba74 \uc601\uc6d0\ud788 \ud558\uc704\ud638\ud658\uc131\uc744 \uace0\ub824\ud574\uc8fc\uba70 \ubcc0\uacbd\ud574\uc57c\ud55c\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\ud328\ud0a4\uc9c0 \uc678\ubd80\uc5d0\uc11c \uc4f8 \uc77c\uc774 \uc5c6\ub2e4\uba74 package-private(\uc811\uadfc\uc81c\uc5b4\uc790\uc758 default\uac12\uc73c\ub85c \uc544\ubb34\uac83\ub3c4 \uc548 \ubd99\uc778 \uc0c1\ud0dc)\ub85c \ud558\ub77c. \uadf8\ub7ec\uba74 \ub0b4\ubd80 \uad6c\ud604\uc774\ubbc0\ub85c \uc880 \ub354 \uc27d\uac8c \uad50\uccb4\ud560 \uc218 \uc788\ub2e4.<\/li><li>\ud55c \ud074\ub798\uc2a4\uc5d0\uc11c\ub9cc \uc0ac\uc6a9\ub418\ub294 package-private \ud074\ub798\uc2a4\ub294 \uc0ac\uc6a9\ud558\ub294 \ud074\ub798\uc2a4\uc758 private static \uc73c\ub85c \uc911\ucca9\uc2dc\ucf1c \uc368\ub77c. \uc774\ub807\uac8c \uc911\ucca9\ud558\uba74 \ubc14\uae65 \ud074\ub798\uc2a4\uc5d0\uc11c\ub9cc \uc811\uadfc\ud560 \uc218 \uc788\ub2e4.<\/li><li>\ud14c\uc2a4\ud2b8 \ucf54\ub4dc\ub294 \uac19\uc740 \ud328\ud0a4\uc9c0 \uacbd\ub85c\uc5d0 \ub450\uba74 package-private \ub97c \ud14c\uc2a4\ud2b8\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c, \ud14c\uc2a4\ud2b8\ub97c \uc704\ud574 \uc811\uadfc\uc81c\uc5b4\uc790\ub97c \ud478\ub294 \uac83\uc740 \uc62c\ubc14\ub974\uc9c0 \uc54a\ub2e4.<\/li><li>public \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4 \ud544\ub4dc\ub294 \ub418\ub3c4\ub85d public\uc774 \uc544\ub2c8\uc5b4\uc57c \ud55c\ub2e4. public \ud544\ub4dc\ub294 \ubd88\ubcc0\uc744 \ubcf4\uc7a5\ud560 \uc218 \uc5c6\uae30 \ub54c\ubb38\uc774\ub2e4. \ub610\ud55c \uc2a4\ub808\ub4dc\uc5d0 \uc548\uc804\ud558\uc9c0 \uc54a\ub2e4.<\/li><li>public static final\ub294 \uae30\ubcf8 \ud0c0\uc785\uc774\ub098 \ubd88\ubcc0 \uac1d\uccb4\ub97c \ucc38\uc870\ud574\uc57c\ud55c\ub2e4. public static final\ub294 \ub2e4\ub978 \uac1d\uccb4\ub97c \ucc38\uc870\ud558\ub3c4\ub85d \ubc14\uafc0 \uc21c \uc5c6\uc9c0\ub9cc, \ucc38\uc870\ub41c \uac1d\uccb4 \uc790\uccb4\uac00 \uc218\uc815\ub420 \uc218\uac00 \uc788\uae30 \ub54c\ubb38\uc774\ub2e4.<ul><li>\uc774\ub7f0 \uacbd\uc6b0 Collections.unmodifiableList(), Map \ub4f1\uc73c\ub85c \ubd88\ubcc0\ud654\ud574\uc11c \ucc38\uc870\ud558\uc790<\/li><\/ul><\/li><\/ol>\n\n\n\n<p>\uba64\ubc84 \uc811\uadfc\uc131\uc744 \uc881\ud788\uc9c0 \ubabb\ud558\uac8c \ud558\ub294 \uc81c\uc57d\uc774 1\uac00\uc9c0 \uc788\ub2e4. \uc0c1\uc704 \ud074\ub798\uc2a4\uc758 \uba54\uc18c\ub4dc\ub97c \uc7ac\uc815\uc758\ud560 \ub54c\ub294 \uadf8 \uc811\uadfc \uc218\uc900\uc744 \uc0c1\uc704 \ud074\ub798\uc2a4\uc5d0\uc11c\ubcf4\ub2e4 \uc881\uac8c \uc124\uc815\ud560 \uc218 \uc5c6\ub2e4\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c16. public \ud074\ub798\uc2a4\uc5d0\uc11c\ub294 public \ud544\ub4dc\uac00 \uc544\ub2cc \uc811\uadfc\uc790 \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<p>public \ud074\ub798\uc2a4\uc758 \ud544\ub4dc\uac00 public\uc774\ub77c\uba74 \uc774\uac83\uc744 \uc0ac\uc6a9\ud558\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc0dd\uae38 \uc218\uac00 \uc788\uc73c\ubbc0\ub85c \ubcc0\uacbd\ube44\uc6a9\uc774 \ube44\uc2f8\uc9c4\ub2e4. \ub610\ud55c \uc704\uc5d0\uc11c \uc124\uba85\ud588\ub4ef\uc774 \ubd88\ubcc0\uc2dd\uc744 \ubcf4\uc7a5\ud560 \uc218\ub3c4 \uc5c6\uace0, \uc678\ubd80\uc5d0\uc11c \ud544\ub4dc\uc5d0 \uc811\uadfc\ud560 \ub54c \ubd80\uc218\uc801\uc778 \uc791\uc5c5(\ubcf5\uc0ac\ubcf8 \ub358\uc9c0\uae30, \ud30c\ub77c\ubbf8\ud130 \uac80\uc99d \ub4f1)\uc744 \ud560 \uc218\ub3c4 \uc5c6\ub2e4. \uc774\ub7f0 \ub2e8\uc810\ub4e4\uc740 private \ud544\ub4dc\uc5d0 public \uc811\uadfc\uc790(getter\/setter)\ub97c \ub450\uba74 \ud574\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<p>public \ud074\ub798\uc2a4\uac00 \uc544\ub2cc package-private \ud074\ub798\uc2a4 \ub610\ub294 private \uc911\ucca9 \ud074\ub798\uc2a4\ub77c\uba74 public \ud544\ub4dc\ub294 \uc804\ud600 \ubb38\uc81c\uac00 \ub418\uc9c0 \uc54a\ub294\ub2e4. \uc624\ud788\ub824 \uc120\uc5b8, \uc0ac\uc6a9\uc5d0\uc11c \ub354 \uae54\ub054\ud558\uae30\ub3c4 \ud558\ub2e4. \uc5b4\ucc28\ud53c \ub0b4\ubd80\uc5d0\uc11c\ub9cc \ub3d9\uc791\ud558\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc5ec\uae30\uc11c private \uc911\ucca9 \ud074\ub798\uc2a4\ub294 \uc774\ud574\ub418\ub294\ub370, package-private \ud074\ub798\uc2a4\ub294 \uc880 \uc758\ubb38\uc774 \ub4e4 \uc218 \uc788\ub2e4. \ucc45\uc758 \uc800\uc790\ub294 \uc544\ub9c8\ub3c4 \ud55c \ud328\ud0a4\uc9c0\ub294 \ud55c \uac1c\ubc1c\uc790(=\uac19\uc740 \uac1c\ubc1c\uc790)\uac00 \uac1c\ubc1c\ud558\uae30 \ub54c\ubb38\uc5d0 \uc624\uc6a9\ud558\uc9c0 \uc54a\uc744 \uac83\uc774\ub77c\uace0 \ud310\ub2e8\ud55c \uac83 \uac19\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c17. \ubcc0\uacbd \uac00\ub2a5\uc131\uc744 \ucd5c\uc18c\ud654\ud558\ub77c<\/h4>\n\n\n\n<p>\ubd88\ubcc0 \ud074\ub798\uc2a4\ub294 \uc778\uc2a4\ud134\uc2a4\uc758 \ub0b4\ubd80 \uac12\uc744 \uc218\uc815\ud560 \uc218 \uc5c6\ub294 \ud074\ub798\uc2a4\uc774\ub2e4. \uac1d\uccb4\uac00 \ud30c\uad34\ub418\ub294 \uc21c\uac04\uae4c\uc9c0 \uac12\uc774 \uc808\ub300 \ub2ec\ub77c\uc9c0\uc9c0 \uc54a\ub294\ub2e4. \uc774\ub7f0 \ud2b9\uc131\uc73c\ub85c \uc2a4\ub808\ub4dc \uc548\uc804\ud574\uc9c0\ubbc0\ub85c \ub530\ub85c \ub3d9\uae30\ud654\ud560 \ud544\uc694\ub3c4 \uc5c6\uc5b4\uc9c4\ub2e4. \ubd88\ubcc0 \ud074\ub798\uc2a4\uc5d0\uc11c\ub294 \ud55c\ubc88 \ub9cc\ub4e0 \uc778\uc2a4\ud134\uc2a4\ub97c \uce90\uc2f1\ud574\uc11c \uc7ac\ud65c\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4. \ub2e4\uc74c \uc608\uc81c\uc5d0\uc11c Complex\ub294 \ubd88\ubcc0\uc774\ub2e4.&nbsp;<code>public static final ZERO = new Complex(0, 0);<\/code><\/p>\n\n\n\n<p>\ub610\ud55c \ubd88\ubcc0 \uac1d\uccb4\ub294 \ubc29\uc5b4\uc801 \ubcf5\uc0ac\ub3c4 \ud544\uc694\uc5c6\ub2e4. clone \uba54\uc18c\ub4dc\ub098 \ubcf5\uc0ac\uc0dd\uc131\uc790, \ubcf5\uc0ac\ud329\ud1a0\ub9ac\ub3c4 \ud544\uc694\uc5c6\ub2e4. \ub300\ud45c\uc801\uc778 \uc2e4\uc218\ub85c String\uc758 \ubcf5\uc0ac \uc0dd\uc131\uc790\ub97c \uc4f8\ub370\uc5c6\uc774 \ub123\uc740 \uac83\uc774\ub2e4. String Docs\ub97c \ubcf4\uba74&nbsp;<code>public String(String original)<\/code>&nbsp;\uc5d0 \uc774\ub7f0 \ubb38\uad6c\uac00 \uc788\ub2e4.&nbsp;<code>Unless an explicit copy of original is needed, use of this constructor is unnecessary since Strings are immutable.<\/code><\/p>\n\n\n\n<p>getter\uac00 \uc788\ub2e4\uace0 \uaf2d setter\ub97c \ub9cc\ub4e4\uc9c0 \ub9d0\uc790. \uaf2d \ud544\uc694\ud55c \uacbd\uc6b0\uac00 \uc544\ub2c8\ub77c\uba74 \ubd88\ubcc0\uc73c\ub85c \ub9cc\ub4e4\uc790. \uc644\uc804\ud788 \ubd88\ubcc0\uc73c\ub85c \ub9cc\ub4e4 \uc218 \uc5c6\uc744 \ub54c\ub294 \ubcc0\uacbd\ud560 \uc218 \uc788\ub294 \ubd80\ubd84\uc744 \ucd5c\uc18c\ud55c\uc73c\ub85c \uc904\uc774\uc790<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">17-1. \ubd88\ubcc0 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4dc\ub294 \uaddc\uce59<\/h5>\n\n\n\n<ol class=\"wp-block-list\"><li>\uac1d\uccb4\uc758 \uc0c1\ud0dc\ub97c \ubcc0\uacbd\ud558\ub294 \uba54\uc18c\ub4dc\ub97c \uc81c\uacf5\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/li><li>\ud074\ub798\uc2a4\ub97c \ud655\uc7a5\ud560 \uc218 \uc5c6\ub3c4\ub85d \ud55c\ub2e4. \ud558\uc704 \ud074\ub798\uc2a4\uc5d0\uc11c \ubd80\uc8fc\uc758\ud558\uac8c \uac1d\uccb4\uc758 \uc0c1\ud0dc\ub97c \ubcc0\ud558\uac8c \ud558\ub294 \uac83\uc744 \ub9c9\uc744 \uc218 \uc788\ub2e4.<ul><li>final Class \ub85c \uc120\uc5b8\ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc, final\uc744 \uc120\uc5b8\uc548\ud558\uace0\ub3c4 \ubaa8\ub4e0 \uba64\ubc84\uc640 \uc0dd\uc131\uc790\ub97c private, package-private\uc73c\ub85c \uc120\uc5b8\ud558\uace0 public static factory\ub97c \uc81c\uacf5\ud574\uc11c \uc0ac\uc2e4\uc0c1 \ud655\uc7a5\ud560\uac8c \uc5c6\uac8c \ud560 \uc218\ub3c4 \uc788\ub2e4.<\/li><\/ul><\/li><li>\ubaa8\ub4e0 \ud544\ub4dc\ub97c final\ub85c \uc120\uc5b8\ud55c\ub2e4. \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uad8c\uc7a5\ud558\ub294 \uac00\uc7a5 \uba85\ud655\ud55c \ubc29\ubc95\uc774\ub2e4.<\/li><li>\ubaa8\ub4e0 \ud544\ub4dc\ub97c private\ub85c \uc120\uc5b8\ud55c\ub2e4. \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uac1d\uccb4\uc5d0 \uc9c1\uc811 \uc811\uadfc\ud558\uc5ec \uac12\uc744 \uc218\uc815\ud558\ub294 \uc77c\uc744 \ub9c9\uc544\uc900\ub2e4.<\/li><li>\uc790\uc2e0 \uc678\uc5d0\ub294 \ub0b4\ubd80\uc758 \uac00\ubcc0 \ucef4\ud3ec\ub10c\ud2b8\uc5d0 \uc811\uadfc\ud560 \uc218 \uc5c6\ub3c4\ub85d \ud55c\ub2e4. (?)<\/li><\/ol>\n\n\n\n<h5 class=\"wp-block-heading\">17-2. \ubd88\ubcc0\uac1d\uccb4\uc758 \ub2e8\uc810<\/h5>\n\n\n\n<ol class=\"wp-block-list\"><li>\uac12\uc774 \ub2e4\ub974\uba74 \ubc18\ub4dc\uc2dc \ub3c5\ub9bd\ub41c \uac1d\uccb4\ub85c \ub9cc\ub4e4\uc5b4\uc918\uc57c \ud55c\ub2e4. \ub0b4\ubd80 \ud544\ub4dc\uac12 \uc911 99\uac1c\uac00 \uac19\uace0 1\uac1c\ub9cc \ub2ec\ub77c\ub3c4, \uc0c8\ub85c \ub9cc\ub4e4\uc5b4\uc918\uc57c\ud558\ub294 \uac83\uc774\ub2e4.<\/li><li>\uac1d\uccb4\ub97c \uc644\uc131\ud558\uae30\uae4c\uc9c0 \ub2e8\uacc4\uac00 \ub9ce\uace0, \uc911\uac04 \ub2e8\uacc4\uc758 \uac1d\uccb4\ub4e4\uc774 \ubaa8\ub450 \ubc84\ub824\uc9c0\uba74 \uc131\ub2a5\ubb38\uc81c\uac00 \uc0dd\uae38 \uc218 \uc788\ub2e4.<ul><li>\ud574\uacb0\ubc29\ubc95\uc73c\ub85c\ub294 \ub2e4\ub2e8\uacc4 \uc5f0\uc0b0\uc744 \uae30\ubcf8\uc73c\ub85c \uc81c\uacf5\ud558\ub294 \uac83\uc774\ub2e4. \uac00\ubcc0 \ub3d9\ubc18 \ud074\ub798\uc2a4\ub77c\uace0 \ud55c\ub2e4. (\ubd88\ubcc0\ud074\ub798\uc2a4\uc778 String\uc73c\ub85c \uc608\ub97c\ub4e4\uc790\uba74, StringBuilder, StringBuffer\uc774 \uc788\ub2e4)<\/li><\/ul><\/li><\/ol>\n\n\n\n<h5 class=\"wp-block-heading\">17-3. [\uc2e4\ubb34\uad8c\uc7a5] guava\uc758 Immutable Collections\uc744 \uc0ac\uc6a9\ud558\uc790<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/github.com\/google\/guava\/wiki\/ImmutableCollectionsExplained\">Immutable Collections Docs<\/a><\/li><li>\uc774\ub97c \ud1b5\ud574 \ubd88\ubcc0 \uceec\ub809\uc158\uc744 \uc190\uc27d\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub2e4. \uc774 \ub54c java\uc758 \uceec\ub809\uc158API\uc758&nbsp;<code>Collections.unmodifiableList<\/code>&nbsp;\uc640\ub294 \ub2e4\ub974\uac8c null\uc744 \ud5c8\uc6a9\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/li><li>\ub124\uc774\ubc0d\uc740 \ubcf4\ud1b5 ImmutableXXX \uc774\ub2e4. \uc8fc\uc694 API\ub85c Map\uacfc Set \uacc4\uc5f4\uc740 of, copyOf, builder\uac00 \uac00\ub2a5\ud558\uba70 List \uacc4\uc5f4\uc740 asList\uac00 \uc788\ub2e4. \uc790\uc138\ud55c \uac74 \ubb38\uc11c\ub97c \ucc38\uc870\ud558\uc790<\/li><li>java 9\ubd80\ud130\ub294 Immutable static factory \uba54\uc18c\ub4dc\uac00 \ucd94\uac00\ub418\uc5c8\ub2e4. java9 \uc774\uc0c1\uc744 \uc0ac\uc6a9\ud55c\ub2e4\uba74 Immutable Collections\ub97c \uc27d\uac8c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 guava\ub97c \uc0ac\uc6a9\ud560 \ud544\uc694\uac00 \uc5c6\ub2e4.<ul><li><a href=\"https:\/\/docs.oracle.com\/javase\/9\/docs\/api\/java\/util\/Map.html\">Java9 Map<\/a><\/li><\/ul><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c18. \uc0c1\uc18d\ubcf4\ub2e4\ub294 \ucef4\ud3ec\uc9c0\uc158\uc744 \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<p>\uc0c1\uc18d\uc740 \uc798\ubabb \uc0ac\uc6a9\ud558\uba74 \uc624\ub958\ub97c \ub0b4\uae30 \uc26c\uc6b4 \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \ub9cc\ub4e4\uac8c \ub41c\ub2e4. \uba54\uc18c\ub4dc \ud638\ucd9c\uacfc \ub2ec\ub9ac \uc0c1\uc18d\uc740 \ucea1\uc290\ud654\ub97c \uae68\ud2b8\ub9b0\ub2e4. \uc288\ud37c\ud074\ub798\uc2a4\uc758 \uad6c\ud604\uc5d0 \uc758\uc874\ud558\uac8c\ub418\uba70, \uc288\ud37c\ud074\ub798\uc2a4\uc758 \uad6c\ud604 \ub0b4\uc6a9\uc774 \ubc14\ub00c\uc5c8\ub2e4\uba74 \uc11c\ube0c\ud074\ub798\uc2a4\ub3c4 \uc774\uc5d0 \ub9de\ucdb0 \uc9c4\ud654\ud574\uc57c\ud55c\ub2e4. (\uc0c1\uc18d\uc740 \uc0c1\uc704\ud074\ub798\uc2a4\uc758 \uacb0\ud568\uae4c\uc9c0 \uadf8\ub300\ub85c \uc2b9\uacc4\ub41c\ub2e4) \uc288\ud37c\ud074\ub798\uc2a4\uc758 \uba54\uc18c\ub4dc\uac00 \uc544\ub2cc \uc0c8\ub85c\uc6b4 \uba54\uc18c\ub4dc\ub97c \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0\uc11c \uc815\uc758\ud588\ub294\ub370, \uc6b4\uc5c6\uac8c\ub3c4 \ub2e4\uc74c \ubc30\ud3ec\ud310\uc5d0\uc11c \uc288\ud37c\ud074\ub798\uc2a4\uc5d0 \uc0c8\ub85c \uc0dd\uae34 \uba54\uc18c\ub4dc\uba85\uacfc \uacb9\uccd0\uc11c \ucef4\ud30c\uc77c\uc774 \uc2e4\ud328\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uc774\ub7f4 \ub584 \ud574\uacb0\ubc29\ubc95\uc73c\ub85c \ucef4\ud3ec\uc9c0\uc158(composition, \uad6c\uc131)\uc740 private \ud544\ub4dc\ub97c \ub9cc\ub4e4\uace0 \uc0c1\uc18d\ub300\uc2e0 \ucc38\uc870\ud558\ub294 \uac83\uc774\ub2e4. \uc0c8 \ud074\ub798\uc2a4\uc758 \uba54\uc18c\ub4dc(\uc804\ub2ec \uba54\uc18c\ub4dc)\ub4e4\uc740 \ucc38\uc870 \ud074\ub798\uc2a4\uc758 \uba54\uc18c\ub4dc\ub4e4\uc744 \ud638\ucd9c\ud558\uc5ec \uc804\ub2ec\ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc0c1\uc18d\uc740 \ubc18\ub4dc\uc2dc \ud558\uc704\ud074\ub798\uc2a4\uac00 \uc0c1\uc704\ud074\ub798\uc2a4\uc758 \uc9c4\uc9dc \ud558\uc704\ud0c0\uc785\uc778 \uc0c1\ud669\uc5d0\ub9cc \uc4f0\uc5ec\uc57c \ud55c\ub2e4. A\ub97c \uc0c1\uc18d\ud558\ub294 B\ub97c \uc791\uc131\ud558\ub824\ud55c\ub2e4\uba74 &#8216;B\uac00 \uc815\ub9d0 A\uc778\uac00?&#8217;\ub77c\uace0 \uc790\ubb38\ud574\ubcf4\uc790. \ub9de\ub2e4\uba74 \uc0c1\uc18d\ud558\uace0, \uc544\ub2c8\ub77c\uba74 \ucef4\ud3ec\uc9c0\uc158\ud558\uc790.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c19. \uc0c1\uc18d\uc744 \uace0\ub824\ud574 \uc124\uacc4\ud558\uace0 \ubb38\uc11c\ud654\ud558\ub77c. \uadf8\ub807\uc9c0 \uc54a\uc558\ub2e4\uba74 \uc0c1\uc18d\uc744 \uae08\uc9c0\ud558\ub77c<\/h4>\n\n\n\n<p>\uc544\uc774\ud15c18\uc5d0\uc11c\ub294 \uc0c1\uc18d\uc744 \uc5fc\ub450\uc5d0 \ub450\uc9c0\uc54a\uace0 \uc124\uacc4\ud588\uace0 \uc0c1\uc18d\uc758 \uc8fc\uc758\uc810\uc744 \ubb38\uc11c\ud654\ud574\ub193\uc9c0 \uc54a\uc740 \uc678\ubd80\ud074\ub798\uc2a4\ub97c \uc0c1\uc18d\ud560 \ub584 \uc704\ud5d8\uc744 \uacbd\uace0\ud588\ub2e4. \uc0c1\uc18d\uc744 \uace0\ub824\ud55c \ubb38\uc11c\ud654\ub294 \uba54\uc18c\ub4dc\ub97c \uc7ac\uc815\uc758\ud588\uc744\ub54c \uc77c\uc5b4\ub098\ub294 \uc77c\uc744 \uc815\ud655\ud788 \uc815\ub9ac\ud558\ub294 \uac83\uc774\ub2e4. \uc7ac\uc815\uc758\uac00\ub2a5\ud55c \uacf5\uac1c\uba54\uc18c\ub4dc\uc5d0\uc11c \uac19\uc740 \uc704\uce58(self-use)\uc758 \uba54\uc18c\ub4dc(\uc7ac\uc815\uc758 \uac00\ub2a5\ud55c \uacf5\uac1c)\ub97c \ud638\ucd9c\ud560 \uc218\ub3c4 \uc788\uae30 \ub54c\ubb38\uc774\ub2e4. \uc774\uac83\uc740 \uc0c1\uc18d\uc774 \ucea1\uc290\ud654\ub97c \ud574\uce58\uae30 \ub54c\ubb38\uc5d0 \uc77c\uc5b4\ub098\ub294 \ud604\uc0c1\uc774\ub2e4.<\/p>\n\n\n\n<p>\ubb38\uc11c\uc5d0\uc11c Implementation Requirements \ub85c \uc2dc\uc791\ud558\ub294 \uc808\uc774 \uc788\ub294\ub370, \uc774\uac8c \ub0b4\ubd80 \ub3d9\uc791 \ubc29\uc2dd\uc744 \uc124\uba85\ud558\ub294 \uacf3\uc774\ub2e4.<\/p>\n\n\n\n<p>\ud074\ub798\uc2a4\uc758 \ub0b4\ubd80 \ub3d9\uc791 \uacfc\uc815 \uc911\uac04\uc5d0 \ud638\ucd9c\ub420 \uc218 \uc788\ub294 \uba54\uc18c\ub4dc(\uc7ac\uc815\uc758 \uac00\ub2a5\ud55c \uacf5\uac1c, hook \uba54\uc18c\ub4dc)\ub97c \uc120\ubcc4\ud558\uc5ec protected \uac19\uc740 \uc811\uadfc\uc81c\uc5b4\uc790\ub85c \uacf5\uac1c\ud574\uc57c\ud560 \uc218\ub3c4 \uc788\ub2e4. (\uc774 \ubd80\ubd84\uc744 \uc7ac\uc815\uc758\ud574\uc11c \ub2e4\ub978 \uba54\uc18c\ub4dc\uc758 \uc131\ub2a5\uac1c\uc120 \ub4f1\uc744 \uc774\ub904\ub0bc \uc218 \uc788\uc73c\ub2c8)<\/p>\n\n\n\n<p>\uc0c1\uc18d\uc6a9\uc73c\ub85c \uc124\uacc4\ud55c \ud074\ub798\uc2a4\uc758 \ud14c\uc2a4\ud2b8\ub294 \ud558\uc704\ud074\ub798\uc2a4\ub97c \uba87 \uac1c \uc9c1\uc811 \ub9cc\ub4e4\uc5b4\ubcf4\ub294 \uc218 \ubc16\uc5d0 \uc5c6\ub2e4.<\/p>\n\n\n\n<p>\ub610\ud55c \uc0c1\uc18d\uc6a9 \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\ub294 \uc5b4\ub5a4 \uacbd\uc6b0\uc5d0\ub3c4 \uc7ac\uc815\uc758 \uac00\ub2a5 \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud574\uc11c\ub294 \uc548\ub41c\ub2e4. \uc774\ub294 \uc0c1\uc704 \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\uac00 \ud558\uc704 \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\ubcf4\ub2e4 \uba3c\uc800 \uc2e4\ud589\ub418\ubbc0\ub85c, \ud558\uc704 \ud074\ub798\uc2a4\uc5d0\uc11c \uc7ac\uc815\uc758\ud55c \uba54\uc18c\ub4dc\uac00 \ud558\uc704 \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\ubcf4\ub2e4 \uba3c\uc800 \ud638\ucd9c\ub418\uae30 \ub54c\ubb38\uc774\ub2e4. (private, final, static\uc740 \uc7ac\uc815\uc758\uac00 \ubd88\uac00\ub2a5\ud558\ub2c8 \ud638\ucd9c\ud574\ub3c4 \ub41c\ub2e4)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c20. \ucd94\uc0c1 \ud074\ub798\uc2a4\ubcf4\ub2e4\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc6b0\uc120\ud558\ub77c<\/h4>\n\n\n\n<p>\uc790\ubc14\uac00 \uc81c\uacf5\ud558\ub294 \ub2e4\uc911\uad6c\ud604 \uba54\ucee4\ub2c8\uc998\uc740 \uc778\ud130\ud398\uc774\uc2a4\uc640 \ucd94\uc0c1\ud074\ub798\uc2a4\ub85c \uac00\ub2a5\ud558\ub2e4. \uc790\ubc148\ubd80\ud130\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub3c4 default \uba54\uc18c\ub4dc\ub97c \uc4f8 \uc218 \uc788\uac8c \ub418\uba74\uc11c, \ub458\ub2e4 \uc778\uc2a4\ud134\uc2a4 \uba54\uc18c\ub4dc\ub97c \uad6c\ud604\ud55c \ud615\ud0dc\ub85c \uc81c\uacf5\ud560 \uc218 \uc788\uac8c \ub418\uc5c8\ub2e4. \uc778\ud130\ud398\uc774\uc2a4\uc640 \ucd94\uc0c1\ud074\ub798\uc2a4\uc758 \uac00\uc7a5 \ud070 \ucc28\uc774\ub294 \ucd94\uc0c1\ud074\ub798\uc2a4\ub97c \uad6c\ud604\ud55c \uc11c\ube0c\ud074\ub798\uc2a4\ub294 \ubc18\ub4dc\uc2dc \ucd94\uc0c1\ud074\ub798\uc2a4\uc758 \ud558\uc704 \ud0c0\uc785\uc774 \ub418\uc5b4\uc57c\ub9cc \ud55c\ub2e4\ub294 \uac83\uc774\ub2e4. (\ud074\ub798\uc2a4\ub294 \ub2e8\uc77c\uc0c1\uc18d)<\/p>\n\n\n\n<p>\uc0c8\ub85c\uc6b4 \uc778\ud130\ud398\uc774\uc2a4\ub294 \ud074\ub798\uc2a4\uc5d0 \uc27d\uac8c \ub123\uc744 \uc218 \uc788\uc9c0\ub9cc, \uc0c8\ub85c\uc6b4 \ucd94\uc0c1\ud074\ub798\uc2a4\ub97c \ub07c\uc6cc\ub123\uc73c\ub824\uba74 \uacc4\uce35\uad6c\uc870\uac00 \ubcf5\uc7a1(\uc774\ubbf8 \uc5b4\ub5a4 \ud074\ub798\uc2a4\ub97c \uc0c1\uc18d\ubc1b\uace0\uc788\ub294\ub370, \ub610 \uc0c1\uc18d\ubc1b\uc544\uc57c\ud558\ub2c8)\ud574\uc9c4\ub2e4. \uc774\ub7f0 \uacbd\uc6b0\ucc98\ub7fc \uc778\ud130\ud398\uc774\uc2a4\ub294 \ubbf9\uc2a4\uc778(mixin) \uc815\uc758\uc5d0 \uc548\uc131\ub9de\ucda4\uc774\ub2e4. \ub610\ud55c \uc778\ud130\ud398\uc774\uc2a4 \uac04\uc5d0 \uc0c1\uc18d\uc744 \ud1b5\ud574 \uc720\uc5f0\ud558\uac8c \ub9cc\ub4e4 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uc778\ud130\ud398\uc774\uc2a4\uc640 \ucd94\uc0c1 \uace8\uaca9\uad6c\ud604 \ud074\ub798\uc2a4\ub97c \uc81c\uacf5\ud558\uc5ec 2\uac1c\uc758 \uc7a5\uc810\uc744 \ucde8\ud558\ub294 \ubc29\ubc95\ub3c4 \uc788\ub2e4. \uc778\ud130\ud398\uc774\uc2a4\uc758 \uc774\ub984\uc774 XXX\ub77c\uba74, \ubcf4\ud1b5 \ucd94\uc0c1 \uace8\uaca9\uad6c\ud604 \ud074\ub798\uc2a4\ub294 AbstractXXX\uac00 \ub41c\ub2e4. \uc8fc\ub85c \uc774\ub7f0 \uad6c\uc870\ub294 \ud15c\ud50c\ub9bf\uba54\uc18c\ub4dc \ud328\ud134\uc5d0 \ub9ce\uc774 \uc4f0\uc778\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c21. \uc778\ud130\ud398\uc774\uc2a4\ub294 \uad6c\ud604\ud558\ub294 \ucabd\uc744 \uc0dd\uac01\ud574 \uc124\uacc4\ud558\ub77c<\/h4>\n\n\n\n<p>\uc790\ubc148 \uc774\uc804\uc5d0\ub294 \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \uc0c8\ub85c\uc6b4 \uba54\uc18c\ub4dc\ub97c \ucd94\uac00\ud560 \uacbd\uc6b0 \ubcf4\ud1b5 \ucef4\ud30c\uc77c \uc624\ub958\uac00 \ub09c\ub2e4. \uad6c\ud604 \ud074\ub798\uc2a4\ub4e4\uc5d0\uc11c \uad6c\ud604\uc744 \ud558\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc774\ub2e4. \uc790\ubc148\ubd80\ud130 \uc778\ud130\ud398\uc774\uc2a4\uc5d0 default \uba54\uc18c\ub4dc, static \uba54\uc18c\ub4dc\uac00 \ub4f1\uc7a5\ud558\uba74\uc11c \uc0c8\ub85c\uc6b4 \uba54\uc18c\ub4dc\ub97c \ubaa8\ub4e0 \uad6c\ud604\ud074\ub798\uc2a4\uc758 \ub3c4\uc6c0\uc5c6\uc774 \ucd94\uac00\ud558\ub294 \ubc29\ubc95\uc774 \uc0dd\uae30\uae34 \ud558\uc600\uc73c\ub098, \ubaa8\ub4e0 \uc0c1\ud669\uc5d0\uc11c \ubd88\ubcc0\uc2dd\uc744 \ud574\uce58\uc9c0 \uc54a\ub294 default \uba54\uc18c\ub4dc\ub97c \uc791\uc131\ud558\ub294 \uac83\uc740 \ub9e4\uc6b0 \uc5b4\ub835\ub2e4. (\ucc45\uc5d0\uc11c\ub294 \uc608\uc81c\ub85c apache commons\uc758 SynchronizedCollection\uc744 \ub4e4\uace0 \uc788\ub2e4.)<\/p>\n\n\n\n<p>\ucd94\uac00\ub41c default \uba54\uc18c\ub4dc\ub294 \uc81c\uac70\ud558\uac70\ub098 \uc2dc\uadf8\ub2c8\ucc98\ub97c \uc218\uc815\ud558\ub294 \ub4f1\uc758 \ud589\ub3d9 \uc5ed\uc2dc \uc2e0\uc911\ud788 \ud574\uc57c\ud55c\ub2e4. \uc0ac\uc6a9\ud558\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \uc804\ubd80 \uae68\uc9c8 \uc218 \uc788\uae30\ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c22. \uc778\ud130\ud398\uc774\uc2a4\ub294 \ud0c0\uc785\uc744 \uc815\uc758\ud558\ub294 \uc6a9\ub3c4\ub85c\ub9cc \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<p>\uc778\ud130\ud398\uc774\uc2a4\ub294 \uc790\uc2e0\uc744 \uad6c\ud604\ud55c \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \ucc38\uc870\ud560 \uc218 \uc788\ub294 \ud0c0\uc785\uc5ed\ud560\uc744 \ud55c\ub2e4. \ud074\ub798\uc2a4\uac00 \uc5b4\ub5a4 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud55c\ub2e4\ub294 \uac83\uc740 \uc790\uc2e0\uc758 \uc778\uc2a4\ud134\uc2a4\ub85c \ubb34\uc5c7\uc744 \ud560 \uc218 \uc788\ub294\uc9c0\ub97c \uc0ac\uc6a9\uce21\uc5d0 \uc774\uc57c\uae30\ud574\uc8fc\ub294 \uac83\uc774\ub2e4. \uc778\ud130\ud398\uc774\uc2a4\ub294 \uc624\uc9c1 \uc774 \uc6a9\ub3c4\ub85c\ub9cc \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">22-1. \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc798\ubabb \uc0ac\uc6a9\ud55c \uc608<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc0c1\uc218 \uc778\ud130\ud398\uc774\uc2a4 : public static final \ud544\ub4dc\ub4e4\ub9cc \uc788\ub294 \uc778\ud130\ud398\uc774\uc2a4<ul><li>\uc0ac\uc6a9\ud558\ub294 \ucabd\uc5d0\uc11c \uc0c1\uc218\uc6a9 \uc778\ud130\ud398\uc774\uc2a4\ub294 \uc544\ubb34\ub7f0 \uc758\ubbf8\uac00 \uc5c6\ub2e4. \ud63c\ub780\ub9cc \uc904 \ubfd0\uc774\ub2e4.<\/li><li>Integer.MAX_VALUE, enum, \uc815\uc801 \uc720\ud2f8\ub9ac\ud2f0 \ud074\ub798\uc2a4(XXXConstants) \ub4f1\uc5d0\uc11c \uc4f0\ub294\uac8c \ud6e8\uc52c \ub354 \uc88b\ub2e4.<\/li><\/ul><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c23. \ud0dc\uadf8 \ub2ec\ub9b0 \ud074\ub798\uc2a4\ubcf4\ub2e4\ub294 \ud074\ub798\uc2a4 \uacc4\uce35\uad6c\uc870\ub97c \ud65c\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<p>\ud0dc\uadf8\ub2ec\ub9b0 \ud074\ub798\uc2a4\ub294 2\uac00\uc9c0 \uc774\uc0c1\uc758 \uac12\uc744 \ud45c\ud604\ud558\ub294 \ud074\ub798\uc2a4\uc774\ub2e4. \uac12\uc758 \uc758\ubbf8 \ubd84\uae30\ucc98\ub9ac\ub97c \ud0dc\uadf8\ub85c \ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Figure {\n    enum Shape { RECTANGLE, CIRCLE };\n    final Shape shape; \/\/ \ud0dc\uadf8\n\n    \/\/ \uc0ac\uac01\ud615\uc77c \ub54c\ub9cc \ud544\uc694\ud55c \ud544\ub4dc\n    double length;\n    double width;\n\n    \/\/ \uc6d0\uc77c \ub54c\ub9cc \ud544\uc694\ud55c \ud544\ub4dc\n    double radius;\n\n    \/\/ \uc6d0 \uc0dd\uc131\uc790\n    Figure(double radius) {\n        shape = Shape.CIRCLE;\n        this.radius = radius;\n    }\n\n    \/\/ \uc0ac\uac01\ud615 \uc0dd\uc131\uc790\n    Figure(double length, double width) {\n        shape = Shape.RECTANGLE;\n        this.length = length;\n        this.width = width;\n    }\n\n    double area() {\n        switch(shape) {\n            case RECTANGLE:\n                return length * width;\n            case CIRCLE:\n                return Math.PI * (radius * radius);\n            default:\n                throw new AssertionError(shape);\n        }\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\ubd88\ud544\uc694\ud55c \ucf54\ub4dc\ub4e4\uc774 \ub108\ubb34 \ub9ce\uace0, \uc7a5\ud669\ud558\uba70, \uc624\ub958\ub97c \ub0b4\uae30 \uc27d\uace0 \ube44\ud6a8\uc728\uc801\uc774\ub2e4.<br>\uc774\uac83\uc740 \ud074\ub798\uc2a4 \uacc4\uce35\uad6c\uc870\ub85c \ubc14\uafb8\ub294 \uac83\uc774 \uc88b\ub2e4. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>abstract class Figure {\n    abstract double area();\n}\n\nclass Circle extends Figure {\n    final double radius;\n\n    Circle(double radius) { this.radius = radius; }\n\n    @Override\n    double area() { return Math.PI * (radius * radius); }\n}\n\nclass Rectangle extends Figure {\n    final double length;\n    final double width;\n\n    Rectangle(double length, double width) {\n        this.length = length;\n        this.width  = width;\n    }\n    \n    @Override\n    double area() { return length * width; }\n}\n<\/code><\/pre>\n\n\n\n<p>\uc704\uc5d0\uc11c \uc5f4\uac70\ud55c \ub2e8\uc810\ub4e4\uc774 \ud574\uc18c\ub418\uc5c8\uc73c\uba70, \ucef4\ud30c\uc77c \ud0c0\uc784\uc758 \uac80\uc0ac\ub97c \ucd5c\ub300\ud55c \ud65c\uc6a9(\ucd94\uc0c1\uba54\uc18c\ub4dc \uad6c\ud604 \uc5ec\ubd80 \ub4f1)\ud558\uac8c \ub418\uc5c8\ub2e4. \ub610\ud55c \ub2e4\ub978 \ub3c4\ud615\uc744 \ucd94\uac00\ud560\ub54c\ub3c4 \ud655\uc7a5\uc131\uc788\ub294 \ud615\ud0dc\uac00 \ub418\uc5c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c24. \uba64\ubc84 \ud074\ub798\uc2a4\ub294 \ub418\ub3c4\ub85d static \uc73c\ub85c \ub9cc\ub4e4\ub77c<\/h4>\n\n\n\n<p>\uc911\ucca9 \ud074\ub798\uc2a4(nested class)\ub294 \ub2e4\ub978 \ud074\ub798\uc2a4 \uc548\uc5d0 \uc815\uc758\ub41c \ud074\ub798\uc2a4\ub97c \ub9d0\ud55c\ub2e4. \uc911\ucca9 \ud074\ub798\uc2a4\ub294 \uc790\uc2e0\uc744 \uac10\uc2fc \ubc14\uae65 \ud074\ub798\uc2a4\uc5d0\ub9cc \uc4f0\uc5ec\uc57c\ud558\uba70, \uadf8 \uc678\uc758 \uc4f0\uc784\uc0c8\uac00 \uc788\ub2e4\uba74 \ud1b1\ub808\ubca8 \ud074\ub798\uc2a4\ub85c \ub9cc\ub4e4\uc5b4\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc911\ucca9\ud074\ub798\uc2a4\uc640 \uba64\ubc84\ud074\ub798\uc2a4\ub294 \ub3d9\uc77c\ud55c \ub9d0\ub85c \uc774\ud574\ud558\uba74 \ub41c\ub2e4. \uc911\ucca9\ud074\ub798\uc2a4\uc5d0\ub294 \uc815\uc801 \uba64\ubc84\ud074\ub798\uc2a4, (\ube44\uc815\uc801) \uba64\ubc84\ud074\ub798\uc2a4, \uc9c0\uc5ed\ud074\ub798\uc2a4, \uc775\uba85\ud074\ub798\uc2a4\uac00 \uc788\ub294\ub370, \uc790\uc138\ud558\uac8c \uc54c\uace0 \uc2f6\ub2e4\uba74 \ub2e4\uc74c \ud3ec\uc2a4\ud305\uc744 \ucc38\uace0\ud558\uc790.<\/p>\n\n\n\n<p>\uc911\ucca9\ud074\ub798\uc2a4\uc5d0\uc11c \ubc14\uae65 \uc778\uc2a4\ud134\uc2a4\uc5d0 \uc811\uadfc\ud560 \uc77c\uc774 \uc5c6\ub2e4\uba74 \ubb34\uc870\uac74 static\uc744 \ubd99\uc5ec\uc11c \uc815\uc801 \uba64\ubc84 \ud074\ub798\uc2a4\ub85c \ub9cc\ub4e4\uc5b4\ub77c. \ube44\uc815\uc801(non-static)\uc77c \uacbd\uc6b0 \ubc14\uae65 \uc778\uc2a4\ud134\uc2a4\uc5d0 \ub300\ud55c \uc228\uc740 \ucc38\uc870(\ubc14\uae65 \ud074\ub798\uc2a4\uba85.this)\ub97c \uac00\uc838\uc62c \uc218 \uc788\uac8c \ub418\ub294\ub370 \ube44\uc6a9\uc774 \ub4e4\uc5b4\uac04\ub2e4. \ub610\ud55c \uc774 \ucc38\uc870\ub54c\ubb38\uc5d0 GC\uac00 \uc81c\ub54c \uc218\uac70\ud558\uc9c0 \ubabb\ud574\uc11c \uba54\ubaa8\ub9ac \ub204\uc218\uac00 \uc0dd\uae38 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p>\ube44\uc815\uc801 \uba64\ubc84\ud074\ub798\uc2a4\ub294 \ubc14\uae65 \uc778\uc2a4\ud134\uc2a4\uc5d0 \uc811\uadfc\ud560 \uc77c\uc774 \uc788\uc744 \ub54c \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4. \uceec\ub809\uc158 \ud328\ud0a4\uc9c0\ub4e4\uc774 \uc774\ub97c \uc798 \ud65c\uc6a9\ud558\uc600\ub294\ub370, \ubcf4\ud1b5 \uc790\uc2e0\uc758 \uceec\ub809\uc158 \ubdf0(keySet, entrySet, values \ub4f1)\ub97c \ubc18\ud658\ud560 \ub54c \uc0ac\uc6a9\ud55c\ub2e4. \ub2e4\uc74c\uc740 HashMap\uc5d0\uc11c values()\uc758 \ucf54\ub4dc \uc77c\ubd80\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class HashMap&lt;K,V> extends AbstractMap&lt;K,V> implements Map&lt;K,V>, Cloneable, Serializable {\n    public Collection&lt;V> values() {\n        Collection&lt;V> vs = values;\n        if (vs == null) {\n            vs = new Values();\n            values = vs;\n        }\n        return vs;\n    }\n\n    final class Values extends AbstractCollection&lt;V> {\n        public final void clear() {\n            HashMap.this.clear();\n        }\n        ...\n    }\n    ...\n}\n<\/code><\/pre>\n\n\n\n<p>\ub610\ud55c \ud1b1\ub808\ubca8 \ud074\ub798\uc2a4 \ub0b4\ubd80\uc5d0\uc11c\ub9cc \uc4f0\uc778\ub2e4\uba74 private \uc911\ucca9 \ud074\ub798\uc2a4\ub85c \uc791\uc131\ud558\uc5ec \uc811\uadfc\ubc94\uc704\ub97c \ucd5c\uc18c\ud654\uc2dc\ud0a4\ub294 \uac8c \uc88b\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c25. \ud1b1\ub808\ubca8 \ud074\ub798\uc2a4\ub294 \ud55c \ud30c\uc77c\uc5d0 \ud558\ub098\ub9cc \ub2f4\uc73c\ub77c<\/h4>\n\n\n\n<p>\uc18c\uc2a4 \ud30c\uc77c \ud558\ub098\uc5d0 \ud1b1\ub808\ubca8 \ud074\ub798\uc2a4\ub97c \uc5ec\ub7ec\uac1c \uc120\uc5b8\ud558\uc5ec\ub3c4, \uc790\ubc14 \ucef4\ud37c\uc77c\ub7ec\ub294 \ubb38\uc81c\uc0bc\uc9c0 \uc54a\ub294\ub2e4. \ud558\uc9c0\ub9cc \ubb38\uc81c\uac00 \ub418\ub294 \uacbd\uc6b0\ub294 \uc874\uc7ac\ud55c\ub2e4. \uc608\ub97c\ub4e4\uba74 \ud55c \ud30c\uc77c\uc5d0 \ud074\ub798\uc2a4 2\uac1c\uac00 \uc815\uc758\ub418\uc5b4\uc788\ub294\ub370, \ub2e4\ub978 \ud30c\uc77c\uc5d0 \ub611\uac19\uc740 \ud074\ub798\uc2a4\uba85\uc73c\ub85c \ud074\ub798\uc2a4 2\uac1c\uac00 \uc815\uc758\ub418\uc5b4 \uc788\ub294 \uacbd\uc6b0\uc774\ub2e4. \uc774\ub7f4 \ub54c\ub294 \ucef4\ud30c\uc77c\uc774 \uc2e4\ud328\ud558\uac70\ub098, \ucef4\ud30c\uc77c \uc21c\uc11c\uc5d0 \ub530\ub77c \uc5b4\ub5bb\uac8c \ub3d9\uc791\ud560 \uc9c0 \uc608\uce21\ud560 \uc218 \uc5c6\uac8c \ub41c\ub2e4.<\/p>\n\n\n\n<p>\ub530\ub77c\uc11c \ud55c \ud30c\uc77c\uc5d0\ub294 \ud558\ub098\uc758 \ud1b1\ub808\ubca8 \ud074\ub798\uc2a4, \uc778\ud130\ud398\uc774\uc2a4\ub9cc \uc791\uc131\ud558\uc790<\/p>\n\n\n\n<p>\uc81c\ub124\ub9ad\uc740 jdk1.5 \ubd80\ud130 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. \uc81c\ub124\ub9ad\uc744 \uc9c0\uc6d0\ud558\uae30 \uc804\uc5d0\ub294 \uceec\ub809\uc158\uc5d0\uc11c \uac1d\uccb4\ub97c \uaebc\ub0bc \ub54c \ub9c8\ub2e4 \ud615\ubcc0\ud658\uc744 \ud574\uc57c \ud588\ub2e4. 1.5 \ubd80\ud130\ub294 \uc81c\ub124\ub9ad\uc744 \uc0ac\uc6a9\ud558\uba74 \uceec\ub809\uc158\uc5d0 \ub2f4\uc744 \uc218 \uc788\ub294 \ud0c0\uc785\uc744 \ucef4\ud30c\uc77c\ub7ec\uc5d0\uac8c \uc54c\ub824\uc8fc\uba70, \ucef4\ud30c\uc77c\ub7ec\uac00 \uc54c\uc544\uc11c \ud615\ubcc0\ud658 \ucf54\ub4dc\ub97c \ucd94\uac00\ud55c\ub2e4. \ub610\ud55c \uc5c9\ub6b1\ud55c \uac1d\uccb4\ub97c \ub123\ub294 \ucf54\ub4dc\uac00 \uc788\ub2e4\uba74 \ucef4\ud30c\uc77c \ud0c0\uc784\uc5d0 \ucc28\ub2e8\ud574\uc900\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c26. raw type\uc740 \uc0ac\uc6a9\ud558\uc9c0 \ub9c8\ub77c<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">26-1. raw type \uc774\ub780?<\/h5>\n\n\n\n<p>\ud074\ub798\uc2a4\uc640 \uc778\ud130\ud398\uc774\uc2a4 \uc120\uc5b8\uc5d0 \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218(ex.&nbsp;<code>&lt;E&gt;<\/code>)\uac00 \uc788\uc73c\uba74 \uac01\uac01 \uc81c\ub124\ub9ad \ud074\ub798\uc2a4, \uc81c\ub124\ub9ad \uc778\ud130\ud398\uc774\uc2a4\ub77c\uace0 \ubd80\ub978\ub2e4. \uc774\uac83\uc744 \uc81c\ub124\ub9ad \ud0c0\uc785\uc774\ub77c\uace0 \ud55c\ub2e4. (ex.&nbsp;<code>List&lt;E&gt;<\/code>) \uc81c\ub124\ub9ad \ud0c0\uc785\uc744 \uc815\uc758\ud558\uba74 raw type\ub3c4 \uc815\uc758\ub418\ub294\ub370, \uc5ec\uae30\uc11c&nbsp;<code>List&lt;E&gt;<\/code>\uc758 raw type\uc774\ub780 List \uc774\ub2e4. \uc989,&nbsp;\ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\ub97c \uc4f0\uc9c0 \uc54a\uc740 \uacbd\uc6b0\ub97c \ub9d0\ud55c\ub2e4. \uc774\uac83\uc740 \uc81c\ub124\ub9ad\uc774 \ub3c4\uc785\ub418\uae30 \uc804\uc758 \ucf54\ub4dc\ub4e4\uc758 \ud638\ud658\uc131\uc744 \uc704\ud55c \uac83\uc774\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">26-2. raw type\uc758 \uc0ac\uc6a9\uc744 \ube44\ucd94\ucc9c\ud55c\ub2e4.<\/h5>\n\n\n\n<p>\uc624\ub958\uc758 \ubc1c\uacac\uc740 \ucef4\ud30c\uc77c \ud0c0\uc784\uc5d0 \ub418\ub294\uac8c \uac00\uc7a5 \uc774\uc0c1\uc801\uc774\ub2e4. raw type\uc744 \uc0ac\uc6a9\ud560 \uacbd\uc6b0, unchecked \uacbd\uace0\uac00 \ub098\uc624\uba70, \uc798\ubabb\ub41c \ud0c0\uc785\uc744 add\ud560 \uc218\ub3c4 \uc788\ub2e4. \uc774\uac83\uc740 \ub7f0\ud0c0\uc784\uc5d0\uc11c \ubb38\uc81c\uac00 \uc0dd\uae38 \uac83\uc774\ub2e4. (ClassCastException \ub4f1) \ub530\ub77c\uc11c raw type\uc744 \uc4f0\uc9c0\ub9d0\uace0, \uc81c\ub124\ub9ad \ud0c0\uc785\uc744 \uc4f4\ub2e4\uba74 \ucef4\ud30c\uc77c\ub7ec\uc758 \uac80\uc0ac\ub825(\uc815\uc801\uc5b8\uc5b4\uc758 \uc7a5\uc810\uc744 \ud65c\uc6a9)\uacfc \ud0c0\uc785 \ubd88\ubcc0, \uc548\uc815\uc131\uc744 \uc5bb\uc744 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uc790\ubc14\uc640 \uac19\uc740 JVM\uc5b8\uc5b4 \uc911\uc5d0 \ucf54\ud2c0\ub9b0\uc740 \uc81c\ub124\ub9ad\uc744 \uc4f0\uc9c0 \uc54a\uc73c\uba74 \uceec\ub809\uc158\uc744 \uc4f0\uc9c0 \ubabb\ud558\ub3c4\ub85d \uc544\uc608 \ub9c9\uc544\ubc84\ub838\ub2e4. \uc790\ubc14\ub294 \ud558\uc704\ud638\ud658\uc131 \ub54c\ubb38\uc5d0 \uc4f0\uc9c0\ub9d0\ub77c\uace0 \uad8c\uace0\ud558\uba74\uc11c\ub3c4 \ub9c9\uc9c0 \ubabb\ud55c \uc148..<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">26-3. raw type, \uc640\uc77c\ub4dc \uce74\ub4dc(<code>&lt;?&gt;<\/code>),&nbsp;<code>&lt;Object&gt;<\/code>\uc758 \ucc28\uc774<\/h5>\n\n\n\n<p>\ub9cc\uc57d \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\ub97c \uc2e0\uacbd\uc4f0\uc9c0 \uc54a\uace0 \uc4f0\uace0\uc2f6\ub2e4\ud574\ub3c4 raw type\ubcf4\ub2e8 \uc81c\ub124\ub9ad\uc758 \uc640\uc77c\ub4dc\uce74\ub4dc\ub97c \uc4f0\ub294 \uac83\uc774 \uc88b\ub2e4. (ex.&nbsp;<code>Set&lt;?&gt;<\/code>) \uc774\ub807\uac8c \ud558\uba74 \uc5b4\ub5a4 \ud0c0\uc785\ub3c4 \ubc1b\uc744 \uc218 \uc788\uc73c\uba74\uc11c \uc548\uc804\ud558\uba70 \uc720\uc5f0\ud574\uc9c4\ub2e4.<\/p>\n\n\n\n<p>\uc774 \ub458\uc758 \ucc28\uc774\uc810\uc740 raw type \uc740 \ud0c0\uc785\uc5d0 \uc548\uc804\ud558\uc9c0 \uc54a\uc73c\ub098, \uc640\uc77c\ub4dc\uce74\ub4dc\ub294 \uc548\uc804\ud558\ub2e4. \uc544\ub798 \uc608\uc81c\ub97c \ubcf4\uc790<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>List rawList = new ArrayList&lt;String>(); \/\/ \ub7f0\ud0c0\uc784\uc5d0\ub294 \uc544\ubb34\ub7f0 \ud0c0\uc785\uc774 \ub0a8\uc9c0 \uc54a\uae30\ub54c\ubb38\uc5d0 \ucef4\ud30c\uc77c \uc131\uacf5\nList&lt;?> wildList = new ArrayList&lt;String>(); \/\/ \ucef4\ud30c\uc77c \uc131\uacf5\nList&lt;Object> genericList = new ArrayList&lt;String>(); \/\/ \ucef4\ud30c\uc77c \uc2e4\ud328\n\nrawList.add(\"redboy\"); \/\/ \uc798 \ub3d9\uc791\ud55c\ub2e4.\n\nwildList.add(\"redboy\"); \/\/ \uc81c\ub124\ub9ad \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uc5d0 \uc758\uc874\uc131\uc774 \uc788\ub294\ub370, &lt;?>\ub294 \ud0c0\uc785\uc744 \uc54c\uc9c0 \ubabb\ud558\ubbc0\ub85c \ucef4\ud30c\uc77c\uc5d0 \uc2e4\ud328\ud55c\ub2e4. \ud0c0\uc785\uc548\uc815\uc131\uc774 \uc788\ub294 \uc148\nwildList.clear(); \/\/ \uc81c\ub124\ub9ad \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uc5d0 \uc758\uc874\uc774 \uc5c6\uc73c\ubbc0\ub85c \ub3d9\uc791\ud55c\ub2e4.\n<\/code><\/pre>\n\n\n\n<p><code>&lt;?><\/code>\uc640\u00a0<code>&lt;Object><\/code>\uc758 \ucc28\uc774\ub294 \uad6c\uccb4\uc801 \uc778\uc2a4\ud134\uc2a4\uc758 \ucc28\uc774\uc778\ub370,\u00a0<code>&lt;?><\/code>\ub294 \uc81c\ub124\ub9ad \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uc5d0 \uc758\uc874\uc131\uc774 \uc788\ub294 \ucf54\ub4dc\uac00 \uc788\ub2e4\uba74 \ucef4\ud30c\uc77c\ub7ec\uac00 \uc2e4\ud328\ucc98\ub9ac\ud55c\ub2e4.\u00a0<code>&lt;Object><\/code>\ub294 \ub0b4\ubd80\uc5d0\uc11c \ub610 \ub2e4\uc2dc \ud615 \ubcc0\ud658\ud574\uc57c\ud558\ubbc0\ub85c \ucf54\ub4dc\uac00 \uc880 \ub354 \ubcf5\uc7a1\ud574\uc9c0\uba70, \uc81c\ub124\ub9ad\uc758 \uc7a5\uc810\uc774 \uc0ac\ub77c\uc9c4\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">26-4. raw type\uc744 \uc4f0\ub294 \uc608\uc678<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>class \ub9ac\ud130\ub7f4\uc740 raw type\uc73c\ub85c \uc368\uc57c\ud55c\ub2e4.&nbsp;<code>List.class<\/code>&nbsp;\ub294 \ub418\uc9c0\ub9cc,&nbsp;<code>List&lt;String&gt;.class<\/code>&nbsp;\uc740 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\ub294\ub2e4.<\/li><li>instanceof \uc5f0\uc0b0\uc790\ub294 \ub7f0\ud0c0\uc784\uc5d0\uc11c \ud0c0\uc785\uc744 \ube44\uad50\ud55c\ub2e4. \uc81c\ub124\ub9ad \ud0c0\uc785\uc740 \ub7f0\ud0c0\uc784\uc5d0\uc11c \uc18c\uac70\ub418\ubbc0\ub85c \uc81c\ub124\ub9ad \ud0c0\uc785\uc73c\ub85c \ube44\uad50\ud560 \uc218 \uc5c6\ub2e4.<ul><li>ex.&nbsp;<code>o instanceof Set<\/code><\/li><\/ul><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c27. \ube44\uac80\uc0ac \uacbd\uace0\ub97c \uc81c\uac70\ud558\ub77c<\/h4>\n\n\n\n<p>\ube44\uac80\uc0ac \uacbd\uace0(ex.&nbsp;<code>warning: [unchecked] unchecked ...<\/code>)\ub97c \uc81c\uac70\ud560\uc218\ub85d \ud0c0\uc785 \uc548\uc815\uc131\uc774 \ub192\uc544\uc9c4\ub2e4\uace0 \ubcfc \uc218 \uc788\ub2e4. \ub9cc\uc57d \ud0c0\uc785 \uc548\uc815\uc131\uc774 \ud655\uc2e4\ud55c\ub370 \ucef4\ud30c\uc77c\ub7ec\uc758 \uacbd\uace0\ub97c \uc5c6\uc560\uace0 \uc2f6\ub2e4\uba74&nbsp;<code>@SuppressWarnings(\"unchecked\")<\/code>\ub97c \uc0ac\uc6a9\ud558\uc790. \ub85c\uadf8\uc5d0 \ud30c\ubb3b\ud600\uc11c \ud544\uc694\ud55c \ub85c\uadf8\ub97c \ubc1c\uacac\ud558\uae30 \uc5b4\ub835\uac8c \ud558\uc9c0\uc54a\ub3c4\ub85d \ub9d0\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc774\ub54c @SuppressWarnings\uc758 \ubc94\uc704\ub97c \ucd5c\ub300\ud55c \uc904\uc5ec\uc11c \ub2ec\uc790. \uba54\uc18c\ub4dc\ub808\ubca8, \ud074\ub798\uc2a4\ub808\ubca8\ubcf4\ub2e8 \ube44\uac80\uc0ac \uacbd\uace0\uac00 \ub728\ub294 \uc9c0\uc5ed\ubcc0\uc218 \ub808\ubca8\uc5d0 \ub2e4\ub294 \uac83\uc774 \uac00\uc7a5 \uc88b\ub2e4. \ub610\ud55c \uc774\ub54c \ud0c0\uc785\uc5d0 \uc548\uc804\ud55c \uc774\uc720\ub97c \uc8fc\uc11d\uc73c\ub85c \ucd94\uac00\ud574\ub450\ub294 \uac83\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c28. \ubc30\uc5f4\ubcf4\ub2e4\ub294 \ub9ac\uc2a4\ud2b8\ub97c \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">28-1. \ubc30\uc5f4\uacfc \ub9ac\uc2a4\ud2b8\uc758 \ucc28\uc774<\/h5>\n\n\n\n<p>\ubc30\uc5f4\uc740 \uacf5\ubcc0(covariant)\uc774\ub2e4.&nbsp;<code>class Sub extends Super<\/code>&nbsp;\uc774\ub77c\uba74 Sub[]\ub294 Super[]\uc758 \ud558\uc704 \ud0c0\uc785\uc774\ub2e4. \uadf8\ub7ec\ub098 \ub9ac\uc2a4\ud2b8\ub294 \ubd88\uacf5\ubcc0(invariant)\uc774\ub2e4.&nbsp;<code>List&lt;Sub&gt;<\/code>\uc640&nbsp;<code>List&lt;Super&gt;<\/code>\uc740 \ud558\uc704-\uc0c1\uc704 \ud0c0\uc785\uc758 \uad00\uacc4\uac00 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc608\ub97c\ub4e4\uc5b4&nbsp;<code>List&lt;String&gt;<\/code>\uc5d0\ub294 \ubb38\uc790\uc5f4\ub9cc \ub123\uc744 \uc21c \uc788\uc73c\ub098,&nbsp;<code>List&lt;Object&gt;<\/code>\uc5d0\ub294 \uc5b4\ub5a4 \uac1d\uccb4\ub3c4 \ub123\uc744 \uc218 \uc788\ub2e4. \uc774 \ub458\uc740 \uc11c\ub85c \ud558\ub294 \uc77c\uc744 \ubc14\uafbc\ub2e4\uba74 \uc81c\ub300\ub85c \uc218\ud589\ud558\uc9c0 \ubabb\ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc544\ub798 \ucf54\ub4dc \uc608\uc81c\ub97c \ubcf4\uc790.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Object[] objectArray = new Integer[1];\nobjectArray[0] = \"Hello world\"; \/\/ \ub7f0\ud0c0\uc784\uc5d0 ArrayStoreException \ubc1c\uc0dd\n\nList&lt;Object> objectList = new ArrayList&lt;Integer>; \/\/ \ucef4\ud30c\uc77c \uc2e4\ud328\nobjectList.add(\"Hello world\"); \/\/ \uc704\uc5d0\uc11c \uc774\ubbf8 \ucef4\ud30c\uc77c\uc5d0 \uc2e4\ud328\ud588\uc73c\uba70, \ud0c0\uc785\uc774 \ub2ec\ub77c \ub123\uc744 \uc218\ub3c4 \uc5c6\ub2e4\n<\/code><\/pre>\n\n\n\n<p>\ubc30\uc5f4\uc774\ub4e0 \ub9ac\uc2a4\ud2b8\uc774\ub358 Integer\uc6a9 \uc800\uc7a5\uc18c\uc5d0 String\uc744 \ub123\uc744 \uc21c \uc5c6\uc73c\ub098, \uc804\uc790\ub294 \ub7f0\ud0c0\uc784\uc5d0 \uc2e4\uc218\ub97c \uc54c \uc218 \uc788\uace0, \ud6c4\uc790\ub294 \ucef4\ud30c\uc77c\ud0c0\uc784\uc5d0 \uc54c \uc218 \uc788\ub2e4. \ud6c4\uc790\uac00 \ub2f9\uc5f0\ud788 \uc88b\uc73c\ub2c8, \ubc30\uc5f4\ubcf4\ub2e4\ub294 \ub9ac\uc2a4\ud2b8\ub97c \uc0ac\uc6a9\ud558\uc790. \uacc4\uc18d \uc704\uc5d0\uc11c \ubd80\ud130 \uac19\uc740 \ub9d0\uc744 \ud558\uace0 \uc788\uc9c0\ub9cc \ud0c0\uc785\uc548\uc815\uc131\uc744 \uc5bb\uc744 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\ub2e4\ub9cc \uc131\ub2a5\uc801\uc778 \uce21\uba74\uc5d0\uc120 \ubc30\uc5f4\uc774 \uc55e\uc124 \uc218 \uc788\ub2e4. \ucc38\uace0\ub85c \uc81c\ub124\ub9ad \ubc30\uc5f4\uc740 \uc560\ucd08\uc5d0 \ub9cc\ub4e4 \uc218 \uc5c6\uac8c \ub9c9\uc544\ub450\uc5c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c29. \uc774\uc655\uc774\uba74 \uc81c\ub124\ub9ad \ud0c0\uc785\uc73c\ub85c \ub9cc\ub4e4\uc5b4\ub77c<\/h4>\n\n\n\n<p>\ub2e4\uc74c\uc740 \uc77c\ubc18 \ud074\ub798\uc2a4\ub97c \uc81c\ub124\ub9ad \ud074\ub798\uc2a4\ub85c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc774\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\ud074\ub798\uc2a4 \uc120\uc5b8\uc5d0 \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\ub97c \ucd94\uac00<\/li><li>\uc77c\ubc18 \ud0c0\uc785(ex. Object)\ub97c \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\ub85c \uad50\uccb4<\/li><li>\ube44\uac80\uc0ac(unchecked) \uacbd\uace0 \ud574\uacb0\ud574\uc8fc\uae30<\/li><\/ol>\n\n\n\n<p>\ub2e4\uc74c\uc740 \uc77c\ubc18 \ud074\ub798\uc2a4 Stack \uc744 \uc81c\ub124\ub9ad \ud074\ub798\uc2a4\ub85c \ubc14\uafd4\ubcf8 \uc608\uc81c\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Stack { \/\/ => Stack&lt;E>\n    private Object[] elements; \/\/ => E[] elements;\n    private int size = 0;\n    private static final int DEFAULT_INITIAL_CAPACITY = 16;\n\n    \/\/ => @SuppressWarnings(\"unchecked\")\n    public Stack() {\n        elements = new Object[DEFAULT_INITIAL_CAPACITY]; \/\/ => (E[]) new Object[DEFAULT_INITIAL_CAPACITY];\n    }\n\n    public void push(Object e) { \/\/ => push(E e)\n        ensureCapacity();\n        elements[size++] = e;\n    }\n\n    private void ensureCapacity() {\n        if (elements.length == size)\n            elements = Arrays.copyOf(elements, 2 * size + 1);\n    }\n\n    public Object pop() { \/\/ => E pop()\n        if (size == 0)\n            throw new EmptyStackException();\n        Object result = elements[--size]; \/\/ => E result = elements[--size];\n        elements[size] = null;\n        return result;\n    }\n\n    ...\n}\n<\/code><\/pre>\n\n\n\n<p>\uc81c\ub124\ub9ad\ud654(gernerification)\uc758 \uc7a5\uc810\uc740 \uc704\uc5d0\uc11c \uacc4\uc18d \ub9d0\ud55c\ub300\ub85c\uc774\ub2e4.<\/p>\n\n\n\n<p>\ucc38\uace0\ub85c \uae30\ubcf8 \ud0c0\uc785\uc740 \uc81c\ub124\ub9ad \ud0c0\uc785\uc73c\ub85c \uc4f8 \uc218 \uc5c6\ub2e4. (ex.&nbsp;<code>List&lt;int&gt;<\/code>) \uc774\ub7f4 \ub550 \ubc15\uc2f1\ub41c \uae30\ubcf8\ud0c0\uc785\uc73c\ub85c \uc4f0\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c30. \uc774\uc655\uc774\uba74 \uc81c\ub124\ub9ad \uba54\uc18c\ub4dc\ub85c \ub9cc\ub4e4\uc5b4\ub77c<\/h4>\n\n\n\n<p>\ud074\ub798\uc2a4\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c \uba54\uc18c\ub4dc\ub3c4 \uc81c\ub124\ub9ad\uc774 \uac00\ub2a5\ud558\ub2e4\uba74 \uc0ac\uc6a9\ud558\uc790. \uc0ac\uc6a9\uc790 \uce21\uc5d0\uc11c \ud615\ubcc0\ud658\ud558\ub294 \uac83\ubcf4\ub2e4 \ud6e8\uc52c \uc548\uc804\ud558\uace0 \uc720\uc5f0\ud574\uc9c4\ub2e4. \uc81c\ub124\ub9ad \ud074\ub798\uc2a4 \uc791\uc131\ubc95\uacfc \ube44\uc2b7\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static Set union(Set s1, Se s2) { \/\/ => &lt;E> Set&lt;E> union(Set&lt;E> s1, Set&lt;E> s2)\n    Set result = new HashSet(s1); \/\/ => Set&lt;E> result = new HashSet&lt;>(s1);\n    result.addAll(s2);\n    return result;\n}\n<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">30-1. \uc81c\ub124\ub9ad \uc2f1\uae00\ud1a4 \ud329\ud1a0\ub9ac<\/h5>\n\n\n\n<p>\ub54c\ub54c\ub85c \ubd88\ubcc0 \uac1d\uccb4\ub97c \uc5ec\ub7ec \ud0c0\uc785\uc73c\ub85c \ud65c\uc6a9\ud560 \uc218 \uc788\uac8c \ub9cc\ub4e4\uc5b4\uc57c \ud560 \ub54c\uac00 \uc788\ub294\ub370, \uc774\ub54c\ub294 \uc81c\ub124\ub9ad \uc2f1\uae00\ud1a4 \ud329\ud1a0\ub9ac\ub97c \ub9cc\ub4e4\uba74 \ub41c\ub2e4. Collections.reverseOrder, Collections.emptySet\uc774 \uc88b\uc740 \uc608\uc81c\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@SuppressWarnings(\"unchecked\")\npublic static &lt;T> Comparator&lt;T> reverseOrder() {\n    return (Comparator&lt;T>) ReverseComparator.REVERSE_ORDER;\n}\n<\/code><\/pre>\n\n\n\n<p>\ub9cc\uc57d \uc81c\ub124\ub9ad\uc744 \uc4f0\uc9c0 \uc54a\uc558\ub2e4\uba74 \uc694\uccad \ud0c0\uc785\ub9c8\ub2e4 \ud615\ubcc0\ud658\ud558\ub294 \uc815\uc801 \ud329\ud1a0\ub9ac\ub97c \ub9cc\ub4e4\uc5c8\uc5b4\uc57c \ud560 \uac83\uc774\ub2e4. (\ud0c0\uc785\ubcc4\ub85c \uc815\uc801\uba54\uc18c\ub4dc\uac00 1\uac1c\uc529..)<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">30-2. \uc7ac\uadc0\uc801 \ud0c0\uc785 \ud55c\uc815<\/h5>\n\n\n\n<p>\uc790\uae30 \uc790\uc2e0\uc774 \ub4e4\uc5b4\uac04 \ud45c\ud604\uc2dd\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uc758 \ud5c8\uc6a9 \ubc94\uc704\ub97c \ud55c\uc815\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\ub2e4\uc74c\uacfc \uac19\uc774 \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uc744 \ud55c\uc815\uc801\uc73c\ub85c \uae30\uc220\ud574\uc8fc\ub294 \ubc29\uc2dd\uc774\ub2e4. \uc774\ub97c \ud1b5\ud574 \ubaa8\ub4e0 \ud0c0\uc785 E\ub294 \uc790\uc2e0\uacfc \ube44\uad50\ud560 \uc218 \uc788\ub2e4\ub77c\ub294 \uac83\uc744 \ub098\ud0c0\ub0c8\ub2e4. max \uba54\uc18c\ub4dc\uc758 \ub9ac\ud134\uac12\uc740&nbsp;<code>Comparable&lt;E&gt;<\/code>\uc744 \uad6c\ud604\ud588\uc73c\ubbc0\ub85c, \ub2e4\ub978 E\uc640 \ube44\uad50\ud560 \uc218 \uc788\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p><code>public static &lt;E extends Comparable&lt;E&gt;&gt; E max(Collection&lt;E&gt; c)<\/code><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c31. \ud55c\uc815\uc801 \uc640\uc77c\ub4dc\uce74\ub4dc\ub97c \uc0ac\uc6a9\ud574 API \uc720\uc5f0\uc131\uc744 \ub192\uc5ec\ub77c<\/h4>\n\n\n\n<p>\uc81c\ub124\ub9ad\uc758 \ub9e4\uac1c\ubcc0\uc218\ud654 \ud0c0\uc785(ex. E)\uc740 \ubd88\uacf5\ubcc0\uc774\ub2e4. \uc544\uc774\ud15c 29\uc758 \uc81c\ub124\ub9ad \ud074\ub798\uc2a4 Stack\uc744 \uc608\ub85c \ub4e4\uc5b4\ubcf4\uc790. \uc544\ub798 \uba54\uc18c\ub4dc\uac00 \ucd94\uac00\ub418\uc5c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public void pushAll(Iterable&lt;E> src) { \/\/ \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\ub294 \ud074\ub798\uc2a4 \ub808\ubca8\uc5d0 \uc815\uc758\ub428\n    for (E e : src) push(e);\n}\n\n\/\/ \uba54\uc778\uba54\uc18c\ub4dc\nStack&lt;Number> numberStack = new Stack&lt;>();\nIterable&lt;Integer> integers = ...;\nnumberStack.pushAll(integers); \/\/ ERROR \ubc1c\uc0dd. incompatible types: Iterable&lt;Integer>\n<\/code><\/pre>\n\n\n\n<p>\uc774\uac83\uc740 \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud558\uba70, \uc6d0\uc778\uc740 \ubd88\uacf5\ubcc0\ub54c\ubb38\uc774\ub2e4.&nbsp;<code>Iterable&lt;Number&gt;<\/code>\uac00 \ub118\uc5b4\uc640\uc57c \ud558\ub294\ub370&nbsp;<code>Iterable&lt;Integer&gt;<\/code>\uac00 \ub118\uc5b4\uc654\uc73c\uba70, \uc774 \ub458\uc740 \uc11c\ub85c \ub2e4\ub978 \ud0c0\uc785\uc774\uae30 \ub54c\ubb38\uc5d0 \ucef4\ud30c\uc77c \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud55c \uac83\uc774\ub2e4. \uc0ac\uc2e4 \ub17c\ub9ac\uc801\uc73c\ub85c\ub294 \ubb38\uc81c\uac00 \uc5c6\uc5b4\uc57c\ud558\ub294\ub370, \ucef4\ud30c\uc77c\ub7ec\ub294 \uc774\uac83\uc744 \ubb38\uc81c\ub85c \uc0bc\uc558\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">31-1. \ud55c\uc815\uc801 \uc640\uc77c\ub4dc\uce74\ub4dc \ud0c0\uc785\uc744 \uc0ac\uc6a9\ud558\uc790<\/h5>\n\n\n\n<p>\uc704 \uac19\uc740 \uacbd\uc6b0 \ud55c\uc815\uc801 \uc640\uc77c\ub4dc\uce74\ub4dc \ud0c0\uc785\uc744 \uc0ac\uc6a9\ud558\uba74 \uc27d\uac8c \ud574\uacb0\ud560 \uc218 \uc788\ub2e4. E\uc758 Iterable\uc774 \uc544\ub2cc E\uc758 \ud558\uc704\ud0c0\uc785\uc758 Iterable\ub85c \ub9cc\ub4e4\uba74 \ub41c\ub2e4. \uc544\ub798\ucc98\ub7fc\ud558\uba74&nbsp;<code>Iterable&lt;Integer&gt;<\/code>\ub3c4 \ubb38\uc81c\uc5c6\uc774 \ucef4\ud30c\uc77c\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public void pushAll(Iterable&lt;? extends E> src) {\n    for (E e : src) push(e);\n}\n<\/code><\/pre>\n\n\n\n<p>\ub9cc\uc57d E\uc758 \uc0c1\uc704\ud0c0\uc785\uc744 \ud45c\ud604\ud558\uace0 \uc2f6\ub2e4\uba74&nbsp;<code>&lt;? super E&gt;<\/code>&nbsp;\ub77c\uace0 \uc4f0\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<p>\uc774\uac83\uc740 \uc5b4\ub290\uc815\ub3c4 \uacf5\uc2dd\ud654\ub418\uc5b4\uc788\ub294\ub370, PECS(producer-extends, consumer-super)\ub77c\uace0 \uae30\uc5b5\ud574\ub450\uba74 \uc88b\ub2e4. \ub9e4\uac1c\ubcc0\uc218\ud654 \ud0c0\uc785 T\uac00 \uc0dd\uc0b0\uc790\ub77c\uba74,&nbsp;<code>&lt;? extends T&gt;<\/code>\ub97c \uc0ac\uc6a9\ud558\uace0, \uc18c\ube44\uc790\ub77c\uba74&nbsp;<code>&lt;? super T&gt;<\/code>\ub97c \uc0ac\uc6a9\ud574\ub77c. \uc704\uc758 pushAll()\uc740 \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc0b0\ud558\uace0 \uc788\uc73c\ubbc0\ub85c \uc0dd\uc0b0\uc790\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc704\uc758 30-2 \uc5d0\uc11c max \uba54\uc18c\ub4dc\ub3c4 \ud55c\uc815\uc801 \uc640\uc77c\ub4dc\uce74\ub4dc\ub97c \uc774\uc6a9\ud574 \ub2e4\ub4ec\uc744 \uc218 \uc788\ub2e4. \uc785\ub825 \ub9e4\uac1c\ubcc0\uc218(c)\ub294 E \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc0b0\ud558\ubbc0\ub85c extends \uc774\uace0, \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\ub294 E \uc778\uc2a4\ud134\uc2a4\ub97c \uc18c\ube44\ud558\ubbc0\ub85c super \uc774\ub2e4.<\/p>\n\n\n\n<p><code>public static &lt;E extends Comparable&lt;? super E&gt;&gt; E max(Collection&lt;? extends E&gt; c)<\/code><\/p>\n\n\n\n<p>\uc5b4\ub5a4 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc9c1\uc811 \uad6c\ud604\ud55c \ud074\ub798\uc2a4\ub97c \ud655\uc7a5\ud55c \ud0c0\uc785\uc744 \uc9c0\uc6d0\ud558\uae30 \uc704\ud574 \ud55c\uc815\uc801 \uc640\uc77c\ub4dc\uce74\ub4dc\uac00 \ud544\uc694\ud558\ub2e4. \ub9d0\uc774 \ubcf5\uc7a1\ud558\uc9c0\ub9cc.. \ud55c\uc815\uc801 \uc640\uc77c\ub4dc\uce74\ub4dc\ub97c \uc500\uc73c\ub85c\uc368 \uacc4\uce35\uad6c\uc870\ub97c \uc720\uc5f0\ud558\uac8c \uc774\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">31-2. \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uc640 \uc640\uc77c\ub4dc\uce74\ub4dc \uba54\uc18c\ub4dc<\/h5>\n\n\n\n<p>\ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uc640 \uc640\uc77c\ub4dc\uce74\ub4dc\uc5d0\ub294 \uacf5\ud1b5\ub41c \ubd80\ubd84\uc774 \uc788\uc5b4\uc11c, \uba54\uc18c\ub4dc\ub97c \uc815\uc758\ud560 \ub54c \uc5b4\ub290 \uac83\uc744 \uc0ac\uc6a9\ud574\ub3c4 \uad1c\ucc2e\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static &lt;E> void swapA(List&lt;E> list, int i, int j) {...}\npublic static void swapB(List&lt;?> list, int i, int j) {...}\n<\/code><\/pre>\n\n\n\n<p>\ucc45\uc5d0\uc11c\ub294 swapB \uc2a4\ud0c0\uc77c\uc744 \uc120\ud638\ud558\ub294\ub370, \uc2e0\uacbd\uc368\uc57c\ud560 \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uac00 \uc5c6\ub294 \uc810\uc744 \ub4e4\uc5c8\ub2e4. \uadf8\ub7ec\ub098 \uacb0\uad6d swapB\ub294 \uac89\uc73c\ub85c \ubcf4\uae30\uc5d0\ub9cc \uae54\ub054\ud560 \ubfd0, swapA\ub97c \ub0b4\ubd80\uc801\uc73c\ub85c \ud638\ucd9c\ud558\ub294 wrapping method \uc77c \ubfd0\uc774\ub2e4. (\ub098\uac19\uc73c\uba74 swapA \uc2a4\ud0c0\uc77c\ub85c \ud560 \uac83 \uac19\uc740\ub370..)<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\uc544\uc774\ud15c32. \uc81c\ub124\ub9ad\uacfc \uac00\ubcc0\uc778\uc218\ub97c \ud568\uaed8 \uc4f8 \ub54c\ub294 \uc2e0\uc911\ud574\ub77c<\/h5>\n\n\n\n<p>\uac00\ubcc0\uc778\uc790\ub294&nbsp;\uc81c\ub124\ub9ad\uacfc \ud568\uaed8 jdk 1.5\uc5d0 \ucd94\uac00\ub418\uc5c8\uc73c\ub098, \uc774 \ub458\uc744 \ud63c\uc6a9\ud558\uba74 \ud0c0\uc785 \uc548\uc815\uc131\uc774 \uae68\uc9c8 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uac00\ubcc0\uc778\uc790\ub97c \ubc1b\ub294 \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud558\uba74 \ud638\ucd9c\uc2dc\uc810\uc5d0 \ubc30\uc5f4\uc774 \uc0dd\uae34\ub2e4. \uc989, \uc544\uc774\ud15c 28\uc5d0\uc11c \uc560\ucd08\uc5d0 \ub9cc\ub4e4 \uc218 \uc5c6\ub2e4\ub358 \uc81c\ub124\ub9ad \ubc30\uc5f4\uc774 \ub9cc\ub4e4\uc5b4\uc9c0\ub294 \uac83\uc774\ub2e4. \uc774\uac83\uc740 \uac00\ubcc0\uc778\uc790\uac00 \uc2e4\ubb34\uc5d0\uc11c \ub9e4\uc6b0 \uc720\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0 \ubaa8\uc21c\uc774\uc9c0\ub9cc \uc218\uc6a9\ud55c \uac83\uc774\ub2e4. \ub2e4\uc74c\uc740 \uc81c\ub124\ub9ad \uac00\ubcc0\uc778\uc790 \uba54\uc18c\ub4dc\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Arrays\n@SafeVarargs\n@SuppressWarnings(\"varargs\")\npublic static &lt;T> List&lt;T> asList(T... a) {\n    return new ArrayList&lt;>(a);\n}\n<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">32-1. @SafeVarargs<\/h5>\n\n\n\n<p>jdk 1.7\ubd80\ud130 \ub3c4\uc785\ub41c @SafeVarargs\ub97c \uc0ac\uc6a9\ud558\uba74 \uc81c\ub124\ub9ad \uac00\ubcc0\uc778\uc218\uc640 \uad00\ub828\ub41c \uacbd\uace0\ub97c \uc228\uae38 \uc218 \uc788\ub2e4. @SafeVarargs\ub294 \uc81c\ub124\ub9ad \uac00\ubcc0\uc778\uc790 \uba54\uc18c\ub4dc \uc791\uc131\uc790\uac00 \uadf8 \uba54\uc18c\ub4dc\uac00 \ud0c0\uc785 \uc548\uc804\ud568\uc744 \ubcf4\uc7a5\ud558\ub294 \uc7a5\uce58\ub2e4. \ucef4\ud30c\uc77c\ub7ec\ub294 \uc774\uac83\uc744 \ubbff\uace0 \uacbd\uace0\ub97c \ud558\uc9c0\uc54a\ub294\ub2e4.<\/p>\n\n\n\n<p>\ub2e4\uc74c\uc740 \uc81c\ub124\ub9ad \uac00\ubcc0\uc778\uc790 \uba54\uc18c\ub4dc\ub97c \uc548\uc804\ud558\uac8c \uc791\uc131\ud558\ub294 \ubc29\ubc95\uc774\ub2e4. \uc774\ub97c \uc9c0\ud0a8\ub2e4\uba74 @SafeVarargs\ub97c \ub2ec\uc544\ub3c4 \ub418\uba70, \ub2ec\uc9c0 \ubabb\ud55c\ub2e4\uba74 \uc791\uc131\ud558\uba74 \uc548\ub41c\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\uba54\uc18c\ub4dc\uac00 \uc81c\ub124\ub9ad \uac00\ubcc0\uc778\uc790 \ubc30\uc5f4\uc5d0 \uc544\ubb34\uac83\ub3c4 \uc800\uc7a5\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/li><li>\uadf8 \ubc30\uc5f4\uc758 \ucc38\uc870\uac00 \ubc16\uc73c\ub85c \ub178\ucd9c\ub418\uc9c0 \uc54a\ub294\ub2e4. (<code>return varargs<\/code>)<\/li><li>\uc989, \uc21c\uc218\ud558\uac8c \uc778\uc218\ub4e4\uc744 \uc804\ub2ec\ud558\ub294 \uc5ed\ud560\ub9cc \ud574\uc57c\ud55c\ub2e4. (ex. Arrays.asList \uba54\uc18c\ub4dc \ucc38\uc870)<\/li><\/ol>\n\n\n\n<p>\ucc38\uace0\ub85c @SafeVarargs\uc740 \uc7ac\uc815\uc758\ud560 \uc218 \uc5c6\ub294 \uba54\uc18c\ub4dc(static, final)\uc5d0\ub9cc \ubd99\uc77c \uc218 \uc788\ub2e4. \uc7ac\uc815\uc758\ud55c \uba54\uc18c\ub4dc\uc5d0\uc11c\ub294 \uc548\uc804\ud560 \uc9c0 \ubcf4\uc7a5\uc774 \uc548\ub418\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c33. \ud0c0\uc785 \uc548\uc804 \uc774\uc885 \ucee8\ud14c\uc774\ub108\ub97c \uace0\ub824\ud558\ub77c<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">33-1. \ud0c0\uc785 \uc548\uc804 \uc774\uc885 \ucee8\ud14c\uc774\ub108\ub294 \uc5b8\uc81c \uc4f0\uc774\ub294\uac00?<\/h5>\n\n\n\n<p><code>Set&lt;E&gt;<\/code>,&nbsp;<code>Map&lt;K,V&gt;<\/code>&nbsp;\ucc98\ub7fc \ud074\ub798\uc2a4 \ub808\ubca8\uc5d0\uc11c \ub9e4\uac1c\ubcc0\uc218\ud654 \ud560 \uc218 \uc788\ub294 \ud0c0\uc785\uc758 \uc218\ub294 \uc81c\ud55c\uc801\uc774\ub2e4. (ex. Map \uc740 2\uac1c)<\/p>\n\n\n\n<p>\ud0c0\uc785\uc758 \uc218\uc5d0 \uc81c\uc57d\uc5c6\uc774 \uc720\uc5f0\ud558\uac8c \ud544\uc694\ud55c \uacbd\uc6b0, \ud2b9\uc815 \ud0c0\uc785 \uc678\uc5d0 \ub2e4\uc591\ud55c \ud0c0\uc785\uc744 \uc9c0\uc6d0\ud574\uc57c\ud558\ub294 \uacbd\uc6b0\uac00 \uc788\uc744 \uc218 \uc788\ub2e4. \uc774 \ub54c \ud074\ub798\uc2a4 \ub300\uc2e0 \ud0a4\ub97c \ub9e4\uac1c\ubcc0\uc218\ud654\ud55c \ub2e4\uc74c get\/set \ud560\ub54c \ud0a4 \ud0c0\uc785\uc744 \uc81c\uacf5\ud574\uc8fc\uba74 \ub41c\ub2e4. \uc774\uac83\uc744&nbsp;\ud0c0\uc785 \uc548\uc804 \uc774\uc885(heterogeneous) \ucee8\ud14c\uc774\ub108 \ud328\ud134\uc774\ub77c\uace0 \ud55c\ub2e4. (\ucee8\ud14c\uc774\ub108 = \ud074\ub798\uc2a4 \ub77c\uace0 \uc774\ud574\ud558\uba74 \ub420 \ub4ef\ud558\ub2e4)<\/p>\n\n\n\n<p>\ucef4\ud30c\uc77c\ud0c0\uc784 \ud0c0\uc785 \uc815\ubcf4\uc640 \ub7f0\ud0c0\uc784 \ud0c0\uc785 \uc815\ubcf4\ub97c \uc704\ud574 \uba54\uc18c\ub4dc\uc5d0\uc11c \uc8fc\uace0 \ubc1b\ub294 class \ub9ac\ud130\ub7f4\uc744 \ud0c0\uc785 \ud1a0\ud070\uc774\ub77c\uace0 \ud55c\ub2e4. (ex.&nbsp;<code>Integer.class<\/code>\ub294 class \ub9ac\ud130\ub7f4\uc774\uba70 \ud0c0\uc785\ud1a0\ud070\uc740&nbsp;<code>Class&lt;Integer&gt;<\/code>) \ud0c0\uc785 \ud1a0\ud070\uc740 \ud0c0\uc785 \uc548\uc804\uc131\uc774 \ud544\uc694\ud55c \uacf3\uc5d0 \uc8fc\ub85c \uc0ac\uc6a9\ub41c\ub2e4.<\/p>\n\n\n\n<p>\uc544\ub798\ub294 \uc801\uc808\ud55c \uc608\uc81c\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>private Map&lt;Class&lt;?>, Object> map = new HashMap&lt;>(); \/\/ \uc81c\ub124\ub9ad\uc744 \uc911\ucca9\ud574\uc11c \uc37c\uc73c\ubbc0\ub85c class \ub9ac\ud130\ub7f4\uc774\uba74 \ubb50\ub4e0 \ub123\uc744 \uc218 \uc788\ub2e4.\n\npublic &lt;T> void put(Class&lt;T> type, T instance) {\n    map.put(Objects.requireNonNull(type), type.cast(instance));\n}\n\npublic &lt;T> T get(Class&lt;T> type) {\n    return type.cast(map.get(type)); \/\/ \ub3d9\uc801 \ud615 \ubcc0\ud658\n}\n\n\/\/ \uba54\uc778\uba54\uc18c\ub4dc\nput(String.class, \"Redboy\");\nget(String.class);\n<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">33-2. \ud0c0\uc785 \uc548\uc804 \uc774\uc885 \ucee8\ud14c\uc774\ub108\uc758 \uc81c\uc57d\uacfc \uc288\ud37c \ud0c0\uc785 \ud1a0\ud070<\/h5>\n\n\n\n<p>\uc2e4\uccb4\ud654 \ubd88\uac00 \ud0c0\uc785\uc5d0\ub294 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4. String, String[]\uc740 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc9c0\ub9cc,&nbsp;<code>List&lt;String&gt;<\/code>\uc740 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4.&nbsp;<code>List&lt;String&gt;.class<\/code>&nbsp;\ub77c\ub294 \ub9ac\ud130\ub7f4\uc744 \uc5bb\uc744 \uc218 \uc5c6\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc774\uac83\uc744 \ud574\uacb0\ud558\uae30 \uc704\ud574 \uc288\ud37c\ud0c0\uc785 \ud1a0\ud070\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. \uc288\ud37c \ud0c0\uc785\uc744 \ud1a0\ud070\uc73c\ub85c \uc0ac\uc6a9\ud55c\ub2e4\ub294 \uc758\ubbf8\uc774\uba70, \uc0c1\uc18d\uacfc Reflection\uc744 \uc870\ud569\ud574\uc11c&nbsp;<code>List&lt;String&gt;.class<\/code>&nbsp;\uac19\uc774 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub294 class \ub9ac\ud130\ub7f4\uc744 \ud0c0\uc785 \ud1a0\ud070\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 \uac83\uacfc \uac19\uc740 \ud6a8\uacfc\ub97c \ub0bc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 42 &#8211; \uc775\uba85 \ud074\ub798\uc2a4\ubcf4\ub2e4\ub294 \ub78c\ub2e4\ub97c \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">\ud568\uc218 \uac1d\uccb4\uc640 \ub78c\ub2e4\uc2dd<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud568\uc218 \uac1d\uccb4 : \ucd94\uc0c1 \uba54\uc11c\ub4dc\ub97c \ud558\ub098\ub9cc \ub2f4\uc740 \uc778\ud130\ud398\uc774\uc2a4\ub85c \ub78c\ub2e4\uc2dd\uc774 \ub4f1\uc7a5\ud558\uae30 \uc804\uc5d0\ub294 \uc775\uba85 \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud574\uc11c \uc8fc\ub85c \ub9cc\ub4e4\uc5c8\uc74c<code>Collections.sort(words, new Comparator&lt;String&gt;() {\n  public int compare(String s1, String s2) {\n      return Integer.compare(s1.length(), s2.length());\n  }\n})<\/code><\/li><li>\uc790\ubc148\uc5d0\uc640\uc11c \ucd94\uc0c1 \uba54\uc11c\ub4dc \ud558\ub098\uc9dc\ub9ac \uc778\ud130\ud398\uc774\uc2a4\ub294 \ud2b9\ubcc4\ud55c \uc758\ubbf8\ub97c \uc778\uc815\ubc1b\uc544 \ud2b9\ubcc4\ud55c \ub300\uc6b0\ub97c \ubc1b\uac8c\ub428<br>\ub78c\ub2e4\uc2dd\uc744 \uc774\uc6a9\ud574\uc11c \ud6e8\uc52c \uac04\uacb0\ud55c \ucf54\ub4dc\ub97c \ub9cc\ub4e4 \uc218 \uc788\uac8c\ub428<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Collections.sort(words, (s1, s2) -> Integer.compare(s1.length(), s2.length()));<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud0c0\uc785\uc744 \uba85\uc2dc\ud574\uc57c \ucf54\ub4dc\uac00 \ub354 \uba85\ud655\ud560 \ub54c\ub9cc \uc81c\uc678\ud558\uace0\ub294, \ub78c\ub2e4\uc758 \ubaa8\ub4e0 \ub9e4\uac1c\ubcc0\uc218 \ud0c0\uc785\uc740 \uc0dd\ub7b5\ud558\uc790<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\ub78c\ub2e4\uc758 \ub2e8\uc810<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\ub78c\ub2e4\ub294 \uc774\ub984\uc774 \uc5c6\uace0 \ubb38\uc11c\ud654\ub3c4 \ubabb\ud574\uc11c \ucf54\ub4dc \uc790\uccb4\ub85c \ub3d9\uc791\uc774 \uba85\ud655\ud788 \uc124\uba85\ub418\uc9c0 \uc54a\uac70\ub098 \ucf54\ub4dc \uc904 \uc218\uac00 \ub9ce\uc544\uc9c0\uba74 \ub78c\ub2e4\ub97c \uc4f0\uc9c0 \ub9d0\uc544\uc57c \ud55c\ub2e4<ul><li>\ub78c\ub2e4\ub294 \ud55c \uc904\uc77c \ub54c \uac00\uc7a5 \uc88b\uace0 \uae38\uc5b4\uc57c \uc138 \uc904 \uc548\uc5d0 \ub05d\ub0b4\ub294 \uac8c \uc88b\ub2e4<\/li><li>\ub78c\ub2e4\uac00 \uae38\uac70\ub098 \uac00\ub3c5\uc131\uc774 \ub5a8\uc5b4\uc9c4\ub2e4\uba74 \ub354 \uac04\ub2e8\ud788 \uc904\uc5ec\ubcf4\uac70\ub098 \ub78c\ub2e4\ub97c \uc4f0\uc9c0 \uc54a\ub294 \ucabd\uc73c\ub85c \ub9ac\ud329\ud1a0\ub9c1 \ud544\uc694\ud568<\/li><\/ul><\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\ub78c\ub2e4\ub85c \ub300\uccb4\ud560 \uc218 \uc5c6\ub294 \uac83<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\ucd94\uc0c1 \ud074\ub798\uc2a4\ub098 \ucd94\uc0c1 \uba54\uc11c\ub4dc\uac00 \uc5ec\ub7ec \uac1c\uc778 \uc778\ud130\ud398\uc774\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \ub9cc\ub4e4 \ub54c\ub294 \ub78c\ub2e4\ub97c \uc4f8 \uc218 \uc5c6\uc5b4\uc11c \uc775\uba85 \ud074\ub798\uc2a4\ub97c \uc368\uc57c \ud568<\/li><li>\ud568\uc218 \uac1d\uccb4\uac00 \uc790\uc2e0\uc744 \ucc38\uc870\ud574\uc57c \ud558\ub294 \uacbd\uc6b0 \uc775\uba85 \ud074\ub798\uc2a4\ub97c \uc368\uc57c \ud568<ul><li>\ub78c\ub2e4\ub294 \uc790\uc2e0\uc744 \ucc38\uc870\ud560 \uc218 \uc5c6\uc74c, \ub78c\ub2e4\uc5d0\uc11c\uc758 this \ud0a4\uc6cc\ub4dc\ub294 \ubc14\uae65 \uc778\uc2a4\ud134\uc2a4\ub97c \uac00\ub9ac\ud0b4<\/li><li>\uc775\uba85\ud074\ub798\uc2a4\uc758 this \ud0a4\uc6cc\ub4dc\ub294 \uc778\uc2a4\ud134\uc2a4 \uc790\uc2e0\uc744 \uac00\ub9ac\ud0b4<\/li><\/ul><\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\ub78c\ub2e4 \uc0ac\uc6a9\uc2dc \uc720\uc758\ud560 \uc810<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc9c1\ub82c\ud654 \ud615\ud0dc\uac00 \uad6c\ud604\ubcc4\ub85c \ub2e4\ub97c \uc218 \uc788\uc5b4\uc11c \ub78c\ub2e4\ub97c \uc9c1\ub82c\ud654\ud558\ub294 \uc77c\uc740 \uadf9\ud788 \uc0bc\uac00\uc57c \ud55c\ub2e4(\uc775\uba85 \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub3c4 \ub9c8\ucc2c\uac00\uc9c0)<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 43 &#8211; \ub78c\ub2e4\ubcf4\ub2e4\ub294 \uba54\uc11c\ub4dc \ucc38\uc870\ub97c \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud568\uc218 \uac1d\uccb4\ub97c \ub78c\ub2e4\ubcf4\ub2e4\ub3c4 \ub354 \uac04\uacb0\ud558\ub294 \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc774 \ubc14\ub85c \uba54\uc11c\ub4dc \ucc38\uc870\uc784<\/li><\/ul>\n\n\n\n<p>&lt;\ub78c\ub2e4\uc2dd \uc0ac\uc6a9 \ubc29\ubc95&gt;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>map.merge(key, 1, (count, incr) -> count + incr);<\/code><\/pre>\n\n\n\n<p>&lt;\uba54\uc11c\ub4dc \ucc38\uc870 \uc0ac\uc6a9 \ubc29\ubc95&gt;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>map.merge(key, 1, Integer::sum);<\/code><\/pre>\n\n\n\n<p>\uba54\uc11c\ub4dc \ucc38\uc870\ub97c \uc0ac\uc6a9\ud558\ub294 \ud3b8\uc774 \ubcf4\ud1b5\uc740 \ub354 \uc9e7\uace0 \uac04\uacb0\ud558\ubbc0\ub85c, \ub78c\ub2e4\ub85c \uad6c\ud604\ud588\uc744 \ub54c \ub108\ubb34 \uae38\uac70\ub098 \ubcf5\uc7a1\ud558\ub2e4\uba74 \uba54\uc11c\ub4dc \ucc38\uc870\uac00 \uc88b\uc740 \ub300\uc548\uc774 \ub418\uc5b4\uc90c<\/p>\n\n\n\n<p>\ub54c\ub85c\ub294 \ub78c\ub2e4\uac00 \uba54\uc11c\ub4dc \ucc38\uc870\ubcf4\ub2e4 \uac04\uacb0\ud560 \ub54c\ub3c4 \uc788\uc74c, \uc8fc\ub85c \uba54\uc11c\ub4dc\uc640 \ub78c\ub2e4\uac00 \uac19\uc740 \ud074\ub798\uc2a4\uc5d0 \uc788\uc744 \ub54c\uc784<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>service.execute(GoshThisClassNameIsHumongous::action);<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>service.execute(() -> action());<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">\uba54\uc11c\ub4dc \ucc38\uc870 \uc720\ud615<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"\"><thead><tr><th>\uba54\uc11c\ub4dc \ucc38\uc870 \uc720\ud615<\/th><th>\uc608<\/th><th>\uac19\uc740 \uae30\ub2a5\uc744 \ud558\ub294 \ub78c\ub2e4<\/th><\/tr><\/thead><tbody><tr><td>\uc815\uc801<\/td><td>Integer::parseInt<\/td><td>str -&gt; Integer.parseInt(str)<\/td><\/tr><tr><td>\ud55c\uc815\uc801(\uc778\uc2a4\ud134\uc2a4)<\/td><td>Instant.now()::isAfter<\/td><td>Instant then = Instant.now(); t -&gt; then.isAfter(t)<\/td><\/tr><tr><td>\ube44\ud55c\uc815\uc801(\uc778\uc2a4\ud134\uc2a4)<\/td><td>String::toLowerCase<\/td><td>str -&gt; str.toLowerCase()<\/td><\/tr><tr><td>\ud074\ub798\uc2a4 \uc0dd\uc131\uc790<\/td><td>TreeMap&lt;K,V&gt;::new<\/td><td>() -&gt; new TreeMap&lt;K,V&gt;()<\/td><\/tr><tr><td>\ubc30\uc5f4 \uc0dd\uc131\uc790<\/td><td>int[]::new<\/td><td>len -&gt; new Int[len]<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\uba54\uc11c\ub4dc \ucc38\uc870 \ucabd\uc774 \uc9e7\uace0 \uba85\ud655\ud558\ub2e4\uba74 \uba54\uc11c\ub4dc \ucc38\uc870\ub97c \uc4f0\uace0 \uadf8\ub807\uc9c0 \uc54a\uc744 \ub54c\ub9cc \ub78c\ub2e4\ub97c \uc0ac\uc6a9\ud558\ub77c<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 44 &#8211; \ud45c\uc900 \ud568\uc218\ud615 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud544\uc694\ud55c \uc6a9\ub3c4\uc5d0 \ub9de\ub294\uac8c \uc788\ub2e4\uba74, \uc9c1\uc811 \uad6c\ud604\ud558\uc9c0 \ub9d0\uace0 \ud45c\uc900 \ud568\uc218\ud615 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud65c\uc6a9\ud558\ub77c<\/li><li>java.util.function \ud328\ud0a4\uc9c0\uc5d0\ub294 \ucd1d 43\uac1c\uc758 \uc778\ud130\ud398\uc774\uc2a4\uac00 \uc788\uc9c0\ub9cc \uae30\ubcf8 6\uac1c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub9cc \uae30\uc5b5\ud558\uba74 \ub098\uba38\uc9c0\ub97c \ucda9\ubd84\ud788 \uc720\ucd94\ud574\ub0bc \uc218 \uc788\ub2e4<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"\"><thead><tr><th>\uc778\ud130\ud398\uc774\uc2a4<\/th><th>\ud568\uc218 \uc2dc\uadf8\ub2c8\ucc98<\/th><th>\uc608<\/th><\/tr><\/thead><tbody><tr><td>UnaryOperator<\/td><td>T apply(T t)<\/td><td>String::toLowerCase<\/td><\/tr><tr><td>BinaryOperator<\/td><td>T apply(T t1, T t2)<\/td><td>BigInteger::add<\/td><\/tr><tr><td>Predicate<\/td><td>boolean test(T t)<\/td><td>Collection::isEmpty<\/td><\/tr><tr><td>Function&lt;T,R&gt;<\/td><td>R apply(T t)<\/td><td>Arrays::asList<\/td><\/tr><tr><td>Supplier<\/td><td>T get()<\/td><td>Instant::now<\/td><\/tr><tr><td>Consumer<\/td><td>void accept(T t)<\/td><td>System.out::println<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">\uc8fc\uc758\uc810<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud45c\uc900 \ud568\uc218\ud615 \uc778\ud130\ud398\uc774\uc2a4 \ub300\ubd80\ubd84\uc740 \uae30\ubcf8 \ud0c0\uc785\ub9cc \uc9c0\uc6d0\ud568, \uadf8\ub807\ub2e4\uace0 \uae30\ubcf8 \ud568\uc218\ud615 \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \ubc15\uc2f1\ub41c \uae30\ubcf8 \ud0c0\uc785\uc744 \ub123\uc5b4 \uc0ac\uc6a9\ud558\uc9c0\ub294 \ub9d0 \uac83<ul><li>\ub3d9\uc791\uc740 \ud558\uc9c0\ub9cc \uacc4\uc0b0\ub7c9\uc774 \ub9ce\uc744 \ub54c\ub294 \uc131\ub2a5\uc774 \ucc98\ucc38\ud788 \ub290\ub824\uc9c8 \uc218 \uc788\ub2e4<\/li><\/ul><\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\uc804\uc6a9 \ud568\uc218\ud615 \uc778\ud130\ud398\uc774\uc2a4 \uad6c\ud604\uc774 \ud544\uc694\ud55c \uacbd\uc6b0<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc790\uc8fc \uc4f0\uc774\uba70, \uc774\ub984 \uc790\uccb4\uac00 \uc6a9\ub3c4\ub97c \uba85\ud655\ud788 \uc124\uba85\ud574\uc900\ub2e4<\/li><li>\ubc18\ub4dc\uc2dc \ub530\ub77c\uc57c \ud558\ub294 \uaddc\uc57d\uc774 \uc788\ub2e4<\/li><li>\uc720\uc6a9\ud55c \ub514\ud3f4\ud2b8 \uba54\uc11c\ub4dc\ub97c \uc81c\uacf5\ud560 \uc218 \uc788\ub2e4<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">@FunctionalInterface\uc758 \ubaa9\uc801<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud574\ub2f9 \ud074\ub798\uc2a4\uc758 \ucf54\ub4dc\ub098 \uc124\uba85 \ubb38\uc11c\ub97c \uc77d\uc744 \uc774\uc5d0\uac8c \uadf8 \uc778\ud130\ud398\uc774\uc2a4\uac00 \ub78c\ub2e4\uc6a9\uc73c\ub85c \uc124\uacc4\ub41c \uac83\uc784\uc744 \uc54c\ub824\uc900\ub2e4<\/li><li>\ud574\ub2f9 \uc778\ud130\ud398\uc774\uc2a4\uac00 \ucd94\uc0c1 \uba54\uc11c\ub4dc\ub97c \uc624\uc9c1 \ud558\ub098\ub9cc \uac00\uc9c0\uace0 \uc788\uc5b4\uc57c \ucef4\ud30c\uc77c\ub418\uac8c \ud574\uc900\ub2e4<\/li><li>\uc720\uc9c0\ubcf4\uc218 \uacfc\uc815\uc5d0\uc11c \ub204\uad70\uac00 \uc2e4\uc218\ub85c \uba54\uc11c\ub4dc\ub97c \ucd94\uac00\ud558\uc9c0 \ubabb\ud558\uac8c \ub9c9\uc544\uc900\ub2e4<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 45 &#8211; \uc2a4\ud2b8\ub9bc\uc740 \uc8fc\uc758\ud574\uc11c \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc2a4\ud2b8\ub9bc \ud30c\uc774\ud504\ub77c\uc778\uc740 \uc9c0\uc5f0 \ud3c9\uac00(lazy evaluation)\ub41c\ub2e4. \ud3c9\uac00\ub97c \uc885\ub2e8 \uc5f0\uc0b0\uc774 \ud638\ucd9c\ub420 \ub54c \uc774\ub904\uc9c0\uba70, \uc885\ub2e8 \uc5f0\uc0b0\uc5d0 \uc4f0\uc774\uc9c0 \uc54a\ub294 \ub370\uc774\ud130 \uc6d0\uc18c\ub294 \uacc4\uc0b0\uc5d0 \uc4f0\uc774\uc9c0 \uc54a\ub294\ub2e4<\/li><li>\uc2a4\ud2b8\ub9bc API\ub294 \ub2e4\uc7ac\ub2e4\ub2a5\ud558\uc5ec \uc0ac\uc2e4\uc0c1 \uc5b4\ub5a0\ud55c \uacc4\uc0b0\uc774\ub77c\ub3c4 \ud574\ub0bc \uc218 \uc788\ub2e4. \ud558\uc9c0\ub9cc \ud560 \uc218 \uc788\ub2e4\ub294 \ub73b\uc774\uc9c0, \ud574\uc57c \ud55c\ub2e4\ub294 \ub73b\uc740 \uc544\ub2c8\ub2e4<\/li><li>\uc2a4\ud2b8\ub9bc\uc744 \uc81c\ub300\ub85c \uc0ac\uc6a9\ud558\uba74 \ud504\ub85c\uadf8\ub7a8\uc774 \uc9e7\uace0 \uae54\ub054\ud574\uc9c0\uc9c0\ub9cc, \uc798\ubabb \uc0ac\uc6a9\ud558\uba74 \uc77d\uae30 \uc5b4\ub835\uace0 \uc720\uc9c0\ubcf4\uc218\ub3c4 \ud798\ub4e4\uc5b4\uc9c4\ub2e4<\/li><\/ul>\n\n\n\n<p>&lt;Stream\uc744 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc740 \ucf54\ub4dc&gt;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Anagrams {\n    public static void main(String[] args) throws IOException {\n        File dictionary = new File(args[0]);\n        int minGroupSize = Integer.parseInt(args[1]);\n\n        Map&lt;String, Set&lt;String> groups = new HashMap&lt;>();\n        try(Scanner s = new Scanner(dictionary)) {\n            while (s.hasNext()) {\n                String word = s.next();\n                groups.computeIfAbsent(alphabetize(word),\n                    (unused) -> new TreeSet&lt;>()).add(word);\n            }\n        }\n\n        for (Set&lt;String group : groups.values())\n            if (group.size() >= minGroupSize)\n                System.out.println(group.size() + \": \" + group);\n    }\n\n    private static String alphabetize(String s) {\n        char[] a = s.toCharArray();\n        Arrays.sort(a);\n        return new String(a);\n    }\n}<\/code><\/pre>\n\n\n\n<p>&lt;Stream\uc744 \uacfc\ub3c4\ud558\uac8c \uc0ac\uc6a9\ud55c \ucf54\ub4dc&gt;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Anagrams {\n    public static void main(String[] args) throws IOException {\n        Path dictionary = Paths.get(args[0]);\n        int minGroupSize = Integer.parseInt(args[1]);\n\n        try (Stream&lt;String> words = Files.lines(dictionary)) {\n            words.collect(\n                groupingBy(word -> word.chars().sorted()\n                            .collect(StringBuilder::new,\n                                (sb, c) -> sb.append((char) c),\n                                StringBuilder::append).toString()))\n            .values().stream()\n            .filter(group -> group.size() >= minGroupSize)\n            .map(group -> group.size() + \": \" + group)\n            .forEach(System.out::println);\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p>&lt;Stream\uc744 \uc801\uc808\ud558\uac8c \uc0ac\uc6a9\ud55c \ucf54\ub4dc&gt;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Anagrams {\n    public static void main(String[] args) throws IOException {\n        Path dictionary = Paths.get(args[0]);\n        int minGroupSize = Integer.parseInt(args[1]);\n\n        try (Stream&lt;String> words = Files.lines(dictionary)) {\n            words.collect(groupingBy(word -> alphabetize(word)))\n                .values().stream()\n                .filter(group -> group.size() >= minGroupSize)\n                .forEach(g -> System.out.println(g.size() + \": \" + g));\n        }\n    }\n\n    \/\/ alphabetize \uba54\uc11c\ub4dc\ub294 \uc704\uc758 \uc608\uc81c \ucf54\ub4dc\uc640 \ub3d9\uc77c\ud568\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc2a4\ud2b8\ub9bc\uc744 \uacfc\uc6a9\ud558\uba74 \ud504\ub85c\uadf8\ub7a8\uc774 \uc77d\uac70\ub098 \uc720\uc9c0\ubcf4\uc218\ud558\uae30 \uc5b4\ub824\uc6cc\uc9c4\ub2e4<\/li><li>\ub78c\ub2e4\uc5d0\uc11c\ub294 \ud0c0\uc785 \uc774\ub984\uc744 \uc790\uc8fc \uc0dd\ub7b5\ud558\ubbc0\ub85c \ub9e4\uac1c\ubcc0\uc218 \uc774\ub984\uc744 \uc798 \uc9c0\uc5b4\uc57c \uc2a4\ud2b8\ub9bc \ud30c\uc774\ud504\ub77c\uc778 \uac00\ub3c5\uc131\uc774 \uc720\uc9c0\ub41c\ub2e4<\/li><li>\ub3c4\uc6b0\ubbf8 \uba54\uc11c\ub4dc\ub97c \uc801\uc808\ud788 \ud65c\uc6a9\ud558\ub294 \uc77c\uc758 \uc911\uc694\uc131\uc740 \uc77c\ubc18 \ubc18\ubcf5 \ucf54\ub4dc\uc5d0\uc11c\ubcf4\ub2e4\ub294 \uc2a4\ud2b8\ub9bc \ud30c\uc774\ud504\ub77c\uc778\uc5d0\uc11c \ud6e8\uc52c \ud06c\ub2e4<\/li><li>\uae30\uc874 \ucf54\ub4dc\ub294 \uc2a4\ud2b8\ub9bc\uc744 \uc0ac\uc6a9\ud558\ub3c4\ub85d \ub9ac\ud329\ud130\ub9c1\ud558\ub418, \uc0c8 \ucf54\ub4dc\uac00 \ub354 \ub098\uc544 \ubcf4\uc77c \ub54c\ub9cc \ubc18\uc601\ud558\uc790<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\ud568\uc218 \uac1d\uccb4\ub85c\ub294 \ud560 \uc218 \uc5c6\uc9c0\ub9cc \ucf54\ub4dc \ube14\ub85d\uc73c\ub85c\ub294 \ud560 \uc218 \uc788\ub294 \uc77c<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc9c0\uc5ed \ubcc0\uc218\ub97c \uc77d\uace0 \uc218\uc815\ud558\ub294 \uac83, \ub78c\ub2e4\uc5d0\uc11c\ub294 final\uc774\uac70\ub098 \uc0ac\uc2e4\uc0c1 final\uc778 \ubcc0\uc218\ub9cc \uc77d\uc744 \uc218 \uc788\ub2e4<\/li><li>return\ubb38\uc744 \uc0ac\uc6a9\ud574 \uba54\uc11c\ub4dc\ub97c \ube60\uc838\ub098\uac00\uac70\ub098 break, countinue\ubb38\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\uc2a4\ud2b8\ub9bc \uc0ac\uc6a9\uc774 \uc548\uc131\ub9de\ucda4\uc778 \uc77c<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc6d0\uc18c\ub4e4\uc758 \uc2dc\ud000\uc2a4\ub97c \uc77c\uad00\ub418\uac8c \ubc18\ud658\ud55c\ub2e4<\/li><li>\uc6d0\uc18c\ub4e4\uc758 \uc2dc\ud000\uc2a4\ub97c \ud544\ud130\ub9c1\ud55c\ub2e4<\/li><li>\uc6d0\uc18c\ub4e4\uc758 \uc2dc\ud000\uc2a4\ub97c \ud558\ub098\uc758 \uc5f0\uc0b0\uc744 \uc0ac\uc6a9\ud574 \uacb0\ud569\ud55c\ub2e4<\/li><li>\uc6d0\uc18c\ub4e4\uc758 \uc2dc\ud000\uc2a4\ub97c \uceec\ub809\uc158\uc5d0 \ubaa8\uc740\ub2e4<\/li><li>\uc6d0\uc18c\ub4e4\uc758 \uc2dc\ud000\uc2a4\uc5d0\uc11c \ud2b9\uc815 \uc870\uac74\uc744 \ub9cc\uc871\ud558\ub294 \uc6d0\uc18c\ub97c \ucc3e\ub294\ub2e4<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 46 &#8211; \uc2a4\ud2b8\ub9bc\uc5d0\uc11c\ub294 \ubd80\uc791\uc6a9 \uc5c6\ub294 \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc2a4\ud2b8\ub9bc\uc740 \uadf8\uc800 \ub610 \ud558\ub098\uc758 API\uac00 \uc544\ub2cc, \ud568\uc218\ud615 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0 \uae30\ucd08\ud55c \ud328\ub7ec\ub2e4\uc784\uc774\ub2e4<\/li><li>\uc2a4\ud2b8\ub9bc\uc774 \uc81c\uacf5\ud558\ub294 \ud45c\ud604\ub825, \uc18d\ub3c4, \ubcd1\ub82c\uc131\uc744 \uc5bb\uc73c\ub824\uba74 \uc774 \ud328\ub7ec\ub2e4\uc784\ub3c4 \ud568\uaed8 \ubc1b\uc544\ub4e4\uc5ec\uc57c \ud55c\ub2e4<\/li><li>\uc2a4\ud2b8\ub9bc \ud328\ub7ec\ub2e4\uc784\uc758 \ud575\uc2ec\uc740 \uacc4\uc0b0\uc744 \uc785\ub825\uc758 \ubcc0\ud658\uc73c\ub85c \uc7ac\uad6c\uc131 \ud558\ub294 \ubd80\ubd84\uc774\ub2e4<\/li><li>\uc774\ub54c \uac01 \ubcc0\ud658 \ub2e8\uacc4\ub294 \uac00\ub2a5\ud55c \uc774\uc804 \ub2e8\uacc4\uc758 \uacb0\uacfc\ub97c \ubc1b\uc544 \ucc98\ub9ac\ud558\ub294 \uc21c\uc218 \ud568\uc218\uc5ec\uc57c \ud55c\ub2e4<ul><li>\uc21c\uc218 \ud568\uc218 : \uc624\uc9c1 \uc785\ub825\ub9cc\uc774 \uacb0\uacfc\uc5d0 \uc601\ud5a5\uc744 \uc8fc\ub294 \ud568\uc218<\/li><\/ul><\/li><li>\ub2e4\ub978 \uac00\ubcc0 \uc0c1\ud0dc\ub97c \ucc38\uc870\ud558\uc9c0 \uc54a\uace0 \ud568\uc218 \uc2a4\uc2a4\ub85c\ub3c4 \ub2e4\ub978 \uc0c1\ud0dc\ub97c \ubcc0\uacbd\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud558\ub824\uba74 \uc2a4\ud2b8\ub9bc \uc5f0\uc0b0\uc5d0 \uac74\ub124\ub294 \ud568\uc218 \uac1d\uccb4\ub294 \ubaa8\ub450 \ubd80\uc791\uc6a9 (side effect)\uac00 \uc5c6\uc5b4\uc57c \ud55c\ub2e4<\/li><li>forEach \uc5f0\uc0b0\uc740 \uc885\ub2e8 \uc5f0\uc0b0 \uc911 \uae30\ub2a5\uc774 \uac00\uc7a5 \uc801\uace0 \uac00\uc7a5 &#8216;\ub35c&#8217; \uc2a4\ud2b8\ub9bc\ub2f5\ub2e4, forEach \uc5f0\uc0b0\uc740 \uc2a4\ud2b8\ub9bc \uacc4\uc0b0 \uacb0\uacfc\ub97c \ubcf4\uace0\ud560 \ub54c\ub9cc \uc0ac\uc6a9\ud558\uace0 \uacc4\uc0b0\ud558\ub294 \ub370\ub294 \uc4f0\uc9c0 \ub9d0\uc790<\/li><li>\uc2a4\ud2b8\ub9bc\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 \uc218\uc9d1\uae30\ub97c \uc798 \uc54c\uc544\ub46c\uc57c \ud55c\ub2e4<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\uac00\uc7a5 \uc911\uc694\ud55c \uc218\uc9d1\uae30 \ud329\ud130\ub9ac<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>toList<\/li><li>toSet<\/li><li>toMap<\/li><li>groupingBy<\/li><li>joining<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 47 &#8211; \ubc18\ud658 \ud0c0\uc785\uc73c\ub85c\ub294 \uc2a4\ud2b8\ub9bc\ubcf4\ub2e4 \uceec\ub809\uc158\uc774 \ub0ab\ub2e4<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc2a4\ud2b8\ub9bc\uc740 \ubc18\ubcf5\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294\ub2e4<ul><li>\ubc18\ubcf5\ud558\uae30 \uc704\ud55c \ubc29\ubc95\uc740 \uc788\uc73c\ub098 \ucd94\uac00\uc801\uc778 \ubcc0\ud658 \ucf54\ub4dc \uc791\uc131\uc774 \ud544\uc694\ud558\ub2e4<\/li><\/ul><\/li><li>Collection \uc778\ud130\ud398\uc774\uc2a4\ub294 Iterable\uc758 \ud558\uc704 \ud0c0\uc785\uc774\uace0 stream \uba54\uc11c\ub4dc\ub3c4 \uc81c\uacf5\ud558\ub2c8 \ubc18\ubcf5\uacfc \uc2a4\ud2b8\ub9bc\uc744 \ub3d9\uc2dc\uc5d0 \uc9c0\uc6d0\ud55c\ub2e4<\/li><li>\ub530\ub77c\uc11c \uc6d0\uc18c \uc2dc\ud000\uc2a4\ub97c \ubc18\ud658\ud558\ub294 \uacf5\uac1c API\uc758 \ubc18\ud658 \ud0c0\uc785\uc5d0\ub294 Collection\uc774\ub098 \uadf8 \ud558\uc704 \ud0c0\uc785\uc744 \uc4f0\ub294\uac8c \uc77c\ubc18\uc801\uc73c\ub85c \ucd5c\uc120\uc774\ub2e4<\/li><li>\ub2e8\uc9c0 \uceec\ub809\uc158\uc744 \ubc18\ud658\ud55c\ub2e4\ub294 \uc774\uc720\ub85c \ub369\uce58 \ud070 \uc2dc\ud000\uc2a4\ub97c \uba54\ubaa8\ub9ac\uc5d0 \uc62c\ub824\uc11c\ub294 \uc548\ub428<ul><li>\uc6d0\uc18c\uc758 \uac2f\uc218\uac00 \ub9ce\ub2e4\uba74 \uc804\uc6a9 \uceec\ub809\uc158\uc744 \uad6c\ud604\ud560\uc9c0 \uace0\ubbfc\ud558\ub77c<\/li><\/ul><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 48 &#8211; \uc2a4\ud2b8\ub9bc \ubcd1\ub82c\ud654\ub294 \uc8fc\uc758\ud574\uc11c \uc801\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc790\ubc148\uc5d0\uc11c\ubd80\ud130 parallel \uba54\uc11c\ub4dc \ud55c \ubc88 \ud638\ucd9c\ub85c \ud30c\uc774\ud504\ub77c\uc778\uc744 \ubcd1\ub82c \uc2e4\ud589\ud560 \uc218 \uc788\ub294 \uc2a4\ud2b8\ub9bc\uc744 \uc9c0\uc6d0<\/li><li>\uc790\ubc14\ub85c \ub3d9\uc2dc\uc131 \ud504\ub85c\uadf8\ub7a8\uc744 \uc791\uc131\ud558\uae30\uac00 \uc810\uc810 \uc26c\uc6cc\uc9c0\uace0\ub294 \uc788\uc9c0\ub9cc, \uc774\ub97c \uc62c\ubc14\ub974\uace0 \ube60\ub974\uace0 \uc791\uc131\ud558\ub294 \uc77c\uc740 \uc5ec\uc804\ud788 \uc5b4\ub824\uc6b4 \uc791\uc5c5\uc784<\/li><li>\ub3d9\uc2dc\uc131 \ud504\ub85c\uadf8\ub798\ubc0d\uc744 \ud560 \ub54c\uc5d0\ub294 \uc548\uc815\uc131(safety), \uc751\ub2f5 \uac00\ub2a5(liveness) \uc0c1\ud0dc\ub97c \uc720\uc9c0\ud558\uae30 \uc704\ud574 \uc560\uc368\uc57c\ud558\ub294\ub370, \ubcd1\ub82c \uc2a4\ud2b8\ub9bc \ud30c\uc774\ud504\ub77c\uc778 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c\ub3c4 \ub2e4\ub97c \ubc14 \uc5c6\uc74c<\/li><li>\ud658\uacbd\uc774 \uc544\ubb34\ub9ac \uc88b\ub354\ub77c\ub3c4 \ub370\uc774\ud130 \uc18c\uc2a4\uac00\u00a0<code>Stream.iterate<\/code>\uac70\ub098 \uc911\uac04 \uc5f0\uc0b0\uc73c\ub85c limit\ub97c \uc4f0\uba74 \ud30c\uc774\ud504\ub77c\uc778 \ubcd1\ub82c\ud654\ub85c\ub294 \uc131\ub2a5 \uac1c\uc120\uc744 \uae30\ub300\ud560 \uc218 \uc5c6\uc74c<\/li><li>\ub300\uccb4\ub85c \uc2a4\ud2b8\ub9bc\uc758 \uc18c\uc2a4\uac00 ArrayList, HashMap, HashSet, ConcurrentHashMap\uc758 \uc778\uc2a4\ud134\uc2a4\uc774\uac70\ub098 \ubc30\uc5f4, int \ubc94\uc704, long \ubc94\uc704\uc77c \ub54c \ubc99\ub82c\ud654\uc758 \ud6a8\uacfc\uac00 \uac00\uc7a5 \uc88b\uc74c<ul><li>\uc774 \uc790\ub8cc\uad6c\uc870\ub4e4\uc740 \ubaa8\ub450 \ub370\uc774\ud130\ub97c \uc6d0\ud558\ub294 \ud06c\uae30\ub85c \uc815\ud655\ud558\uace0 \uc190\uc27d\uac8c \ub098\ub20c \uc218 \uc788\uae30 \ub54c\ubb38<\/li><\/ul><\/li><li>\uc2a4\ud2b8\ub9bc \ud30c\uc774\ud504\ub77c\uc778\uc758 \uc885\ub2e8 \uc5f0\uc0b0\uc758 \ub3d9\uc791 \ubc29\uc2dd \uc5ed\uc2dc \ubcd1\ub82c \uc218\ud589 \ud6a8\uc728\uc5d0 \uc601\ud5a5\uc744 \uc90c<ul><li>\uc911\ub2e8 \uc5f0\uc0b0 \uc911 \ubcd1\ub82c\ud654\uc5d0 \uac00\uc7a5 \uc801\ud569\ud55c \uac83\uc740 \ucd95\uc18c(reduction)<ul><li>Stream\uc758 reduce \uba54\uc18c\ub4dc \uc911\uc758 \ud558\ub098, \ud639\uc740 min, max, count, sum<\/li><\/ul><\/li><li>anyMatch, allMatch, noneMatch\ucc98\ub7fc \uc870\uac74\uc5d0 \ub9de\uc73c\uba74 \ubc14\ub85c \ubc18\ud658\ub418\ub294 \uba54\uc11c\ub4dc\ub3c4 \uc801\ud569\ud568<\/li><li>\uac00\ubcc0 \ucd95\uc18c \uc5f0\uc0b0\uc744 \uc218\ud589\ud558\ub294 Stream\uc758 collect \uba54\uc11c\ub4dc\ub294 \ubcd1\ub82c\ud654\uc5d0 \uc801\ud569\ud558\uc9c0 \uc54a\uc74c (\uceec\ub809\uc158\ub4e4\uc744 \ud569\uce58\ub294 \ubd80\ub2f4\uc774 \ud07c)<\/li><\/ul><\/li><li>\uc2a4\ud2b8\ub9bc\uc744 \uc798\ubabb \ubcd1\ub82c\ud654\ud558\uba74 \uc131\ub2a5\uc774 \ub098\ube60\uc9c8 \ubfd0\ub9cc\uc544\ub2c8\ub77c \uacb0\uacfc \uc790\uccb4\uac00 \uc798\ubabb\ub418\uac70\ub098 \uc608\uc0c1 \ubabb\ud55c \ub3d9\uc791 \ubc1c\uc0dd \uac00\ub2a5\uc131\ub3c4 \uc788\uc74c<\/li><li>\uc2a4\ud2b8\ub9bc \ubcd1\ub82c\ud654\ub294 \uc624\uc9c1 \uc131\ub2a5 \ucd5c\uc801\ud654 \uc218\ub2e8\uc784\uc744 \uae30\uc5b5\ud574\uc57c\ud568<ul><li>\ub2e4\ub978 \ucd5c\uc801\ud654\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c \ubcc0\uacbd \uc804\ud6c4\ub85c \ubc18\ub4dc\uc2dc \uc131\ub2a5\uc744 \ud14c\uc2a4\ud2b8\ud558\uc5ec \ubcd1\ub82c\ud654 \uc0ac\uc6a9 \uac00\uce58\uac00 \uc788\ub294\uc9c0 \ud655\uc778 \ud544\uc694<\/li><\/ul><\/li><li>\uc870\uac74\uc774 \uc798 \uac16\ucdb0\uc9c0\uba74 parallel \uba54\uc11c\ub4dc \ud638\ucd9c\ud558\ub098\ub85c \uac70\uc758 \ud504\ub85c\uc138\uc11c \ucf54\uc5b4 \uc218\uc5d0 \ube44\ub840\ud558\ub294 \uc131\ub2a5 \ud5a5\uc0f9 \ub9cc\ub07d \uac00\ub2a5\ud568<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8\uc7a5 \uba54\uc11c\ub4dc<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 49 &#8211; \ub9e4\uac1c\ubcc0\uc218\uac00 \uc720\ud6a8\ud55c\uc9c0 \uac80\uc0ac\ud558\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\uba54\uc11c\ub4dc \ubab8\uccb4\uac00 \uc2e4\ud589\ub418\uae30 \uc804\uc5d0 \ub9e4\uac1c\ubcc0\uc218\ub97c \ud655\uc778\ud558\uba74 \uc798\ubabb\ub41c \uac12\uc774 \ub118\uc5b4\uc654\uc744 \ub54c \uc989\uac01\uc801\uc774\uace0 \uae54\ub054\ud55c \ubc29\uc2dd\uc73c\ub85c \uc608\uc678\ub97c \ub358\uc9c8 \uc218 \uc788\ub2e4.<\/li><li>\uc790\ubc14 7\uc5d0 \ucd94\uac00\ub41c java.util.requireNonNull \uba54\uc11c\ub4dc\ub294 \uc720\uc5f0\ud558\uace0 \uc0ac\uc6a9\ud558\uae30\ub3c4 \ud3b8\ud558\ub2c8, \ub354 \uc774\uc0c1 null \uac80\uc0ac\ub97c \uc218\ub3d9\uc73c\ub85c \ud558\uc9c0 \uc54a\uc544\ub3c4 \ub41c\ub2e4.<\/li><li>\uba54\uc11c\ub4dc\ub098 \uc0dd\uc131\uc790\ub97c \uc791\uc131\ud560 \ub54c \uadf8 \ub9e4\uac1c\ubcc0\uc218\ub4e4\uc5d0 \uc5b4\ub5a4 \uc81c\uc57d\uc774 \uc788\uc744\uc9c0 \uc0dd\uac01\ud574\uc57c \ud558\uace0 \uadf8 \uc81c\uc57d\ub4e4\uc740 \ubb38\uc11c\ud654\ud558\uace0 \ucf54\ub4dc \uc2dc\uc791 \ubd80\ubd84\uc5d0\uc11c \uba85\uc2dc\uc801\uc73c\ub85c \uac80\uc0ac\ud574\uc57c \ud55c\ub2e4.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 50 &#8211; \uc801\uc2dc\uc5d0 \ubc29\uc5b4\uc801 \ubcf5\uc0ac\ubcf8\uc744 \ub9cc\ub4e4\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc5ec\ub7ec\ubd84\uc758 \ubd88\ubcc0\uc2dd\uc744 \uae68\ub728\ub9ac\ub824 \ud608\uc548\uc774 \ub418\uc5b4 \uc788\ub2e4\uace0 \uac00\uc815\ud558\uace0 \ubc29\uc5b4\uc801\uc73c\ub85c \ud504\ub85c\uadf8\ub798\ubc0d\ud574\uc57c \ud55c\ub2e4.<\/li><li>\uac00\ubcc0 \ud544\ub4dc\ub97c \uc0dd\uc131\uc790 \ub9e4\uac1c\ubcc0\uc218\ub85c \ubc1b\uc544 \ud074\ub798\uc2a4 \ud544\ub4dc\uc5d0 \uc800\uc7a5\ud558\ub294 \uacbd\uc6b0 \uac01\uac01\uc744 \ubc29\uc5b4\uc801\uc73c\ub85c \ubcf5\uc0ac\ud574\uc57c \ud55c\ub2e4.<\/li><li>Date\ub294 \ub0a1\uc740 API\uc774\ub2c8 \uc0c8\ub85c\uc6b4 \ucf54\ub4dc\ub97c \uc791\uc131\ud560 \ub54c\ub294 \ub354 \uc774\uc0c1 \uc0ac\uc6a9\ud558\uba74 \uc548\ub41c\ub2e4.<\/li><li>\ub9e4\uac1c\ubcc0\uc218\uc758 \uc720\ud6a8\uc131 \uac80\uc0ac\ub97c \ud558\uae30 \uc804\uc5d0 \ubc29\uc5b4\uc801 \ubcf5\uc0ac\ubcf8\uc744 \ub9cc\ub4e4\uace0 \uc774 \ubcf5\uc0ac\ubcf8\uc73c\ub85c \uc720\ud6a8\uc131\uc744 \uac80\uc0ac\ud574\uc57c \ud55c\ub2e4.<\/li><li>\ub9e4\uac1c\ubcc0\uc218\uac00 \uc81c3\uc790\uc5d0 \uc758\ud574 \ud655\uc7a5\ub420 \uc218 \uc788\ub294 \ud0c0\uc785\uc774\ub77c\uba74 \ubc29\uc5b4\uc801 \ubcf5\uc0ac\ubcf8\uc744 \ub9cc\ub4e4 \ub54c clone\uc744 \uc0ac\uc6a9\ud574\uc11c\ub294 \uc548 \ub41c\ub2e4.<\/li><li>\uac00\ubcc0 \ud544\ub4dc\ub97c \ubc18\ud658\ud558\ub294 get \uc811\uadfc\uc790 \uba54\uc11c\ub4dc\uc5d0\uc11c\ub294 \uac00\ubcc0 \ud544\ub4dc\uc758 \ubc29\uc5b4\uc801 \ubcf5\uc0ac\ubcf8\uc744 \ubc18\ud658\ud558\ub3c4\ub85d \ud574\uc57c \ud55c\ub2e4.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 51 &#8211; \uba54\uc11c\ub4dc \uc2dc\uadf8\ub2c8\ucc98\ub97c \uc2e0\uc911\ud788 \uc124\uacc4\ud558\ub77c<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">\uba54\uc11c\ub4dc \uc774\ub984\uc744 \uc2e0\uc911\ud788 \uc9d3\uc790<\/h5>\n\n\n\n<p>\uc774\ud574\ud560 \uc218 \uc788\uace0 \uac19\uc740 \ud328\ud0a4\uc9c0\uc5d0 \uc18d\ud55c \ub2e4\ub978 \uc774\ub984\ub4e4\uacfc \uc77c\uad00\ub418\uac8c \uc9d3\ub294 \uac8c \ucd5c\uc6b0\uc120 \ubaa9\ud45c\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\ud3b8\uc758 \uba54\uc11c\ub4dc\ub97c \ub108\ubb34 \ub9ce\uc774 \ub9cc\ub4e4\uc9c0 \ub9d0\uc790<\/h5>\n\n\n\n<p>\uba54\uc11c\ub4dc\uac00 \ub108\ubb34 \ub9ce\uc73c\uba74 \ud559\uc2b5, \ubb38\uc11c\ud654, \ud14c\uc2a4\ud2b8, \uc720\uc9c0\ubcf4\uc218\ud558\uae30 \uc5b4\ub835\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\ub9e4\uac1c\ubcc0\uc218 \ubaa9\ub85d\uc740 \uc9e7\uac8c \uc720\uc9c0\ud558\uc790. 4\uac1c \uc774\ud558\uac00 \uc88b\ub2e4.<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\uacfc\ud558\uac8c \uae34 \ub9e4\uac1c\ubcc0\uc218 \ubaa9\ub85d\uc744 \uc9e7\uac8c \uc904\uc5ec\uc8fc\ub294 \uae30\uc220 \uc138 \uac00\uc9c0<ul><li>\uc5ec\ub7ec \uba54\uc11c\ub4dc\ub85c \ucabc\uac20\ub2e4. (\uc9c1\uad50\uc131\uc744 \ub192\uc778\ub2e4)<ul><li>\uc608) List \uc778\ud130\ud398\uc774\uc2a4\uc5d0\uc11c \uc9c0\uc815\ub41c \ubd80\ubd84 \ubc94\uc704\uc758 \ubd80\ubd84\ub9ac\uc2a4\ud2b8\uc5d0\uc11c \uc778\ub371\uc2a4\ub97c \ucc3e\ub294 \uba54\uc11c\ub4dc\ub97c \ubcc4\ub3c4\ub85c \uc81c\uacf5\ud558\uc9c0 \uc54a\uace0 subList, indexOf\ub97c \uc81c\uacf5\ud55c \uac83<\/li><\/ul><\/li><li>\ub9e4\uac1c\ubcc0\uc218 \uc5ec\ub7ec \uac1c\ub97c \ubb36\uc5b4\uc8fc\ub294 \ub3c4\uc6b0\ubbf8 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e0\ub2e4.<ul><li>\uc608) class Point { int x; int y; }<\/li><\/ul><\/li><li>\uac1d\uccb4 \uc0dd\uc131\uc5d0 \uc0ac\uc6a9\ud55c \ube4c\ub354 \ud328\ud134\uc744 \uba54\uc11c\ub4dc \ud638\ucd9c\uc5d0 \uc751\uc6a9\ud55c\ub2e4.<\/li><\/ul><\/li><li>\ub9e4\uac1c\ubcc0\uc218 \ud0c0\uc785\uc73c\ub85c\ub294 \ud074\ub798\uc2a4\ubcf4\ub2e4\ub294 \uc778\ud130\ud398\uc774\uc2a4\uac00 \ub354 \ub0ab\ub2e4.<\/li><li>boolean\ubcf4\ub2e4\ub294 \uc6d0\uc18c 2\uac1c\uc9dc\ub9ac \uc5f4\uac70 \ud0c0\uc785\uc774 \ub0ab\ub2e4.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 52 &#8211; \ub2e4\uc911\uc815\uc758\ub294 \uc2e0\uc911\ud788 \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\ub2e4\uc911\uc815\uc758(overloading)\uc740 \uc5b4\ub290 \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud560\uc9c0\uac00 \ucef4\ud30c\uc77c\ud0c0\uc784\uc5d0 \uc815\ud574\uc9c4\ub2e4. \uc7ac\uc815\uc758(override)\ud55c \uba54\uc11c\ub4dc\ub294 \ub3d9\uc801\uc73c\ub85c \uc120\ud0dd\ub418\uace0, \ub2e4\uc911\uc815\uc758\ud55c \uba54\uc11c\ub4dc\ub294 \uc815\uc801\uc73c\ub85c \uc120\ud0dd\ub41c\ub2e4.<\/li><li>API \uc0ac\uc6a9\uc790\uac00 \ub9e4\uac1c\ubcc0\uc218\ub97c \ub118\uae30\uba74\uc11c \uc5b4\ub5a4 \ub2e4\uc911\uc815\uc758 \uba54\uc11c\ub4dc\uac00 \ud638\ucd9c\ub420\uc9c0\ub97c \ubaa8\ub978\ub2e4\uba74 \ud504\ub85c\uadf8\ub7a8\uc774 \uc624\ub3d9\uc791\ud558\uae30 \uc27d\ub2e4. \ub2e4\uc911\uc815\uc758\uac00 \ud63c\ub3d9\uc744 \uc77c\uc73c\ud0a4\ub294 \uc0c1\ud669\uc744 \ud53c\ud574\uc57c \ud55c\ub2e4.<\/li><li>\uc548\uc804\ud558\uace0 \ubcf4\uc218\uc801\uc73c\ub85c \uac00\ub824\uba74 \ub9e4\uac1c\ubcc0\uc218 \uc218\uac00 \uac19\uc740 \ub2e4\uc911\uc815\uc758\ub294 \ub9cc\ub4e4\uc9c0 \ub9d0\uc790.<ul><li>\ub2e4\uc911\uc815\uc758\ud558\ub294 \ub300\uc2e0 \uba54\uc11c\ub4dc \uc77c\ubbc0\uc744 \ub2e4\ub974\uac8c \uc9c0\uc5b4\uc8fc\ub294 \ubc29\ubc95\uc774 \uc788\ub2e4.<\/li><\/ul><\/li><li>\ub2e4\uc911\uc815\uc758\ub41c \uba54\uc11c\ub4dc\ub4e4\uc774 \ud568\uc218\ud615 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc778\uc218\ub85c \ubc1b\uc744 \ub54c \ube44\ub85d \uc11c\ub85c \ub2e4\ub978 \ud568\uc218\ud615 \uc778\ud130\ud398\uc774\uc2a4\ub77c\ub3c4 \uc778\uc218 \uc704\uce58\uac00 \uac19\uc73c\uba74 \ud63c\ub780\uc774 \uc0dd\uae34\ub2e4. \ub530\ub77c\uc11c \uba54\uc11c\ub4dc\ub97c \ub2e4\uc911\uc815\uc758\ud560 \ub54c \uc11c\ub85c \ub2e4\ub978 \ud568\uc218\ud615 \uc778\ud130\ud398\uc774\uc2a4\ub77c\ub3c4 \uac19\uc740 \uc704\uce58\uc758 \uc778\uc218\ub85c \ubc1b\uc544\uc11c\ub294 \uc548\ub41c\ub2e4.<\/li><li>\ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\uac00 \ub2e4\uc911\uc815\uc758\ub97c \ud5c8\uc6a9\ud55c\ub2e4\uace0 \ud574\uc11c \ub2e4\uc911\uc815\uc758\ub97c \uaf2d \ud65c\uc6a9\ud558\ub780 \ub73b\uc740 \uc544\ub2c8\ub2e4.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 53 &#8211; \uac00\ubcc0\uc778\uc218\ub294 \uc2e0\uc911\ud788 \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<p>&lt;\uc778\uc218\uac00 1\uac1c \uc774\uc0c1\uc774\uc5b4\uc57c\ud558\ub294 \uac00\ubcc0\uc778\uc218 \uba54\uc11c\ub4dc &#8211; \uc798\ubabb \uad6c\ud604\ud55c \uc608!&gt;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>static int min(int... args) {\n    if (args.length == 0) {\n        throw new IllegalArgumentException(\"\uc778\uc218\uac00 1\uac1c \uc774\uc0c1 \ud544\uc694\ud569\ub2c8\ub2e4.\");\n    }\n    int min = args[0];\n    for (int i = 1; i &lt; args.length; i++) {\n        if (args[i] &lt; min)\n            min = args[i];\n    return min;\n    }\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\uac00\uc7a5 \uc2ec\uac01\ud55c \ubb38\uc81c\ub294 \uc778\uc218\ub97c 0\uac1c\ub9cc \ub123\uc5b4 \ud638\ucd9c\ud558\uba74 \ub7f0\ud0c0\uc784\uc5d0 \uc2e4\ud328\ud55c\ub2e4\ub294 \uc810. (\ucf54\ub4dc\ub3c4 \uc9c0\uc800\ubd84\ud568) args \uc720\ud6a8\uc131 \uac80\uc0ac\ub97c \uba85\uc2dc\uc801\uc73c\ub85c \ud574\uc57c\ud55c\ub2e4.<\/li><\/ul>\n\n\n\n<p>&lt;\uc778\uc218\uac00 1\uac1c \uc774\uc0c1\uc774\uc5b4\uc57c\ud560 \ub54c \uac00\ubcc0\uc778\uc218\ub97c \uc81c\ub300\ub85c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95&gt;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>static int min(int firstArg, int... remainingArgs) {\n    int min = firstArgs;\n    for (int arg : remainingArgs)\n        if (arg &lt; min)\n            min = arg;\n    return min;\n}<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">\uc131\ub2a5\uc5d0 \ubbfc\uac10\ud55c \uacbd\uc6b0<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\uac00\ubcc0\uc778\uc218 \uba54\uc11c\ub4dc\ub294 \ud638\ucd9c\ub420 \ub54c\ub9c8\ub2e4 \ubc30\uc5f4\uc744 \uc0c8\ub85c \ud558\ub098 \ud560\ub2f9\ud558\uace0 \ucd08\uae30\ud654\ud558\uc5ec \uc131\ub2a5\uc774 \ubbfc\uac10\ud55c \uacbd\uc6b0 \ubb38\uc81c\uac00 \ub420 \uc218 \uc788\ub2e4.<\/li><li>\uac00\ubcc0\uc778\uc218\uc758 \uc720\uc5f0\uc131\uc774 \ud544\uc694\ud560 \ub54c \uc120\ud0dd\ud560 \uc218 \uc788\ub294 \ud328\ud134<code>public void foo() { }\npublic void foo(int a1) { }\npublic void foo(int a1, int a2) { }\npublic void foo(int a1, int a2, int a3) { }\npublic void foo(int a1, int a2, int a3, int... rest) { }<\/code><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 54 &#8211; null\uc774 \uc544\ub2cc, \ube48 \uceec\ub809\uc158\uc774\ub098 \ubc30\uc5f4\uc744 \ubc18\ud658\ud558\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\uceec\ub809\uc158\uc774\ub098 \ubc30\uc5f4 \uac19\uc740 \ucee8\ud14c\uc774\ub108\uac00 \ube44\uc5c8\uc744 \ub54c null\uc744 \ubc18\ud658\ud558\ub294 \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud560 \ub54c\uba74 \ud56d\uc2dc \ubc29\uc5b4 \ucf54\ub4dc\ub97c \ub123\uc5b4\uc918\uc57c \ud55c\ub2e4.<\/li><li>\ube48 \ucee8\ud14c\uc774\ub108\ub97c \ud560\ub2f9\ud558\ub294 \ub370\ub3c4 \ube44\uc6a9\uc774 \ub4dc\ub2c8 null\uc744 \ubc18\ud658\ud558\ub294\uac8c \uc131\ub2a5\uc0c1 \ub0ab\ub2e4\ub294 \uc8fc\uc7a5\ub3c4 \uc788\uc73c\ub098 \ud2c0\ub9b0 \uc8fc\uc7a5\uc774\ub2e4.<ul><li>\uc774 \uc815\ub3c4\uc758 \uc131\ub2a5 \ucc28\uc774\ub294 \uc2e0\uacbd \uc4f8 \uc218\uc900\uc774 \ubabb \ub41c\ub2e4.<\/li><li>\ube48 \uceec\ub809\uc158\uacfc \ubc30\uc5f4\uc744 \uad73\uc774 \uc0c8\ub85c \ud560\ub2f9\ud558\uc9c0 \uc54a\uace0\ub3c4 \ubc18\ud658\ud560 \uc218 \uc788\ub2e4.<\/li><\/ul><\/li><li>\ube48 \uceec\ub809\uc158 \ud560\ub2f9\uc774 \uc131\ub2a5\uc744 \ub208\uc5d0 \ub744\uac8c \ub5a8\uc5b4\ub728\ub9ac\ub294 \ubc29\ubc95<ul><li>Collections.emptyList, Collections.emptySet, Collections.emptyMap<\/li><\/ul><\/li><li>\ubc30\uc5f4\uc744 \uc4f8 \ub300\ub3c4 \uc808\ub300 null\uc744 \ubc18\ud658\ud558\uc9c0 \ub9d0\uace0 \uae38\uc774\uac00 0\uc778 \ubc30\uc5f4\uc744 \ubc18\ud658\ud558\ub77c.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 55 &#8211; \uc635\uc154\ub110 \ubc18\ud658\uc740 \uc2e0\uc911\ud788 \ud558\ub77c<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">\uc635\uc154\ub110\uc758 \uc7a5\uc810<\/h5>\n\n\n\n<p>\uc635\uc154\ub110\uc744 \ubc18\ud658\ud558\ub294 \uba54\uc11c\ub4dc\ub294 \uc608\uc678\ub97c \ub358\uc9c0\ub294 \uba54\uc11c\ub4dc\ubcf4\ub2e4 \uc720\uc5f0\ud558\uace0 \uc0ac\uc6a9\ud558\uae30 \uc26c\uc6b0\uba70, null\uc744 \ubc18\ud658\ud558\ub294 \uba54\uc11c\ub4dc\ubcf4\ub2e4 \uc624\ub958 \uac00\ub2a5\uc131\uc774 \uc791\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\uc635\uc154\ub110 \uc0ac\uc6a9 \uc2dc \uc8fc\uc758\uc810<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc635\uc154\ub110\uc744 \ubc18\ud658\ud558\ub294 \uba54\uc11c\ub4dc\uc5d0\uc11c\ub294 \uc808\ub300 null\uc744 \ubc18\ud658\ud558\uc9c0 \ub9d0\uc790, \uc635\uc154\ub110\uc744 \ub3c4\uc785\ud55c \ucde8\uc9c0\ub97c \uc644\uc804\ud788 \ubb34\uc2dc\ud558\ub294 \ud589\uc704\ub2e4.<\/li><li>\ubc18\ud658\uac12\uc73c\ub85c \uc635\uc154\ub110\uc744 \uc0ac\uc6a9\ud55c\ub2e4\uace0 \ubb34\uc870\uac74 \ub4dd\uc774 \ub418\ub294 \uac74 \uc544\ub2c8\ub2e4. \uceec\ub809\uc158, \uc2a4\ud2b8\ub9bc, \ubc30\uc5f4, \uc635\uc154\ub110 \uac19\uc740 \ucee8\ud14c\uc774\ub108 \ud0c0\uc785\uc740 \uc635\uc154\ub110\ub85c \uac10\uc2f8\uba74 \uc548\ub41c\ub2e4.<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\uc635\uc154\ub110\uc744 \uba54\uc11c\ub4dc \ubc18\ud658 \ud0c0\uc785\uc73c\ub85c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0<\/h5>\n\n\n\n<p>\uacb0\uacfc\uac00 \uc5c6\uc744 \uc218 \uc788\uc73c\uba70 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc774 \uc0c1\ud669\uc744 \ud2b9\ubcc4\ud558\uac8c \ucc98\ub9ac\ud574\uc57c \ud558\ub294 \uacbd\uc6b0<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\ubc15\uc2f1\ub41c \uae30\ubcf8 \ud0c0\uc785\uc744 \ub2f4\uc740 \uc635\uc154\ub110\uc744 \ubc18\ud658\ud558\uc9c0 \ub9d0\uace0 int, long, double \uc804\uc6a9 \uc635\uc154\ub110 \ud074\ub798\uc2a4\uc778 OptionalInt, OptionalLong, OptionalDouble\uc744 \uc0ac\uc6a9\ud558\uc790.<\/li><li>\uc635\uc154\ub110\uc744 \uceec\ub809\uc158\uc758 \ud0a4, \uac12, \uc6d0\uc18c\ub098 \ubc30\uc5f4\uc758 \uc6d0\uc18c\ub85c \uc0ac\uc6a9\ud558\ub294\uac8c \uc801\uc808\ud55c \uc0c1\ud669\uc740 \uac70\uc758 \uc5c6\ub2e4.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c 56 &#8211; \uacf5\uac1c\ub41c API \uc694\uc18c\uc5d0\ub294 \ud56d\uc0c1 \ubb38\uc11c\ud654 \uc8fc\uc11d\uc744 \uc791\uc131\ud558\ub77c<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>API\ub97c \uc4f8\ubaa8 \uc788\uac8c \ud558\ub824\uba74 \uc798 \uc791\uc131\ub41c \ubb38\uc11c\ub3c4 \uacc1\ub4e4\uc5ec\uc57c \ud55c\ub2e4.<\/li><li>API\ub97c \uc62c\ubc14\ub85c \ubb38\uc11c\ud654\ud558\ub824\uba74 \uacf5\uac1c\ub41c \ubaa8\ub4e0 \ud074\ub798\uc2a4, \uc778\ud130\ud398\uc774\uc2a4, \uba54\uc11c\ub4dc, \ud544\ub4dc \uc120\uc5b8\uc5d0 \ubb38\uc11c\ud654 \uc8fc\uc11d\uc744 \ub2ec\uc544\uc57c \ud55c\ub2e4.<\/li><li>\uba54\uc11c\ub4dc\uc6a9 \ubb38\uc11c\ud654 \uc8fc\uc11d\uc5d0\ub294 \ud574\ub2f9 \uba54\uc11c\ub4dc\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8 \uc0ac\uc774\uc758 \uaddc\uc57d\uc744 \uba85\ub8cc\ud558\uac8c \uae30\uc220\ud574\uc57c \ud55c\ub2e4.<ul><li>how\uac00 \uc544\ub2cc what\uc744 \uae30\uc220\ud574\uc57c \ud55c\ub2e4.<\/li><\/ul><\/li><li>\uc790\uae30\uc0ac\uc6a9 \ud328\ud134\uc740 \uc790\ubc14 8\uc5d0 \ucd94\uac00\ub41c @impleSpec \ud0dc\uadf8\ub85c \ubb38\uc11c\ud654\ud55c\ub2e4.<\/li><li>\uc5f4\uac70 \ud0c0\uc785\uc744 \ubb38\uc11c\ud654\ud560 \ub54c\ub294 \uc0c1\uc218\ub4e4\uc5d0\ub3c4 \uc8fc\uc11d\uc744 \ub2ec\uc544\uc57c \ud55c\ub2e4.<\/li><li>\uc560\ub108\ud14c\uc774\uc158 \ud0c0\uc785\uc744 \ubb38\uc11c\ud654\ud560 \ub54c\ub294 \uba64\ubc84\ub4e4\uc5d0\ub3c4 \ubaa8\ub450 \uc8fc\uc11d\uc744 \ub2ec\uc544\uc57c \ud55c\ub2e4.<\/li><li>\ud074\ub798\uc2a4 \ud639\uc740 \uc815\uc801 \uba54\uc11c\ub4dc\uac00 \uc2a4\ub808\ub4dc \uc548\uc804\ud558\ub4e0 \uc544\ub2c8\ub4e0, \uc2a4\ub808\ub4dc \uc548\uc804 \uc218\uc900\uc744 \ubc18\ub4dc\uc2dc API \uc124\uba85\uc5d0 \ud3ec\ud568\ud574\uc57c \ud55c\ub2e4.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c57. \uc9c0\uc5ed\ubcc0\uc218\uc758 \ubc94\uc704\ub97c \ucd5c\uc18c\ud654\ud558\ub77c<\/h4>\n\n\n\n<p>\uc9c0\uc5ed\ubcc0\uc218\uc758 \uc720\ud6a8 \ubc94\uc704\ub97c \ucd5c\uc18c\ub85c \uc904\uc774\uba74 \ucf54\ub4dc \uac00\ub3c5\uc131\uacfc \uc720\uc9c0 \ubcf4\uc218\uc131\uc740 \ub192\uc544\uc9c0\uace0 \uc624\ub958 \uac00\ub2a5\uc131\uc740 \ub0ae\uc544\uc9c4\ub2e4. \uc544\ub798\ub294 \uc9c0\uc5ed\ubcc0\uc218\uc758 \ubc94\uc704\ub97c \uc881\ud788\ub294 \ubc29\ubc95\ub4e4\uc774\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">57-1. \uc9c0\uc5ed\ubcc0\uc218\ub294 \uc0ac\uc6a9\ud560 \ub54c \uc120\uc5b8 \ubc0f \ud560\ub2f9\ud574\ub77c<\/h5>\n\n\n\n<p>\uc9c0\uc5ed\ubcc0\uc218\uc758 \ubc94\uc704\ub97c \uc904\uc774\ub294 \uac00\uc7a5 \uc88b\uc740 \ubc29\ubc95\uc740 \ucc98\uc74c \uc4f8 \ub54c \uc120\uc5b8\uacfc \ub3d9\uc2dc\uc5d0 \ucd08\uae30\ud654\ud558\ub294 \uac83\uc774\ub2e4. \ub9e8 \uc704\uc5d0\uc11c \ubbf8\ub9ac \uc120\uc5b8\ubd80\ud130 \uc794\ub729 \ud574\ub450\uba74 \uac00\ub3c5\uc131\uc774 \ub5a8\uc5b4\uc9c4\ub2e4. \ub610 \uc0ac\uc6a9\uc2dc\uc810\uc5d4 \ucd08\uae30 \uac12\uc774 \uae30\uc5b5\uc774 \uc548\ub0a0 \uc218\ub3c4 \uc788\ub2e4. \uc5ec\uae30\uc11c try-catch \ubb38\uc740 \uc608\uc678\uc774\ub2e4. \ucd08\uae30\ud654\ud558\ub2e4\uac00 \uc608\uc678\ub97c \ub358\uc9c8\uc218 \uc788\ub2e4\uba74, try \ubc14\ub85c \uc704\uc5d0 \uc120\uc5b8\ud558\uace0, try \ube14\ub85d \uc548\uc5d0\uc11c \ucd08\uae30\ud654\ud574\uc8fc\uc5b4\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">57-2. while\ubb38\ubcf4\ub2e4\ub294 for\uc744 \uc0ac\uc6a9\ud558\ub77c<\/h5>\n\n\n\n<p>\ubc18\ubcf5 \ubcc0\uc218\uc758 \uac12\uc744 \ubc18\ubcf5\ubb38\uc774 \uc885\ub8cc\ub41c \ub4a4\uc5d0\ub3c4 \uc368\uc57c\ud558\ub294 \uc0c1\ud669\uc774 \uc544\ub2c8\ub77c\uba74 while \ubb38\ubcf4\ub2e4\ub294 for \ubb38\uc744 \uc4f0\ub294 \ud3b8\uc774 \ub0ab\ub2e4. while\ubb38\uc740 \ubc18\ubcf5\ubcc0\uc218\ub97c \ubc18\ubcf5\ubb38 \ubc14\uae65 \ube14\ub85d\uc5d0 \uc120\uc5b8\ud574\uc57c\ud558\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\uceec\ub809\uc158 \uc21c\ud68c \uad00\uc6a9\uad6c<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>for (Element e : c) {\n    ... \/\/ e\ub85c \ubb34\uc5b8\uac00 \uc218\ud589\n}\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\ubc18\ubcf5\uc790 \uc0ac\uc6a9 \uad00\uc6a9\uad6c<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>for (Iterator&lt;Element> i = c.iterator(); i.hasNext();) {\n    Element e = i.next();\n    ... \/\/ e\ub85c \ubb34\uc5b8\uac00 \uc218\ud589\n}\n<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">57-3. \uba54\uc18c\ub4dc\ub97c \uc791\uac8c \ub9cc\ub4e4\uc5b4\ub77c<\/h5>\n\n\n\n<p>\uba54\uc18c\ub4dc\ub97c \uc560\ucd08\uc5d0 \uc791\uac8c \uc720\uc9c0\ud558\uace0 \ud55c\uac00\uc9c0 \uae30\ub2a5\uc5d0 \uc9d1\uc911\ud558\uac8c \ub9cc\ub4e4\uc5b4\ub77c<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c58. \uc804\ud1b5\uc801\uc778 for\ubb38\ubcf4\ub2e4\ub294 foreach\ubb38\uc744 \uc0ac\uc6a9\ud558\uc5ec\ub77c<\/h4>\n\n\n\n<p>\ud5a5\uc0c1\ub41c for\ubb38(foreach)\uc744 \uc0ac\uc6a9\ud558\uba74 \ubc18\ubcf5\uc790\uc640 \uc778\ub371\uc2a4 \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc73c\ub2c8 \ucf54\ub4dc\uac00 \uae54\ub054\ud574\uc9c0\uace0 \uc624\ub958\uac00 \ub0a0 \uc77c\ub3c4 \uc0ac\ub77c\uc9c4\ub2e4. \ub610\ud55c \uceec\ub809\uc158\uacfc \ubc30\uc5f4\uc744 \ubaa8\ub450 \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4. (Iterable \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud55c\ub2e4\uba74 \ubb50\ub4e0 \uc21c\ud68c\ud560 \uc218 \uc788\ub2e4)<\/p>\n\n\n\n<p>\uc544\ub798\ub294 for\ubb38\uc73c\ub85c \uc6d0\uc18c\ub97c \uc81c\uac70\ud558\ub824\uace0 \uc2dc\ub3c4\ud55c \uc608\uc81c\uc774\ub2e4. \ucef4\ud30c\uc77c\ub3c4 \uc798\ub418\uace0 \ub3d9\uc791\ub3c4 \ud558\uc9c0\ub9cc \uc5c9\ub6b1\ud55c \uacb0\uacfc\ub97c \ucd9c\ub825\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \uba54\uc778\uba54\uc18c\ub4dc\nArrayList&lt;String> list = new ArrayList&lt;>();\nlist.addAll(Arrays.asList(\"a\", \"b\", \"c\", \"d\"));\nSystem.out.println(list); \/\/ [a, b, c, d]\n\nfor (int i = 0; i &lt; list.size(); i++) { \/\/ list\uc758 \uc6d0\uc18c\ub4e4\uc774 \uc81c\uac70\ub418\uba74\uc11c 2\ubc88\ub9cc \uc21c\ud68c\ud55c\ub2e4\n    list.remove(i);\n    System.out.println(list); \/\/ \ucc98\uc74c\uc5d4 [b, c, d] , \uc774\ud6c4\uc5d0 [b, d] \ucd9c\ub825\n}\n<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">58-1. foreach\ubb38\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub294 \uacbd\uc6b0<\/h5>\n\n\n\n<ol class=\"wp-block-list\"><li>\ud30c\uad34\uc801\uc778 \ud544\ud130\ub9c1(deftructive filtering) : \uceec\ub809\uc158\uc744 \uc21c\ud68c\ud558\uba74\uc11c \uc120\ud0dd\ub41c \uc6d0\uc18c\ub97c \uc81c\uac70\ud558\ub824\uba74 \ubc18\ubcf5\uc790\uc758 remove\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ubbc0\ub85c foreach\ub97c \uc4f8 \uc218 \uc5c6\ub2e4. (ConcurrentModificationException \ubc1c\uc0dd)<\/li><li>\ubcc0\ud615(transforming) : \ub9ac\uc2a4\ud2b8\ub098 \ubc30\uc5f4\uc744 \uc21c\ud68c\ud558\uba74\uc11c \uadf8 \uc6d0\uc18c\uc758 \uac12 \uc77c\ubd80 \ud639\uc740 \uc804\uccb4\ub97c \ubcc0\uacbd\ud574\uc57c\ud55c\ub2e4\uba74 \ubc18\ubcf5\uc790\ub098 \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ubbc0\ub85c foreach\ub97c \uc4f8 \uc218 \uc5c6\ub2e4.<\/li><li>\ubcd1\ub82c \ubc18\ubcf5(parallel iteration) : \uc5ec\ub7ec \uceec\ub809\uc158\uc744 \ubcd1\ub82c\ub85c \uc21c\ud68c\ud574\uc57c \ud55c\ub2e4\uba74 \uac01\uac01\uc758 \ubc18\ubcf5\uc790\uc640 \uc778\ub371\uc2a4 \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ubbc0\ub85c foreach\ub97c \uc4f8 \uc218 \uc5c6\ub2e4.<\/li><\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c59. \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc775\ud788\uace0 \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<p>\uc544\uc8fc \ud2b9\ubcc4\ud558\uac70\ub098 \ud574\ub2f9 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c\ub9cc \uc4f0\uc774\ub294 \uae30\ub2a5\uc774 \uc544\ub2c8\ub77c\uba74 \ub204\uad70\uac00 \uc774\ubbf8 \ub77c\uc774\ube0c\ub7ec\ub9ac \ud615\ud0dc\ub85c \uad6c\ud604\ud574\ub193\uc558\uc744 \uac00\ub2a5\uc131\uc774 \ud06c\ub2e4. \uc544\ub798\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uba74 \uc5bb\ub294 \uc774\uc810\ub4e4\uc774\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">59-1. \ud45c\uc900 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uba74 \uc88b\uc740 \uc774\uc720<\/h5>\n\n\n\n<ol class=\"wp-block-list\"><li>\ud45c\uc900 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uba74 \uadf8 \ucf54\ub4dc\ub97c \uc791\uc131\ud55c \uc804\ubb38\uac00\uc758 \uc9c0\uc2dd\uacfc \uc774\uac83\uc744 \uc0ac\uc6a9\ud55c \ub2e4\ub978 \uac1c\ubc1c\uc790\uc758 \uacbd\ud5d8, \ub178\ud558\uc6b0 \ubb38\uc11c\uae4c\uc9c0 \ud65c\uc6a9\ud560 \uc218 \uc788\ub2e4. (\ucc45\uc5d0\uc11c \uc608\uc81c\ub85c \ub4e0 Random\ubcf4\ub2e4\ub294 jdk 1.7\ubd80\ud130 \ub098\uc628 ThreadLocalRandom\uc744 \ucd94\ucc9c, Random\uc740 \uba40\ud2f0 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uacbd\uc6b0 Seed \uac12\uc774 \uacb9\uce58\ub294 \uacbd\uc6b0\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ub098, ThreadLocalRandom\uc740 \uc548\uc804\ud558\ub2e4.)<\/li><li>\ud575\uc2ec \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \uc678\uc5d0 \ub4e4\uc774\ub294 \uc2dc\uac04\uc774 \uc904\uc5b4\ub4e0\ub2e4.<\/li><li>\ub530\ub85c \ub178\ub825\ud558\uc9c0 \uc54a\uc544\ub3c4 \uc131\ub2a5\uc774 \uc9c0\uc18d\uc801\uc73c\ub85c \uac1c\uc120\ub418\uba70 \uae30\ub2a5\uc774 \ucd94\uac00\ub41c\ub2e4. \ub77c\uc774\ube0c\ub7ec\ub9ac \uac1c\ubc1c\uc790\ub4e4\uc774 \uacc4\uc18d \ub178\ub825\ud558\uae30 \ub54c\ubb38\uc774\ub2e4.<\/li><li>\ucf54\ub4dc\uac00 \ub9ce\uc740 \uc0ac\ub78c\ub4e4\uc5d0\uac8c \ub0af\uc775\uc740 \ucf54\ub4dc\uac00 \ub418\uba70 \uc720\uc9c0\ubcf4\uc218\uc131\uacfc \uc7ac\ud65c\uc6a9\uc131\uc774 \uc88b\uc544\uc9c4\ub2e4.<\/li><\/ol>\n\n\n\n<p>\ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \ub108\ubb34 \ubc29\ub300\ud558\uc5ec \ubaa8\ub4e0 API\ub97c \uc544\ub294 \uac83\uc740 \ud798\ub4e4\uc9c0\ub9cc \uc801\uc5b4\ub3c4 \uc544\ub798 \ud328\ud0a4\uc9c0\ub4e4\uc740 \uc798 \uc54c\uba74 \uaf64 \uc720\uc6a9\ud558\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>java.lang<\/li><li>java.io<\/li><li>java.util : \uceec\ub809\uc158, \uc2a4\ud2b8\ub9bc, \ub3d9\uc2dc\uc131<\/li><\/ol>\n\n\n\n<h5 class=\"wp-block-heading\">59-2. \uc11c\ub4dc\ud30c\ud2f0 \ub77c\uc774\ube0c\ub7ec\ub9ac<\/h5>\n\n\n\n<p>\uc6d0\ud558\ub294 \uae30\ub2a5\uc774 \uc5c6\ub2e4\uba74 \uc11c\ub4dc\ud30c\ud2f0 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub4e4\uc744 \uc0ac\uc6a9\ud574\ubcf4\uc790.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>apache commons : \uc790\ubc14\uad00\ub828 \uacf5\ud1b5 \ucef4\ud3ec\ub10c\ud2b8 \uac1c\ubc1c, StringUtils\ub97c \ud55c\ubc88\ub3c4 \uc548\uc368\ubcf8 \uc0ac\ub78c\uc740 \uc788\uc5b4\ub3c4 \ud55c\ubc88\ub9cc \uc4f4 \uc0ac\ub78c\uc740 \uc5c6\ub2e4..<\/li><li>google guava : \uceec\ub809\uc158, \uce90\uc2f1, \ubb38\uc790\uc5f4 \ucc98\ub9ac \ub4f1 \uad6c\uae00\uc5d0\uc11c \ub9cc\ub4e0 \uc790\ubc14 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub4e4<\/li><li>jackson<\/li><li>jsoup<\/li><li>\ub9ce\uc9c0\ub9cc \ub77c\uc774\ube0c\ub7ec\ub9ac \uc18c\uac1c \ucf54\ub108\uac00 \uc544\ub2c8\ubbc0\ub85c \uc0dd\ub7b5..<\/li><\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c60. \uc815\ud655\ud55c \ub2f5\uc774 \ud544\uc694\ud558\ub2e4\uba74 float\uc640 double\uc740 \ud53c\ud558\ub77c<\/h4>\n\n\n\n<p>float\uc640 double \ud0c0\uc785\uc740 \uacfc\ud559\uacfc \uacf5\ud559 \uacc4\uc0b0\uc6a9\uc73c\ub85c \uc124\uacc4\ub418\uc5c8\ub2e4. \uc774\uc9c4 \ubd80\ub3d9\uc18c\uc218\uc810 \uc5f0\uc0b0\uc5d0 \uc4f0\uc774\uba70 \ub113\uc740 \ubc94\uc704\uc758 \uc218\ub97c \ube60\ub974\uac8c&nbsp;\uc815\ubc00\ud55c \uadfc\uc0ac\uce58\ub85c \uacc4\uc0b0\ud558\ub3c4\ub85d \uc138\uc2ec\ud558\uac8c \uc124\uacc4\ub418\uc5c8\ub2e4. \ub530\ub77c\uc11c \uc815\ud655\ud55c \uacb0\uacfc\uac00 \ud544\uc694\ud560 \ub54c\ub294 \uc0ac\uc6a9\ud558\uba74 \uc548\ub41c\ub2e4. (ex. \uae08\uc735) 0.1 \ud639\uc740 10\uc758 \uc74c\uc758 \uac70\ub4ed \uc81c\uacf1 \uc218(0.01, 0.001 \ub4f1)\ub97c \ud45c\ud604\ud560 \uc218 \uc5c6\uae30 \ub54c\ubb38\uc774\ub2e4. (ex. 1.03 &#8211; 0.42 = 0.6100000000000001)<\/p>\n\n\n\n<p>\ub300\uc548\uc73c\ub85c\ub294 2\uac00\uc9c0 \ubc29\ubc95\uc774 \uc788\ub2e4. BigDecimal\uc744 \uc0ac\uc6a9\ud558\uac70\ub098 int\uc640 long\uc744 \uc4f0\ub418 \uc18c\uc218\uc810\uc744 \uc9c1\uc811 \uad00\ub9ac\ud574\uc8fc\ub294 \ubc29\ubc95\uc774\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>BigDecimal\uc740 \uc798 \uacc4\uc0b0\ub418\uc9c0\ub9cc \uc6d0\uc2dc \ud0c0\uc785\ubcf4\ub2e4 \uc4f0\uae30 \ubd88\ud3b8\ud558\uace0 \ud6e8\uc52c \ub290\ub9ac\ub2e4.<\/li><li>int\uc640 long\uc740 \uc27d\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc9c0\ub9cc \uc790\ub9bf\uc218\ub97c \ub2e4\uc2dc \ub9de\ucdb0\uc8fc\ub294 \ub4f1\uc758 \uc791\uc5c5\uc774 \ud544\uc694\ud558\ub2e4.<\/li><\/ol>\n\n\n\n<p>\ub530\ub77c\uc11c \uc544\ud649 \uc790\ub9ac \uc2ed\uc9c4\uc218\ub85c \ud45c\ud604\ud560 \uc218 \uc788\ub2e4\uba74 int\ub97c \uc0ac\uc6a9\ud558\uace0, \uc5f4\uc5ec\ub35f \uc790\ub9ac \uc2ed\uc9c4\uc218\ub85c \ud45c\ud604\ud560 \uc218 \uc788\ub2e4\uba74 long \uc744 \uc4f0\uc790. \uc774\uac83\ub3c4 \ub118\uc5b4\uac04\ub2e4\uba74 BigDecimal \uc744 \uc4f0\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c61. \ubc15\uc2f1\ub41c \uae30\ubcf8 \ud0c0\uc785\ubcf4\ub2e4\ub294 \uae30\ubcf8 \ud0c0\uc785\uc744 \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<p>\uc544\ub798\ub294 \uc6d0\uc2dc\ud0c0\uc785\uacfc \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc758 \uc8fc\ub41c \ucc28\uc774\uc774\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\uc6d0\uc2dc\ud0c0\uc785\uc740 \uac12\ub9cc \uac00\uc9c0\uace0 \uc788\uc73c\ub098, \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc740 \uac12\uacfc \uc2dd\ubcc4\uc131\uae4c\uc9c0 \uac16\uace0 \uc788\ub2e4. \uc989, \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc740 \uac12\uc774 \uac19\uc544\ub3c4 \ub2e4\ub974\ub2e4\uace0 \uc2dd\ubcc4\ub420 \uc218 \uc788\ub2e4.<\/li><li>\uc6d0\uc2dc\ud0c0\uc785\uc758 \uac12\uc740 \uc5b8\uc81c\ub098 \uc720\ud6a8\ud558\uc9c0\ub9cc \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc740 null\uc744 \uac00\uc9c8 \uc218 \uc788\ub2e4.<\/li><li>\uc6d0\uc2dc\ud0c0\uc785\uc774 \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\ubcf4\ub2e4 \uc2dc\uac04\uacfc \uba54\ubaa8\ub9ac \uc0ac\uc6a9\uba74\uc5d0\uc11c \ub354 \ud6a8\uc728\uc801\uc774\ub2e4.<\/li><\/ol>\n\n\n\n<h5 class=\"wp-block-heading\">61-1. \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc758 \ubb38\uc81c<\/h5>\n\n\n\n<p>\ub2e4\uc74c \ube44\uad50\uc790\ub294 \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc5d0\uc11c \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294 \uccab\ubc88\uc9f8 \ubb38\uc81c\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Comparator&lt;Integer> naturalOrder = (i, j) -> (i &lt; j) ? -1 : (i == j ? 0 : 1)\n\n\/\/ \uba54\uc778\uba54\uc18c\ub4dc\nnaturalOrder.compare(new Integer(82), new Integer(82)); \/\/ \uae30\ub300\uac12 0, \uc2e4\uc81c\uac12 1\n<\/code><\/pre>\n\n\n\n<p>\uc55e\uc5d0\uc11c i &lt; j \ub294 \uc798 \uc791\ub3d9\ud558\uc600\uc73c\ub098, \ub4a4\uc5d0\uc11c i == j \uc774 \uac12\uc758 \ub3d9\ub4f1\uc744 \ube44\uad50\ud558\uc9c0 \uc54a\uace0 \uc778\uc2a4\ud134\uc2a4 \ub3d9\uce58\uc131\uc744 \ud310\ub2e8\ud55c \uac83\uc774\ub2e4. \ub530\ub77c\uc11c true \ub300\uc2e0 false \uac00 \ubc18\ud658\ub418\uba74\uc11c \uc624\ub3d9\uc791\ud558\uc600\ub2e4. \uc989, \ubc15\uc2f1\ub41c \uae30\ubcf8 \ud0c0\uc785\uc5d0 == \uc5f0\uc0b0\uc790\ub97c \uc0ac\uc6a9\ud558\uba74 \uc624\ub958\uac00 \ubc1c\uc0dd\ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc544\ub798\ub294 \ub450\ubc88\uc9f8 \ubb38\uc81c\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Integer i;\nif (i == 82) {\n    ...\n}\n<\/code><\/pre>\n\n\n\n<p>\uc774 \ucf54\ub4dc\ub294 NullPointerException\uc744 \ub358\uc9c4\ub2e4. \uc6d0\uc2dc\ud0c0\uc785\uacfc \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc744 \ud63c\uc6a9\ud55c \uc5f0\uc0b0\uc5d0\uc11c\ub294 \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc758 \ubc15\uc2f1\uc774 \uc790\ub3d9\uc73c\ub85c \ud480\ub9ac\uae30 \ub54c\ubb38\uc774\ub2e4. null\uc744 \uc5b8\ubc15\uc2f1\ud588\uae30 \ub54c\ubb38\uc5d0 \uc608\uc678\uac00 \ubc1c\uc0dd\ud588\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">61-2. \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc744 \uc0ac\uc6a9\ud574\uc57c \ud560 \ub54c<\/h5>\n\n\n\n<ol class=\"wp-block-list\"><li>\ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\ub97c \uc0ac\uc6a9 : \uc81c\ub124\ub9ad\uc5d0\uc11c \ubcf4\uc558\ub4ef\uc774 \ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uc5d0\ub294 \uc6d0\uc2dc\ud0c0\uc785\uc744 \uc4f8 \uc218 \uc5c6\ub2e4. \uc608\ub97c\ub4e4\uba74 \uceec\ub809\uc158\uc740 \uc6d0\uc2dc\ud0c0\uc785\uc744 \ub2f4\uc744 \uc218 \uc5c6\uc73c\ubbc0\ub85c \uc6d0\uc18c, \ud0a4, \uac12\uc73c\ub85c \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc744 \uc368\uc57c\ud55c\ub2e4.<\/li><li>\ub9ac\ud50c\ub809\uc158\uc744 \ud1b5\ud574 \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud560 \ub54c\ub294 \ubc15\uc2f1\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc744 \uc368\uc57c\ud55c\ub2e4.<\/li><\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c62. \ub2e4\ub978 \ud0c0\uc785\uc774 \uc801\uc808\ud558\ub2e4\uba74 \ubb38\uc790\uc5f4 \uc0ac\uc6a9\uc744 \ud53c\ud558\ub77c<\/h4>\n\n\n\n<p>\ubb38\uc790\uc5f4\uc740 \ud14d\uc2a4\ud2b8\ub97c \ud45c\ud604\ud558\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\ub2e4. \uadf8\ub7f0\ub370 \ubb38\uc790\uc5f4\uc740 \uc6d0\ub798 \uc758\ub3c4\ud558\uc9c0 \uc54a\uc740 \uc6a9\ub3c4\ub85c\ub3c4 \uc4f0\uc774\ub294 \uacbd\ud5a5\uc774 \uc788\ub2e4. \ubb38\uc790\uc5f4\uc740 \ub2e4\ub978 \uac12 \ud0c0\uc785\uc744 \ub300\uc2e0\ud558\uae30\uc5d0 \uc801\ud569\ud558\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\ubb38\uc790\uc5f4\uc740 \uac12 \uc790\ub8cc\ud615(value type)\uc744 \ub300\uc2e0\ud558\uae30\uc5d0 \uc801\ud569\ud558\uc9c0 \uc54a\ub2e4. \uc218\uce58\ud615\uc774\ub77c\uba74 int, BigInteger \ub4f1\uc744 \uc4f0\uc790.<\/li><li>\ubb38\uc790\uc5f4\uc740 \uc5f4\uac70 \ud0c0\uc785\uc744 \ub300\uc2e0\ud558\uae30\uc5d0 \uc801\ud569\ud558\uc9c0 \uc54a\ub2e4. (\uc544\uc774\ud15c34)<\/li><li>\ubb38\uc790\uc5f4\uc740 \ud63c\ud569 \ud0c0\uc785(aggregate type)\uc744 \ub300\uc2e0\ud558\uae30\uc5d0 \uc801\ud569\ud558\uc9c0 \uc54a\ub2e4. \uc5ec\ub7ec \uc694\uc18c\uac00 \ud63c\ud569\ub41c \ub370\uc774\ud130\ub97c \ud558\ub098\uc758 \ubb38\uc790\uc5f4\ub85c \ud45c\ud604\ud558\ub294 \uac83\uc740 \ub300\uccb4\ub85c \uc88b\uc9c0 \uc54a\ub2e4. \uad6c\ubd84\uc790\uac00 \uacb9\uce58\uba74 escape \ucc98\ub9ac \ubc0f \ud30c\uc2f1\ud574\uc11c \uc368\uc57c\ud558\uace0 \uc624\ub958\uac00\ub2a5\uc131\ub3c4 \ucee4\uc9c4\ub2e4. \ucc28\ub77c\ub9ac \uc804\uc6a9 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ud3b8\uc774 \ub0ab\ub2e4.<\/li><li>\ubb38\uc790\uc5f4\uc740 \uad8c\ud55c(capability)\uc744 \ud45c\ud604\ud558\uae30\uc5d4 \uc801\ud569\ud558\uc9c0 \uc54a\ub2e4. \ubb38\uc790\uc5f4\uc744 \uc0ac\uc6a9\ud574 \uae30\ub2a5 \uc811\uadfc \uad8c\ud55c\uc744 \ud45c\ud604\ud558\ub294 \uac83\uc740 \uc5b4\ub835\ub2e4.<\/li><\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c63. \ubb38\uc790\uc5f4 \uc5f0\uacb0\uc740 \ub290\ub9ac\ub2c8 \uc8fc\uc758\ud558\ub77c<\/h4>\n\n\n\n<p>\ubb38\uc790\uc5f4 \uc5f0\uacb0 \uc5f0\uc0b0\uc790(+)\ub294 \uc5ec\ub7ec \ubb38\uc790\uc5f4\uc744 \ud558\ub098\ub85c \ud569\uccd0\uc8fc\ub294 \ud3b8\ub9ac\ud55c \ubc29\ubc95\uc774\ub2e4. \uadf8\ub7ec\ub098 \uc774 \uc5f0\uc0b0\uc790\ub97c \ub9ce\uc774 \uc0ac\uc6a9\ud558\uba74 \uc131\ub2a5\uc800\ud558\uac00 \uc0dd\uae38 \uc218 \uc788\ub2e4. \ubb38\uc790\uc5f4 \uc5f0\uacb0 \uc5f0\uc0b0\uc790\ub85c \ubb38\uc790\uc5f4 n\uac1c\ub97c \uc787\ub294 \uc2dc\uac04\uc740 n\uc758 \uc81c\uacf1\uc5d0 \ube44\ub840\ud55c\ub2e4. \ubb38\uc790\uc5f4\uc740 \ubd88\ubcc0\uc774\ubbc0\ub85c \uc591\ucabd \ub0b4\uc6a9 \ubaa8\ub450\ub97c \ubcf5\uc0ac\ud558\ubbc0\ub85c \uc0dd\uae30\ub294 \uacb0\uacfc\uc774\ub2e4.<\/p>\n\n\n\n<p>\ub300\ud45c\uc801\uc778 \uc608\uc81c\ub294 \ubc18\ubcf5\ubb38 \ub0b4&nbsp;<code>result += str<\/code>&nbsp;\uac19\uc740 \uc608\uc81c\uc77c \uac83\uc774\ub2e4. \uc131\ub2a5\uc744 \ud3ec\uae30\ud558\uace0 \uc2f6\uc9c0 \uc54a\ub2e4\uba74 String \ub300\uc2e0 StringBuilder \ub610\ub294 StringBuffer\ub97c \uc0ac\uc6a9\ud558\uc790.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">63-1. StringBuilder \uc640 StringBuffer \uc758 \ucc28\uc774<\/h5>\n\n\n\n<p>StringBuffer\ub294 \uba40\ud2f0\uc2a4\ub808\ub4dc \ud658\uacbd\uc744 \uc5fc\ub450\uc5d0 \ub450\uace0 \uc124\uacc4\ub418\uc5c8\uae30 \ub54c\ubb38\uc5d0, \uba54\uc18c\ub4dc\ub4e4\ub9c8\ub2e4 synchronized \uac00 \uac78\ub824\uc788\ub2e4. \uadf8\ub7ec\ub098 StringBuilder\ub294 \uc5c6\ub2e4. \ub530\ub77c\uc11c \uba40\ud2f0\uc2a4\ub808\ub4dc \ud658\uacbd\uc5d0\uc11c thread-safe \ud558\uac8c \uc4f0\uace0 \uc2f6\ub2e4\uba74 StringBuffer \ub97c \uc4f0\uace0, \uc2f1\uae00\uc2a4\ub808\ub4dc\ub77c\uba74 StringBuilder\ub97c \uc4f0\ub294\uac8c \uc720\ub9ac\ud558\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">63-2. \ucef4\ud30c\uc77c\ub7ec\uc758 \ubb38\uc790\uc5f4 \uc5f0\uacb0 \ucd5c\uc801\ud654<\/h5>\n\n\n\n<p>jdk 1.5\ubd80\ud130\ub294 \ubb38\uc790\uc5f4 \uc5f0\uacb0 \uc5f0\uc0b0\uc790(+)\ub97c \uc790\ub3d9\uc73c\ub85c \ucd5c\uc801\ud654\ud574\uc900\ub2e4. \uc544\ub798\uc758 \uc608\uc81c\ub97c \ubcf4\uc790<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String plusOpStr1 = \"a\" + \"b\" + \"c\"; \/\/ \ucef4\ud30c\uc77c \uc2dc String plusOpStr1 = \"abc\"; \ub85c \ubc14\ub010\ub2e4\nString plusOpStr2 = \"x\" + plusOpStr1 + \"y\"; \/\/ \ucef4\ud30c\uc77c \uc2dc String plusOpStr2 = (new StringBuilder(\"x\")).append(plusOpStr1).append(\"y\").toString(); \ub85c \ubc14\ub010\ub2e4\nString plusOpStr3 = \"\";\nfor (int i = 0; i &lt; 100; i++) {\n    plusOpStr3 += \"f\"; \/\/ \ucef4\ud30c\uc77c \uc2dc plusOpStr3 = (new StringBuilder(String.valueOf(plusOpStr3))).append(f).toString(); \ub85c \ubc14\ub010\ub2e4\n}\n<\/code><\/pre>\n\n\n\n<p>\ub2e8\uc21c\ud55c \uc0c1\uc218 \ubb38\uc790\uc5f4 \uc5f0\uacb0\uc740 \ucef4\ud30c\uc77c\ub7ec\uac00 \uc774\ubbf8 \uc54c\uc544\uc11c \ud569\uccd0\uc8fc\uc5c8\uace0, \uac00\ubcc0\ubcc0\uc218\ub294 StringBuilder\uc758 append, toString\uc73c\ub85c \ubcc0\ud558\uc600\ub2e4. \uc774\ub97c \ud65c\uc6a9\ud574\uc11c \uac00\ub3c5\uc131\uc788\uac8c \uae34 \ubb38\uc790\uc5f4\uc744 \uc5ec\ub7ec \uc904\ub85c \ub098\ub220\uc11c \uc4f8 \uc218\ub3c4 \uc788\uaca0\ub2e4. \ub2e4\ub9cc \ubc18\ubcf5\ubb38\uc5d0\uc11c\ub294 append\ub9cc \ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c, StringBuilder \ub97c \uacc4\uc18d new \ud574\uc11c \uc4f0\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0 \uba85\uc2dc\uc801\uc73c\ub85c \uc368\uc8fc\ub294 \uac8c \uc131\ub2a5\uc5d0 \uc88b\uc744 \uac83 \uac19\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c64. \uac1d\uccb4\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud574 \ucc38\uc870\ud558\ub77c<\/h4>\n\n\n\n<p>\uc544\uc774\ud15c51\uc5d0\uc11c \ub9e4\uac1c\ubcc0\uc218 \ud0c0\uc785\uc73c\ub85c \ud074\ub798\uc2a4\uac00 \uc544\ub2c8\ub77c \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\ub77c\uace0 \uad8c\uc7a5\ud588\ub2e4. \uc774\uac83\uc740 \uac1d\uccb4\ub294 \ud074\ub798\uc2a4\uac00 \uc544\ub2cc \uc778\ud130\ud398\uc774\uc2a4\ub97c \ucc38\uc870\ud558\ub77c\uace0 \ud655\uc7a5\ud560 \uc218 \uc788\ub2e4. \uc801\ud569\ud55c \uc778\ud130\ud398\uc774\uc2a4\ub9cc \uc788\ub2e4\uba74 \ub9e4\uac1c\ubcc0\uc218 \ubfd0 \uc544\ub2c8\ub77c \ubc18\ud658\uac12, \ubcc0\uc218, \ud544\ub4dc\ub97c \uc804\ubd80 \uc778\ud130\ud398\uc774\uc2a4 \ud0c0\uc785\uc73c\ub85c \uc120\uc5b8\ud558\ub77c. \uac1d\uccb4\uc758 \uc2e4\uc81c \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud574\uc57c \ud560 \uc0c1\ud669\uc740 \uc624\uc9c1 \uc0dd\uc131\uc790\ub85c \uc0dd\uc131\ud560 \ub54c \ubfd0\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc778\ud130\ud398\uc774\uc2a4\ub97c \ud0c0\uc785\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 \uc2b5\uad00\uc744 \uae38\ub7ec\ub450\uba74 \ud504\ub85c\uadf8\ub7a8\uc774 \ud6e8\uc52c \uc720\uc5f0\ud574\uc9c8 \uac83\uc774\ub2e4. (ex.&nbsp;<code>List&lt;String&gt; nameList = new ArrayList&lt;&gt;();<\/code>) \ub098\uc911\uc5d0 \uad6c\ud604 \ud074\ub798\uc2a4\ub97c \uad50\uccb4\ud558\uace0\uc790 \ud55c\ub2e4\uba74 \uc0c8 \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790(\ub610\ub294 \uc815\uc801 \ud329\ud1a0\ub9ac)\ub97c \ud638\ucd9c\ud574\uc8fc\uae30\ub9cc \ud558\uba74 \ub41c\ub2e4. (ex.&nbsp;<code>List&lt;String&gt; nameList = new LinkedList&lt;&gt;();<\/code>)<\/p>\n\n\n\n<p>\ub9cc\uc57d \uc801\ud569\ud55c \uc778\ud130\ud398\uc774\uc2a4\uac00 \uc5c6\ub2e4\uba74 \ub2f9\uc5f0\ud788 \ud074\ub798\uc2a4\ub85c \ucc38\uc870\ud574\uc57c \ud55c\ub2e4. \uc774 \uacbd\uc6b0 \ubcf4\ud1b5 \uac12 \ud0c0\uc785(String, Integer \ub4f1)\uc5d0 \ud574\ub2f9\ub41c\ub2e4. \ub610\ud55c PriorityQueue \uc640 \uac19\uc774 Queue \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \uc5c6\ub294 \uc0c8\ub85c\uc6b4 \uba54\uc18c\ub4dc\ub97c \uc81c\uacf5\ud55c\ub2e4\uba74 \uc9c1\uc811 \ucc38\uc870\ud574\uc57c\ud55c\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">64-1. \uc778\ud130\ud398\uc774\uc2a4\ud654\uc5d0 \ub300\ud55c \uac1c\uc778\uc801\uc778 \uace0\ucc30<\/h5>\n\n\n\n<p>OCP(\uac1c\ubc29 \ud3d0\uc1c4 \uc6d0\uce59), DIP(\uc758\uc874 \uc5ed\uc804 \uc6d0\uce59) \ub4f1\uc5d0\uc11c \ud55c\uacb0\uac19\uc774 \ud558\ub294 \ub9d0\uc774 \uad6c\uccb4\ud074\ub798\uc2a4\ubcf4\ub2e8 \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \uc758\uc874\ud568\uc73c\ub85c\uc368 \ud574\uacb0\ud558\uc790\ub294 \uac83\uc774\ub2e4. \uc774 \ucc45\uc758 \uc800\uc790 \uc5ed\uc2dc \uc774\ubc88 \uc544\uc774\ud15c\uc5d0\uc11c \uc778\ud130\ud398\uc774\uc2a4\ub97c \ucd5c\ub300\ud55c \uc4f8 \uac83\uc744 \uc5b8\uae09\ud558\uace0 \uc788\ub2e4. \uc774\ud574\ub294 \uac00\uc9c0\ub9cc \uc11c\ube44\uc2a4\uac1c\ubc1c\uc5d0\uc11c\ub3c4 \uc774\uac83\uc744 &#8216;\uc5b8\uc81c&#8217; \uc9c0\ucf1c\uc57c\ud558\ub294 \uc9c0\ub294 \ub17c\uc7c1\uc774 \ub420 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>Service &#8211; ServiceImpl \uad6c\uc870&nbsp;: Spring \uc758 \uc5ec\ub7ec \uad50\uacfc\uc11c\ub4e4\uc774 \ub9d0\ud558\uace0 \uc788\ub294 \uad6c\uc870\uc774\ub2e4. \uadf8\ub7ec\ub098 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc744 \ucc98\ub9ac\ud558\ub294 \uc11c\ube44\uc2a4\uac00 \uad6c\ud604 \ud074\ub798\uc2a4\ub97c 2\uac1c \uc774\uc0c1 \uac00\uc9c8 \uc77c\uc774 \uac70\uc758 \uc5c6\uc5b4\ub3c4 \uaf2d \uc778\ud130\ud398\uc774\uc2a4\ub97c \ub9cc\ub4e4\uace0 \uc758\uc874\ud574\uc57c\ud560\uae4c? \uc77c\ub2e8 \uc778\ud130\ud398\uc774\uc2a4\uc5c6\uc774 \ub9cc\ub4e4\uace0 \uc0c8\ub85c\uc6b4 \uad6c\ud604\uccb4\uac00 \ucd94\uac00\ub418\ub294 \uc2dc\uc810\uc5d0 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ub9cc\ub4e4\uc790\ub294 \uc758\uacac\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p>DAO\uc758 \uacbd\uc6b0 DB\uc5d0 \uc758\uc874\ud558\uc9c0 \uc54a\uace0 \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud574 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ub9cc\ub4e4\uace0 MockDAO\ub85c \uad50\uccb4\ud558\uc5ec \ud14c\uc2a4\ud2b8\ud560 \ub54c \uc4f4\ub2e4. \ub77c\uace0 \ub9d0\ud560 \uc218\ub3c4 \uc788\ub2e4. (mock\uc744 \uc9c1\uc811 \ub9cc\ub4dc\ub294 \uac83 \ubcf4\ub2e8 mockito \ucd94\ucc9c!)<\/p>\n\n\n\n<p>\uadf8\ub7ec\ub098 \ub2e4\ub978 \uc758\uacac\ub3c4 \uc788\ub2e4. \uad6c\ud604 \ud074\ub798\uc2a4\ub294 \ucea1\uc290\ub0b4\ubd80\uc774\uba70 \ubcf4\uc774\uc9c0 \uc54a\ub294 \uac8c \uc88b\ub2e4. \uc678\ubd80\uc640\uc758 \uc57d\uc18d\ub9cc\uc744 \ud45c\uae30\ud55c \uc778\ud130\ud398\uc774\uc2a4\ub294 \uadf8 \uc5ed\ud560\uc744 \uc5b8\uc5b4\ub808\ubca8\uc5d0\uc11c \ud574\ub0b8\ub2e4. \uc778\ud130\ud398\uc774\uc2a4\ub294 \uad00\uc2ec\uc758 \uacbd\uacc4\ub97c \ub098\ub204\ub3c4\ub85d \ub3c4\uc640\uc8fc\ub294 \uc7a5\uce58\uc774\uba70 \ud504\ub85c\ud1a0\ucf5c\uc744 \uc815\ud558\ub294 \uaddc\uc57d\uc774\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c65. \ub9ac\ud50c\ub809\uc158\ubcf4\ub2e4\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<p>\ub9ac\ud50c\ub809\uc158 \uae30\ub2a5\uc744 \uc774\uc6a9\ud558\uba74 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc784\uc758\uc758 \ud074\ub798\uc2a4\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\ub2e4. Class \uac1d\uccb4\uac00 \uc8fc\uc5b4\uc9c0\uba74 \uadf8 \ud074\ub798\uc2a4\uc758 Constructor, Method, Field \uc778\uc2a4\ud134\uc2a4\ub97c \uac00\uc838\uc62c \uc218 \uc788\uace0, \uc774 \uc778\uc2a4\ud134\uc2a4 \ub0b4\uc758 \uac01\uc885 \ub370\uc774\ud130(\uba54\uc18c\ub4dc \uc2dc\uadf8\ub2c8\ucc98, \ud544\ub4dc\uba85 \ub4f1)\ub3c4 \uac00\uc838\uc62c \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>Method.invoke()\ub97c \uc0ac\uc6a9\ud558\uba74 \uc5b4\ub5a4 \ud074\ub798\uc2a4\uc758 \uc5b4\ub5a4 \uac1d\uccb4\uac00 \uac00\uc9c4 \uc5b4\ub5a4 \uba54\uc18c\ub4dc\ub77c\ub3c4 \ud638\ucd9c\ud560 \uc218 \uc788\ub2e4. \ub9ac\ud50c\ub809\uc158\uc744 \uc0ac\uc6a9\ud558\uba74 \ucef4\ud30c\uc77c \ub2f9\uc2dc\uc5d0 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub358 \ud074\ub798\uc2a4\ub3c4 \uc774\uc6a9\ud560 \uc218 \uc788\ub2e4. \uadf8\ub7ec\ub098 \uc544\ub798\uc640 \uac19\uc740 \ub2e8\uc810\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\ucef4\ud30c\uc77c\ud0c0\uc784 \ud0c0\uc785 \uac80\uc0ac\uac00 \uc8fc\ub294 \uc774\uc810\uc744 \ub204\ub9b4 \uc218 \uc5c6\ub2e4. \uc608\uc678 \uac80\uc0ac\ub3c4 \ub9c8\ucc2c\uac00\uc9c0\uc774\uba70, \uc608\uc678\ubc1c\uc0dd \uc2dc \ub7f0\ud0c0\uc784 \uc624\ub958\uac00 \ubc1c\uc0dd\ud55c\ub2e4.<\/li><li>\ub9ac\ud50c\ub809\uc158\uc744 \uc774\uc6a9\ud558\uba74 \ucf54\ub4dc\uac00 \uc9c0\uc800\ubd84\ud574\uc9c0\uace0 \uc7a5\ud669\ud574\uc9c4\ub2e4.<\/li><li>\uc131\ub2a5\uc774 \ub5a8\uc5b4\uc9c4\ub2e4.<\/li><\/ol>\n\n\n\n<p>\ub530\ub77c\uc11c \ub9ac\ud50c\ub809\uc158\uc740 \uc544\uc8fc \uc81c\ud55c\ub41c \ud615\ud0dc\ub85c\ub9cc \uc0ac\uc6a9\ud558\uba70 \ub2e8\uc810\uc744 \ud53c\ud558\uace0 \uc774\uc810\ub9cc \ucde8\ud574\uc57c \ud55c\ub2e4. \ub9ac\ud50c\ub809\uc158\uc740 \uc778\uc2a4\ud134\uc2a4 \uc0dd\uc131\uc5d0\ub9cc \uc4f0\uace0, \ub9ac\ud50c\ub809\uc158\uc73c\ub85c \ub9cc\ub4e0 \uc778\uc2a4\ud134\uc2a4\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub098 \uc0c1\uc704 \ud074\ub798\uc2a4\ub85c \ucc38\uc870\ud574\uc11c \uc0ac\uc6a9\ud558\uc790.<\/p>\n\n\n\n<p>\uc544\ub798 \ucf54\ub4dc\ub294 \uc2e4\ud589\uc778\uc790\ub85c java.util.TreeSet a b c d \ub97c \ub118\uae30\uba74 [a, b, c, d] \ub97c \ucd9c\ub825\ud558\ub294 \ucf54\ub4dc\uc774\ub2e4. \uc778\ud130\ud398\uc774\uc2a4\ub97c \ucc38\uc870\ud558\ub3c4\ub85d \ud558\uc5ec\uc11c \ucef4\ud30c\uc77c\ud0c0\uc784\uc758 \uac80\uc0ac\ub97c \uc870\uae08\uc774\ub098\ub9c8 \uc774\uc6a9\ud558\uc600\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static void main(String[] args) {\n    Class&lt;? extends Set&lt;String>> cl = null;\n    Set&lt;String> s = null;\n    try {\n        cl = (Class&lt;? extends Set&lt;String>>) Class.forName(args[0]);\n        Constructor&lt;? extends Set&lt;String>> cons = cl.getDeclaredConstructor();\n        s = cons.newInstance();\n    } catch (ReflectiveOperationException e) {\n         System.err.println(\"\ub9ac\ud50c\ub809\uc158 \ub3c4\uc911 \uc5d0\ub7ec \ubc1c\uc0dd\");\n         System.exit(1);\n    }\n    s.addAll(Arrays.asList(args).subList(1, args.length));\n    System.out.println(s);\n}\n<\/code><\/pre>\n\n\n\n<p>\uc704 \ucf54\ub4dc\ub294 \ub7f0\ud0c0\uc785\uc5d0 ClassNotFoundException, NoSuchMethodException, InvocationTargetException \ub4f1 6\uac00\uc9c0\ub97c \ub358\uc9c8 \uc218 \uc788\uc5c8\uc73c\ub098 jdk 1.7 \ubd80\ud130 \uc9c0\uc6d0\ub418\ub294 ReflectiveOperationException \ub97c \ud1b5\ud574 \uadf8\ub098\ub9c8 \uac04\uc18c\ud654\ud558\uc600\ub2e4. \uadf8\ub7fc\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0 \ub9ac\ud50c\ub809\uc158\uc774 \uc544\ub2c8\uc5c8\ub2e4\uba74 \uc0dd\uc131\uc790 \ud638\ucd9c \ud55c \uc904\ub85c \ub05d\ub0ac\uc744 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c66. \ub124\uc774\ud2f0\ube0c \uba54\uc18c\ub4dc\ub294 \uc2e0\uc911\ud788 \uc0ac\uc6a9\ud558\ub77c<\/h4>\n\n\n\n<p>\uc790\ubc14 \ub124\uc774\ud2f0\ube0c \uc778\ud130\ud398\uc774\uc2a4(Java Natvie Interface, JNI)\ub294 \uc790\ubc14\uc5d0\uc11c native \uba54\uc18c\ub4dc(C, C++ \ub4f1\uc73c\ub85c \uc791\uc131)\ub97c \ud638\ucd9c\ud558\ub294 \uae30\uc220\uc774\ub2e4. natvie \uba54\uc18c\ub4dc\uc758 \uc4f0\uc784\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\ub808\uc9c0\uc2a4\ud2b8\ub9ac \uac19\uc740 \ud50c\ub7ab\ud3fc \ud2b9\ud654 \uae30\ub2a5\uc744 \uc0ac\uc6a9<\/li><li>native \ucf54\ub4dc\ub85c \uc791\uc131\ub41c \uae30\ubcf8 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9<\/li><li>\uc131\ub2a5 \uac1c\uc120\uc744 \ubaa9\uc801\uc73c\ub85c \uc131\ub2a5\uc5d0 \uacb0\uc815\uc801\uc778 \uc601\ud5a5\uc744 \uc8fc\ub294 \uc601\uc5ed\ub9cc \ub530\ub85c natvie \uc5b8\uc5b4\ub85c \uc791\uc131<\/li><\/ol>\n\n\n\n<p>\uadf8\ub7ec\ub098 java\uac00 \uacc4\uc18d \ubc1c\uc804\ud574\uac00\uba74\uc11c native \uba54\uc18c\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc77c\uc774 \uc810\ucc28 \uc0ac\ub77c\uc9c0\uace0 \uc788\ub2e4. (ex. java 9\ubd80\ud130\ub294 process API\uac00 \uac15\ud654\ub428) native \uba54\uc18c\ub4dc\ub294 \uba54\ubaa8\ub9ac \ud6fc\uc190\uc73c\ub85c\ubd80\ud130 \uc548\uc804\ud558\uc9c0 \uc54a\uc73c\uba70 \ub514\ubc84\uae45\ub3c4 \uc5b4\ub835\ub2e4. GC\ub294 natvie \uba54\ubaa8\ub9ac\ub97c \uc790\ub3d9 \ud68c\uc218\ud558\uc9c0 \ubabb\ud558\uae30 \ub54c\ubb38\uc774\ub2e4. \ub610\ud55c java \ucf54\ub4dc\uc640 native \uba54\uc18c\ub4dc \uc0ac\uc774\uc5d0 \ubc14\uc778\ub529 \uc5ed\uc2dc \ucf54\ub4dc\uc791\uc131\uc744 \ud574\uc57c\ud574\uc11c \ube44\uc6a9\uc774 \ub4e4\uc5b4\uac04\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c67. \ucd5c\uc801\ud654\ub294 \uc2e0\uc911\ud788 \ud558\ub77c<\/h4>\n\n\n\n<p>\uc131\ub2a5\ub54c\ubb38\uc5d0 \uacac\uace0\ud55c \uad6c\uc870\ub97c \ud76c\uc0dd\ud558\uc9c0 \ub9d0\uc544\uc57c \ud55c\ub2e4. \ube60\ub978 \ud504\ub85c\uadf8\ub7a8\ubcf4\ub2e4\ub294 \uc88b\uc740 \ud504\ub85c\uadf8\ub7a8\uc774 \uc88b\ub2e4. \uc560\ucd08\uc5d0 \uc124\uacc4 \ub2e8\uacc4\uc5d0\uc11c \uc131\ub2a5\uc744 \ubc18\ub4dc\uc2dc \uc5fc\ub450\uc5d0 \ub450\uc5b4\uc57c \ud55c\ub2e4. \uc544\ud0a4\ud14d\ucc98\uc758 \uacb0\ud568\uc774 \uc131\ub2a5\uc744 \uc81c\ud55c\ud558\ub294 \uc0c1\ud669\uc774\ub77c\uba74 \uc804\uccb4\ub97c \ub2e4\uc2dc \uc791\uc131\ud558\uc9c0 \uc54a\uace0\ub294 \ud574\uacb0\uc774 \ubd88\uac00\ub2a5\ud558\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\uc131\ub2a5\uc744 \uc81c\ud55c\ud558\ub294 \uc124\uacc4\ub97c \ud53c\ud558\ub77c. \uc644\uc131 \ud6c4 \ubcc0\uacbd\ud558\uae30 \uc5b4\ub824\uc6b4 \uc124\uacc4 \uc694\uc18c\ub294 \uc678\ubd80 \ucef4\ud3ec\ub10c\ud2b8, \uc2dc\uc2a4\ud15c\uacfc\uc758 \uc18c\ud1b5 \ubc29\uc2dd\uc774\ub2e4. (API, \ud504\ub85c\ud1a0\ucf5c, \ud30c\uc77c\ub370\uc774\ud130 \ub4f1)<\/li><li>API\ub97c \uc124\uacc4\ud560 \ub54c \uc131\ub2a5\uc5d0 \uc8fc\ub294 \uc601\ud5a5\uc744 \uace0\ub824\ud558\ub77c. public \uba54\uc18c\ub4dc\uc5d0\uc11c \ub0b4\ubd80 \ub370\uc774\ud130\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\uac8c \ub9cc\ub4e4\uba74 \ubd88\ud544\uc694\ud55c \ubc29\uc5b4\uc801 \ubcf5\uc0ac\ub97c \uc720\ubc1c\ud55c\ub2e4. \ub610\ud55c \ucef4\ud3ec\uc9c0\uc158\uc73c\ub85c \ud574\uacb0\ud560 \uc218 \uc788\ub294 public\ud074\ub798\uc2a4\ub97c \uc0c1\uc18d\uc73c\ub85c \ucc98\ub9ac\ud55c\ub2e4\uba74 \uc601\uc6d0\ud788 \uc0c1\uc704 \ud074\ub798\uc2a4\uc5d0 \uc885\uc18d\ub418\uace0 \uc131\ub2a5\uae4c\uc9c0 \ubb3c\ub824\ubc1b\ub294\ub2e4.<\/li><li>\uac01\uac01\uc758 \ucd5c\uc801\ud654 \uc2dc\ub3c4 \uc804\ud6c4\ub85c \uc131\ub2a5\uc744 \uce21\uc815\ud558\ub77c. \ud504\ub85c\ud30c\uc77c\ub9c1 \ub3c4\uad6c\ub294 \ucd5c\uc801\ud654 \ub178\ub825\uc744 \uc5b4\ub514\uc5d0 \uc9d1\uc911\ud574\uc57c\ud560\uc9c0 \uc54c\ub824\uc900\ub2e4.<\/li><\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">\uc544\uc774\ud15c68. \uc77c\ubc18\uc801\uc73c\ub85c \ud1b5\uc6a9\ub418\ub294 \uba85\uba85 \uaddc\uce59\uc744 \ub530\ub974\ub77c<\/h4>\n\n\n\n<p>\uc790\ubc14\uc758 \uba85\uba85\uaddc\uce59\uc740 \ud06c\uac8c \ucca0\uc790\uc640 \ubb38\ubc95\uc73c\ub85c \ub098\ub25c\ub2e4.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">68-1. \ucca0\uc790\uaddc\uce59<\/h5>\n\n\n\n<p>\ucca0\uc790\uaddc\uce59\uc740 \ud328\ud0a4\uc9c0, \ud074\ub798\uc2a4, \uc778\ud130\ud398\uc774\uc2a4, \uba54\uc18c\ub4dc, \ud544\ub4dc, \ud0c0\uc785\ubcc0\uc218\uc758 \uc774\ub984\uc744 \ub2e4\ub8ec\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud328\ud0a4\uc9c0\uc640 \ubaa8\ub4c8\uba85\uc740 \uac01 \uc694\uc18c\ub97c \uc810(.)\uc73c\ub85c \uc774\uc73c\uba70 \uacc4\uce35\uc801\uc73c\ub85c \uc9d3\ub294\ub2e4. \ubaa8\ub450 \uc18c\ubb38\uc790 \ud639\uc740 \uc22b\uc790\ub85c \uc9c0\uc5b4\uc57c\ud55c\ub2e4. \ub3c4\uba54\uc778\uc774 \uc788\ub2e4\uba74 \uc5ed\uc21c\uc73c\ub85c \uc0ac\uc6a9\ud55c\ub2e4.<\/li><li>\ud074\ub798\uc2a4\uc640 \uc778\ud130\ud398\uc774\uc2a4 \uc774\ub984\uc740 \ub300\ubb38\uc790\ub85c \uc2dc\uc791\ud558\uba70 \uc904\uc5ec\uc4f0\uc9c0 \uc54a\ub3c4\ub85d \ud55c\ub2e4. \uc57d\uc790\uc758 \uacbd\uc6b0\ub77c\ub3c4 \uccab\uae00\uc790\ub9cc \ub300\ubb38\uc790\ub85c \ud558\ub294 \uac83\uc744 \uad8c\uc7a5\ud55c\ub2e4.<\/li><li>\uba54\uc18c\ub4dc\uc640 \ud544\ub4dc\uba85\uc740 \uccab\uae00\uc790\ub97c \uc18c\ubb38\uc790\ub85c \uc4f4\ub2e4. \ub2e8, \uc0c1\uc218\ud544\ub4dc\ub294 \ubaa8\ub450 \ub300\ubb38\uc790\ub85c \uc4f0\uba70 \ub2e8\uc5b4 \uc0ac\uc774\ub294 \ubc11\uc904(_)\ub85c \uad6c\ubd84\ud55c\ub2e4.<\/li><li>\ud0c0\uc785 \ub9e4\uac1c\ubcc0\uc218\uba85\uc740 \ud55c \ubb38\uc790\ub85c \ud45c\ud604\ud55c\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c \uc544\ub798\uc640 \uac19\uc774 \uc4f4\ub2e4.<ul><li>T : \uc784\uc758\uc758 \ud0c0\uc785. Type\uc758 \uc57d\uc790<\/li><li>E : \uceec\ub809\uc158\uc758 \uc6d0\uc18c. Element\uc758 \uc57d\uc790<\/li><li>K, V : Map\uc758 \ud0a4\uc640 \uac12. Key\uc640 Value\uc758 \uc57d\uc790<\/li><li>X : \uc608\uc678. Exception\uc758 \uc57d\uc790<\/li><li>R : \uba54\uc18c\ub4dc\uc758 \ubc18\ud658 \ud0c0\uc785. Return\uc758 \uc57d\uc790<\/li><\/ul><\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">68-2. \ubb38\ubc95\uaddc\uce59<\/h5>\n\n\n\n<p>\ubb38\ubc95\uaddc\uce59\uc740 \ub17c\uc7c1\uc758 \uc18c\uc9c0\uac00 \uc788\uc744 \uc218 \uc788\uc73c\uba70, \uc720\uc5f0\ud558\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub294 \ud074\ub798\uc2a4\uba85\uc740 \ubcf4\ud1b5 \uba85\uc0ac, \uba85\uc0ac\uad6c\ub97c \uc0ac\uc6a9\ud55c\ub2e4. (ex. Thread)<\/li><li>\uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc5c6\ub294 \ud074\ub798\uc2a4\uba85\uc740 \ubcf4\ud1b5 \ubcf5\uc218\ud615 \uba85\uc0ac\ub85c \uc9d3\uac70\ub098 \ud615\uc6a9\uc0ac\ub85c \uc9d3\ub294\ub2e4.<\/li><li>\uba54\uc18c\ub4dc\uba85\uc740 \ub3d9\uc0ac, \ub3d9\uc0ac\uad6c\ub85c \uc9d3\ub294\ub2e4.<\/li><li>\ud574\ub2f9 \uc778\uc2a4\ud134\uc2a4\uc758 \uc18d\uc131\uc744 \ubc18\ud658\ud558\ub294 \uba54\uc18c\ub4dc\ub294 \uba85\uc0ac \ub610\ub294 get\uc73c\ub85c \uc2dc\uc791\ud558\ub294 \ub3d9\uc0ac\uad6c\ub85c \uc9d3\ub294\ub2e4. (boolean \uc81c\uc678)<\/li><li>\uac1d\uccb4\uc758 \ud0c0\uc785\uc744 \ubc14\uafd4\uc11c \ub2e4\ub978 \ud0c0\uc785\uc758 \ub610 \ub2e4\ub978 \uac1d\uccb4\ub97c \ubc18\ud658\ud558\ub294 \uba54\uc18c\ub4dc\ub294 \ubcf4\ud1b5 to\ud0c0\uc785 \ud615\ud0dc\ub85c \uc9d3\ub294\ub2e4. (toString, toArray, toPath \ub4f1)<\/li><li>\uac1d\uccb4\uc758 \ub0b4\uc6a9\uc744 \ub2e4\ub978 \ubdf0\ub85c \ubcf4\uc5ec\uc8fc\ub294 \uba54\uc18c\ub4dc\ub294 as\ud0c0\uc785 \ud615\ud0dc\ub85c \uc9d3\ub294\ub2e4. (asList \ub4f1)<\/li><li>\uac1d\uccb4\uc758 \uac12\uc744 \uae30\ubcf8\ud0c0\uc785 \uac12\uc73c\ub85c \ubc18\ud658\ud558\ub294 \uba54\uc18c\ub4dc\ub294 \ud0c0\uc785Value \ud615\ud0dc\ub85c \uc9d3\ub294\ub2e4. (intValue \ub4f1)<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\uc544\uc774\ud15c15. \ud074\ub798\uc2a4\uc640 \uba64\ubc84\uc758 \uc811\uadfc \uad8c\ud55c\uc744 \ucd5c\uc18c\ud654\ud558\ub77c \ucef4\ud3ec\ub10c\ud2b8\uac00 \uc798 \uc124\uacc4\ub418\uace0 \uc548 \ub418\uace0\uc758 \ucc28\uc774\ub294 \ud074\ub798\uc2a4 \ub0b4\ubd80 \uad6c\ud604 \uc815\ubcf4\ub97c \uc678\ubd80 \ucef4\ud3ec\ub10c\ud2b8\ub85c\ubd80\ud130 \uc5bc\ub9c8\ub098 \uc798 \uc228\uacbc\uc9c0\uc5d0 \ub530\ub77c \uacb0\uc815\ub41c\ub2e4. \uc989, \uad6c\ud604\uacfc API\ub97c \uae54\ub054\ud788 \ubd84\ub9ac\ud558\ub294 \uac83\uc774\ub2e4. \uc774\uac83\uc740 \uc815\ubcf4\uc740\ub2c9 \ud639\uc740 \ucea1\uc290\ud654\ub77c\uace0 \ud754\ud788 \ubd88\ub9b0\ub2e4. 15-1. \uc815\ubcf4\uc740\ub2c9\uc758 \uc7a5\uc810 \uac1c\ubc1c \uc18d\ub3c4\uac00 \ub192\ub2e4. \uc5ec\ub7ec \ucef4\ud3ec\ub10c\ud2b8\ub97c \ubcd1\ub82c\ub85c \uac1c\ubc1c\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc774\ub2e4. \uad00\ub9ac\ube44\uc6a9\uc774 \ub0ae\ub2e4. \ube68\ub9ac \ud30c\uc545\ud560 \uc218 \uc788\uace0, \ub2e4\ub978<\/p>\n<footer class=\"entry-footer index-entry\">\n<div class=\"post-social pull-left\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=http%3A%2F%2Fhappily70.dothome.co.kr%2F%3Fp%3D676\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-facebook\" aria-hidden=\"true\"><\/i><\/a><a href=\"https:\/\/twitter.com\/home?status=http%3A%2F%2Fhappily70.dothome.co.kr%2F%3Fp%3D676\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-twitter\" aria-hidden=\"true\"><\/i><\/a><a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=http%3A%2F%2Fhappily70.dothome.co.kr%2F%3Fp%3D676&#038;title=%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C+%EC%9E%90%EB%B0%94\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-linkedin\" aria-hidden=\"true\"><\/i><\/a><\/div>\n<p class=\"link-more\"><a href=\"http:\/\/happily70.dothome.co.kr\/?p=676\" class=\"more-link\">Continue reading <span class=\"meta-nav\">\u2192<\/span><\/a><\/p>\n<\/footer>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,33,9],"tags":[],"class_list":["post-676","post","type-post","status-publish","format-standard","hentry","category-back-end","category-developement","category-java"],"_links":{"self":[{"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/676"}],"collection":[{"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=676"}],"version-history":[{"count":1,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/676\/revisions"}],"predecessor-version":[{"id":677,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/676\/revisions\/677"}],"wp:attachment":[{"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=676"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}