์ ๊ทผ์ ์ด์ ๋ณ์ํ์ (์๋ฃํ) ๋ณ์์ด๋ฆ์ฒซ ๊ธ์๋ ๋ฌธ์ , $ , \_ ์ด์ด์ผ ํ๊ณ ์ซ์๋ก ์์ํ ์ ์์์์ด ๋์๋ฌธ์ ๊ตฌ๋ถcamelCase๋ก ์์ฑ์๋ฐ ์์ฝ์ด๋ ์ฌ์ฉ ๋ถ๊ฐ์์ฝ์ด๋ณ์๊ฐ ์ด๋ค ๊ฐ์ ์ ์ฅํ๊ณ ์๋์ง ์ฝ๊ฒ ์ ์ ์๋๋ก ์๋ฏธ ์๋ ์ด๋ฆ์ ์ง์ด์ฃผ๋ ๊ฒ์ด ์ข๋ค.๋ณ์์
๊ฐ์ ํ์ฉ ๋ฒ์๊ฐ ์์ ํ์ ์ด ํ์ฉ ๋ฒ์๊ฐ ํฐ ํ์ ์ผ๋ก ์ ์ฅ๋ ๋ ๋ฐ์byteํ์ ์ char ํ์ ์ผ๋ก ํ๋ณํ ๋ ์ ์์ \- why?charํ์ ์ ํ์ฉ๋ฒ์๋ ์์๋ฅผ ํฌํจํ์ง ์๊ธฐ ๋๋ฌธ!์ํ์์ 1 ๋๋๊ธฐ 2๋ฅผ ํ๋ฉด 0.5๊ฐ ๋๋ค. ๊ทธ๊ฑธ ์ฝ๋๋ก ์ฎ๊ธฐ๋ฉด 0.0์ด ์ถ
์ฐ์ ์ฐ์ฐ์ํผ์ฐ์ฐ์๋ค์ ํ์ ์ด ๋์ผํ์ง ์์ ๊ฒฝ์ฐ ํ์ ์ ์ผ์น์ํจ๋คํผ์ฐ์ฐ์ ํ์ : byte, short, char --> int๋ก ๋ณํ์ ์ ํ์ ํผ์ฐ์ฐ์ && longํ์ ํฌํจ --> ๋ชจ๋ long ํ์ ์ผ๋ก ๋ณํ์ค์ํ์ ์ด ์๋ ๊ฒฝ์ฐ --> ํ์ฉ๋ฒ์ ํฐ ์ค์ ํ์ ์ผ๋ก ๋ณํ
ํํฐ๋์ ์ค๋ช ์ ๋ค์ผ๋ฉด์int์ Integerboolean ๊ณผ Boolean์ ์ฐจ์ด๊ฐ ๋ญ๊น?์๋ฌธ์ด ์๊ฒผ๋ค.
: ๋ณ์๊ฐ ์ด๋ค ๊ฐ์ ๊ฐ๋๋์ ๋ฐ๋ผ ์คํ๋ฌธ ์ ํ์ผ์ด์ค ๋๊ฐ ์ค์ ๋ ๊ฐ๋ฅํจ\*Math.random()์์์ ์ ์ ๋ฝ๊ธฐ ๋ฉ์๋. 0.0~1.0 double ๋์ ๋ฆฌํด (1.0์ ํฌํจ ์๋จ)๐งreference์ ์ฉ๊ถ, ใํผ์ ๊ณต๋ถํ๋ ์๋ฐใ,ํ๋น๋ฏธ๋์ด, 2019
์ ํด์ง ํ์๋งํผ ๋ฐ๋ณต. ๋ฐ๋ณตํ์๋ฅผ ์๊ณ ์์ ๋ ์ฌ์ฉ์กฐ๊ฑด์์ด true๋ฉด ๋ธ๋ก ๋ด๋ถ ์คํ๋ฌธ ์คํ, false๋ฉด for๋ฌธ ์ข ๋ฃ์กฐ๊ฑด์์ด false๊ฐ ๋๊ธฐ ์ ๊น์ง ์คํ๋ฌธ -> ์ฆ๊ฐ์ -> ์กฐ๊ฑด์์ผ๋ก ๋ฐ๋ณต๊ฐ์ฒด : ๋ฃจํ๋ฅผ ๋๋ฆด ์ ์๋ ์๋ฃํ(๋ฐฐ์ด, ArrayList ๋ฑ)๋ง ๊ฐ๋ฅ
๊ฐ์ฒด์งํฅ ๊ฐ์ฒด๋ค ๊ฐ์ ์ํธ์์ฉ์ ์ฝ๋๋ก ํํ ์บก์ํ๊ฐ ์ค์ ๊ฐ์ฒด(Object) ์ํํธ์จ์ด ์ธ๊ณ์์ ๊ตฌํํ ๋์ ์์ฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉด์ ์๋ณ ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ฒด๋ชจ๋ธ๋ง : ํ์ค์ธ๊ณ์ ๊ฐ์ฒด๋ฅผ ์ํํธ์จ์ด ๊ฐ์ฒด๋ก ์ค๊ณํ๋ ๊ฒ ์ํํธ์จ์ด ๊ฐ์ฒด์ ํ๋์ ๋ฉ์๋๋ก ์ ์ ๋ฉ์๋
: ํด๋์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ Person()๊ฐ์ ํจ์Person personLee = new Person();์์ฑ์ Phone()ํจ์ ์์ฑ์ผ์ชฝ ์ฝ๋๋ ๋ํดํธ ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐPhone galaxy/iphone = new Phone();์ธ์คํด์ค ๋ณ์๊ฐ ๋ฐ๋ก ์ด๊ธฐ
: ์์ฑ๋ ์ธ์คํด์ค ์ค์ค๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ฝ์ดํน์งthis์ฌ์ฉ ์์ฑ์ ํธ์ถํ๋ ์ฝ๋ ์ด์ ์๋ ๋ค๋ฅธ ์ฝ๋๋ฅผ ๋ฃ์ ์ ์์!๋ค๋ฅธ ์ฝ๋๋ฅผ ๋ฃ๊ฒ ๋๋ฉด ์ค๋ฅ ๋ฐ์๋ํดํธ ์์ฑ์์์ ์์ฑ์ด ์๋ฃ๋๋ ๊ฒ์ด ์๋๋ผ this๋ฅผ ์ฌ์ฉํด ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ๋ฏ๋ก this ๋ฌธ์ฅ์ด ๊ฐ์ฅ ๋จผ์ ์์ผ
ํน์งํ ๋ฒ ์ ์ธํ ๋ฐฐ์ด์ ๊ธธ์ด ๋ณ๊ฒฝ ๋ถ๊ฐ์๋ฃํ\[] ๋ฐฐ์ด์ด๋ฆ = new ์๋ฃํ\[๊ฐ์];์๋ฃํ ๋ฐฐ์ด์ด๋ฆ\[] = new ์๋ฃํ\[๊ฐ์];์ ์ธ๊ณผ ๋์์ ๊ฐ์ด ์ด๊ธฐํ๋จ์๋ฃํ์ ๋ฐ๋ผ์ ์: 0์ค์: 0.0๊ฐ์ฒด: null์ ์ธ๊ณผ ๋์์ ํน์ ๊ฐ์ผ๋ก ์ด๊ธฐํ ๊ฐ๋ฅ\[๊ฐ์]์ ๊ฐ์๋ฅผ
extends์์ฝ์ด ์ฌ์ฉ์ค์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ ์์ํ์ ์ ์๋ ํจ์๋ ๋ถ๋ชจํ์ ์ ๋ณ์๋ก ์ฌ์ฉํ ๋ ํธ์ถ ๋ถ๊ฐ.์ฌ๋ฌ ํด๋์ค ์์ ๋ถ๊ฐ. ๋ถ๋ชจ๋ ์ค์ง ํ๋super : ์ฐธ์กฐ๋ณ์. ๋ถ๋ชจ ํด๋์ค์ ๋ฉค๋ฒ์ ์์ ํด๋์ค์ ๋ฉค๋ฒ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ ์ฌ์ฉํ์ฌ ๋ถ๋ชจ ํด๋์ค์ ๋ฉค๋ฒ์
abstract ํด๋์ค๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ฐ๋์ ์์ํด์ ์ฌ์ฉํ๋๋ก ๊ฐ์ ํ๋ ๊ฒ์์๋ฐ๋ ํด๋์ค๋ง๋ค ๋ฐ๋์ ๋์์ด ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ , ์์๋ฐ๋ ํด๋์ค์ ์์ฑ์๊ฐ ๋ฐ๋์ ์์ฑํ๋๋ก ํ๊ธฐ ์ํจ์์๋ฐ๋ ์์ ํด๋์ค ์์ด ์ธ์คํด์ค๋ก ์์ฑ ๋ถ๊ฐ์ถ์ ํด๋์ค๋ ํญ์ ์ถ์ ๋ฉ
์ด๋ค ๊ฐ์ด ํ๋์ ์ฐธ์กฐ ์๋ฃํ์ด ์๋ ์ฌ๋ฌ ์ฐธ์กฐ ์๋ฃํ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค.์ฌ๋ฌ ์ฐธ์กฐ ์๋ฃํ์ด ์ฐ์ผ ์ ์๋ ๊ณณ์ ํน์ ํ ์๋ฃํ์ ์ง์ ํ์ง ์์ํด๋์ค๋ ๋ฉ์๋๋ฅผ ์ ์ํ ํ ์ฌ์ฉํ๋ ์์ ์ ์๋ฃํ ์ง์ ํด๋์ค๋ ๋ฉ์๋์์ ์ฌ์ฉํ ๋ด๋ถ ๋ฐ์ดํฐ ํ์ ์ ์ปดํ์ผ ์์ ๋ฏธ๋ฆฌ
์ปดํจํฐ๋ 0๊ณผ 1๋ก๋ง ํํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ํ 0๊ณผ 1์ ์กฐํฉ์ผ๋ก ๋ํ๋ด์ผ ํ๋ค.๋ฌธ์๋ฅผ ์ปดํจํฐ ๋ด๋ถ์์ ํํํ ๋ ํน์ ์ ์๊ฐ์ผ๋ก ์ ํ์๊ณ ์ฝ์์ ํ๋๋ฐ ์ด๋ฐ ์ฝ๋ ๊ฐ์ ๋ชจ์ ๋ ๊ฒ์ ๋ฌธ์์ธํธ๋ผ๊ณ ํ๋ค.๋ฌธ์ ์ธ์ฝ๋ฉ : ๋ฌธ์ --> ์ ํด์ง ์ฝ๋ ๊ฐ๋ฌธ์ ๋์ฝ๋ฉ :
์๋ฐ ๊ฐ์ ๋จธ์ ์๋ฐ ํ๋ก๊ทธ๋จ ์คํ ํ๊ฒฝ์ ๋ง๋ค์ด์ฃผ๋ ์ํํธ์จ์ด์๋ฐ ์ฝ๋๋ฅผ ์ปดํ์ผํ์ฌ .class ๋ฐ์ดํธ ์ฝ๋๋ก ๋ง๋ค๋ฉด ์ด ์ฝ๋๋ฅผ ์คํํด ๊ฐ OS์ ๋ง๋ ์คํํ์ผ๋ก ๋ฐ๊ฟ์ค์๋ฐ์ค์นํ๋ค == ์๋ฐ JDK ์ค์นํ๋ค์๋ฐ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ธฐ ์ํด์๋ JDK๊ฐ ์์ด์ผ ํจ์คํํ๊ธฐ ์ํด
ํด๋์ค ํน์ ํ๋ก๊ทธ๋จ์ด ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ๋ช ์์ ์ผ๋ก ์ ์ธํ๋ ์ญํ ์ถ์๋ฉ์๋๋ก ์ด๋ฃจ์ด์ง์ด๋ค ๊ฐ์ฒด๊ฐ ํน์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๊ทธ ๊ฐ์ฒด๋ ๋ฐ๋์ ์ธํฐํ์ด์ค์ ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผํจ. (implements ์์ฝ์ด ์ฌ์ฉ)์ถ์๋ฉ์๋๋ก ๊ตฌํ์ฒด์๊ฒ ๊ตฌํ ๊ฐ์ ํด๋์ค์ ๋ช ์ธ์ ์ญํ .์ด
ํจ์ ๊ตฌํ๊ณผ ํธ์ถ๋ง์ผ๋ก ํ๋ก๊ทธ๋๋ฐํ๋ ๋ฐฉ์์์ํจ์(pure function)๋ฅผ ๊ตฌํ, ํธ์ถ โ ์ธ๋ถ ์๋ฃ์ ๋ถ์์ ์ํฅ(side effect)์ฃผ์ง ์๋๋ก ๊ตฌํ์์ํจ์ = ๋งค๊ฐ๋ณ์๋ง์ ์ฌ์ฉํ์ฌ ๋ง๋๋ ํจ์ํจ์ ๋ด๋ถ์์ ํจ์ ์ธ๋ถ์ ์๋ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์์ ํจ์ ์ํ ์
๋ฐฐ์ด์ด๋ ์ปฌ๋ ์ ์ ๋ด๊ธด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋, ๋ฐ๋ณต๋ฌธ์ด๋, iterator๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ๊ธธ์ด์ง๊ณ , ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํด Stream API ๋ฑ์ฅ.์ฌ๋ฌ ์๋ฃ์ ์ฒ๋ฆฌ์ ๋ํ ๊ธฐ๋ฅ์ ๊ตฌํํด ๋์ ํด๋์ค๋ฐฐ์ด, ์ปฌ๋ ์ ๋ฑ์ ์๋ฃ๋ฅผ ์ผ๊ด์ฑ ์๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅ์ฒ
JVM์์ ๊ฐ์ฒด๊ฐ ์์ฑ๋์์ ๋ ์์ฑ๋ ๊ฐ์ฒด์ ํ ๋นํ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ
get() : private ๋ณ์์ ์ ๊ทผํด ๊ฐ์ ๊ฐ์ ธ์ค๋ public ๋ฉ์๋set(): private ๋ณ์์ ์ ๊ทผํด ๊ฐ์ ์ง์ ํ๋ public ๋ฉ์๋
โ์กด์ฌํ ์๋ ์์ง๋ง ์ ํ ์๋ ์๋ ๊ฐ์ฒดโ, ์ฆ, โnull์ด ๋ ์๋ ์๋ ๊ฐ์ฒดโ์ ๊ฐ์ธ๊ณ ์์<T>ํ์ ๊ฐ์ฒด์ Wrapper class๋ชจ๋ ์ข ๋ฅ์ ๊ฐ์ฒด ์ ์ฅ ๊ฐ๋ฅ๊ฐ์ ์ ์ผ๋ก null์ ๋ค๋ฃจ๊ธฐnull ๊ด๋ จ ๋ฌธ์ ๋ฐํ์์ Null Pointer Exception
java 14์์ ๋์ ๋ ํด๋์ค๊ฐ๋จํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฎ๊ธฐ๋ ์ญํ . ๋ฐ์ดํฐ์ ์ ํ๋ง ๊ฐ๊ณ ์์๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ํด๋์ค๋๊ฐ๊ฐ์ ํ๋๋ private final๋ก ์ ์ ํ๋ ์ ์ฒด๋ฅผ ์ด๊ธฐํํ๋ ์์ฑ์getter๋ชจ๋ ํ๋๊ฐ ์ผ์นํ ๋ equals ๋ฉ์๋hashCode ๋ฉ์๋ํด๋
์ด ํฌ์คํ ์ ๊น์ข ๋ฏผ, โ์คํ๋ง ์ ๋ฌธ์ ์ํ ์๋ฐ ๊ฐ์ฒด ์งํฅ์ ์๋ฆฌ์ ์ดํดโ ์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค.JDK: Java Development KitJRE: Java Runtime EnvironmentJVM: Java Virtual MachineWrite Once Run An
์ด ํฌ์คํ ์ ๊น์ข ๋ฏผ, โ์คํ๋ง ์ ๋ฌธ์ ์ํ ์๋ฐ ๊ฐ์ฒด ์งํฅ์ ์๋ฆฌ์ ์ดํดโ ์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค."์ฐ๋ฆฌ๊ฐ ์ฃผ๋ณ์์ ์ฌ๋ฌผ์ ์ธ์งํ๋ ๋ฐฉ์๋๋ก ํ๋ก๊ทธ๋๋ฐํ ์ ์์ง ์๊ฒ ๋๊ฐ?"ํด๋์ค๋ ๋ถ๋ฅ์ ๋ํ ๊ฐ๋ ์ผ๋ก ๊ทธ ์ค์ฒด๊ฐ ๊ฐ์ฒด๋ค.๊ฐ์ฒด์งํฅ์ ๊ฐ์ฒด๋ฅผ ์ธ๊ฐ์ ์ธ์ง ๋ฐ ์ฌ๊ณ ๋ฐฉ์์ผ๋ก ํ
์ด ํฌ์คํ ์ ๊น์ข ๋ฏผ, โ์คํ๋ง ์ ๋ฌธ์ ์ํ ์๋ฐ ๊ฐ์ฒด ์งํฅ์ ์๋ฆฌ์ ์ดํดโ ์ ์ฝ๊ณ ์ ๋ฆฌํ์ต๋๋ค.๊ฐ์ฒด์งํฅ์ ํ์ฅํ๊ธฐ ์ํด ์๋ฐ๊ฐ ์ฌ์ฉํ๋ ํค์๋์ถ์๋ฉ์๋: ์ ์ธ๋ถ๋ ์๋๋ฐ ๊ตฌํ๋ถ๊ฐ ์๋ ๋ฉ์๋์ถ์๋ฉ์๋๋ฅผ ํ๋๋ผ๋ ๊ฐ๊ณ ์๋ค๋ฉด ์ถ์ํด๋์ค๋ก ์ ์ธํด์ผํจํ์ ํด๋์ค์๊ฒ ๋ฉ์๋