๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

[JAVA] ์—ฐ์‚ฐ์ž (2023.03.22 ์ˆ˜์—…) ๋ณธ๋ฌธ

full stack/JAVA

[JAVA] ์—ฐ์‚ฐ์ž (2023.03.22 ์ˆ˜์—…)

Shinjio 2023. 3. 24. 18:26

2023.03.22 ํ•™์Šต๋‚ด์šฉ

 

๐Ÿ”Ž ๋Œ€์ž…์—ฐ์‚ฐ์ž(ํ• ๋‹น์—ฐ์‚ฐ์ž)

์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž

 

๐Ÿ“– ๋Œ€์ž…(ํ• ๋‹น)์—ฐ์‚ฐ์ž 

๊ธฐํ˜ธ : =

๋Œ€์ž…์—ฐ์‚ฐ์ž์˜ ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ํ™•์ธ

์—ฐ์‚ฐ์ž์˜ ์˜ค๋ฅธ์ชฝ ์‹์˜ ๊ฒฐ๊ณผ๋ฅผ ์™ผ์ชฝ์— ์žˆ๋Š” ๋ณ€์ˆ˜์— ๋Œ€์ž…

 

a = b;

b๋ฅผ a์— ํ• ๋‹นํ•œ๋‹ค

 

a = b + 1;

b๋ฅผ 1๊ณผ ๋”ํ•œ ํ›„ a์— ํ• ๋‹นํ•œ๋‹ค

 

์—ฐ์Šต๋ฌธ์ œ

int x = 2;
int y = 10;
z = x++*2+--y-5+x*(y%2)

x++ → 2๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  x๋Š” 3์ด๋จ
x → 3
--y → 9๊ฐ€ ๋œ ํ›„ ์ถœ๋ ฅ, y๋Š” 9๊ฐ€ ๋จ

z = 2 * 2 + 9 - 5 + 3 * (9 % 2) 
   = 4 + 9 - 5 + 3 
   = 11

 

๐Ÿ“– ๋ณตํ•ฉ ๋Œ€์ž…์—ฐ์‚ฐ์ž

๊ธฐํ˜ธ : +=,  -=,  *=,  /=,  %=,  &=,  ^=,  |=, ...

๋Œ€์ž…์—ฐ์‚ฌ์ž ๊ธฐํ˜ธ ์•ž์— ๋‹ค๋ฅธ ์—ฐ์‚ฐ์ž๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉ

์ค„์ž„๋ง์ด๋ผ ์ƒ๊ฐํ•˜๋ฉด ์ข‹์Œ

๋ณตํ•ฉ ๋Œ€์ž…์—ฐ์‚ฐ์ž ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ํ™•์ธ

 

a += b;

a = a + b๋ฅผ ์˜๋ฏธํ•จ

 

int a = 10;

int b = 3;

a += b;

→ a = a + b์™€ ๊ฐ™์Œ → a = 10 + 3 → a์— 13๋ฅผ ํ• ๋‹นํ•œ๋‹ค

โ€ป ๊ธฐํ˜ธ ์•ž์— ์žˆ๋Š” ๊ฐ’์— ๋’ค์— ์žˆ๋Š” ๊ฐ’์„ ๋”ํ•จ ๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ ์•ž์— ์žˆ๋Š” ๊ฐ’์— ๋’ค์— ์žˆ๋Š” ๊ฐ’์„ ํ• ๋‹นํ•จ

 

int num = 29;
num -= 2 + 3 * 4
-> num = num - (2 + 3 * 4) 
-> num = num - 14

 

๐Ÿ“– ์ฆ๊ฐ์—ฐ์‚ฐ์ž

๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์„ 1์ฆ๊ฐ€ ํ˜น์€ 1๊ฐ์†Œ ํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž (๋งŽ์ด ์‚ฌ์šฉ)

์ฆ๊ฐ€์—ฐ์‚ฐ์ž ++

๊ฐ์†Œ์—ฐ์‚ฐ์ž --

 

๋ณ€์ˆ˜๊ฐ€ ์ฆ๊ฐ์—ฐ์‚ฐ์ž ์•ž์— ์žˆ๋Š” ๊ฒฝ์šฐ (๋ณ€์ˆ˜ ++ / ๋ณ€์ˆ˜ --)

→ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ’์„ ๋จผ์ € ์‚ฌ์šฉํ•œ ํ›„ 1์ฆ๊ฐ€ ํ˜น์€ 1๊ฐ์†Œ์‹œํ‚ด 

 

๋ณ€์ˆ˜๊ฐ€ ์ฆ๊ฐ์—ฐ์‚ฐ์ž ๋’ค์— ์žˆ๋Š” ๊ฒฝ์šฐ ( ++ ๋ณ€์ˆ˜ / -- ๋ณ€์ˆ˜)

→ ๋ณ€์ˆ˜์— ์ผ๋‹จ ๋ฌด์กฐ๊ฑด 1์ฆ๊ฐ€ ํ˜น์€ 1๊ฐ์†Œ ํ›„ ๋ณ€์ˆ˜ ์‚ฌ์šฉ

 

int i = 3;
System.out.println(++i); -> i๋Š” 4 (1์ฆ๊ฐ€ ํ›„ ์ถœ๋ ฅ)
System.out.println(i++); -> i๋Š” 4 (์ถœ๋ ฅ ํ›„ 1์ฆ๊ฐ€)
System.out.println(i); -> i๋Š” 5

 

๐Ÿ“– ๋น„๊ต์—ฐ์‚ฐ์ž 

๋‘ ๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋น„๊ตํ•˜์—ฌ TRUE ๋˜๋Š” FALSE์˜ ๋…ผ๋ฆฌ ๊ฐ’์„ ๋‚ด๋Š” ์—ฐ์‚ฐ์ž

์งˆ๋ฌธ์œผ๋กœ ์ƒ๊ฐ

๊ฒฐ๊ณผ๊ฐ€ Boolean(true or false) ์ฐธ๊ณผ ๊ฑฐ์ง“์œผ๋กœ ๋‚˜์˜ด

 

1) <, <=, >, >=

2) ==(๊ฐ™๋‹ค) , !=(๊ฐ™์ง€ ์•Š๋‹ค)

! : NOT ์—ฐ์‚ฐ์ž

 

๐Ÿ“– ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ ๊ฐ’์„ ๋Œ€์ƒ์œผ๋กœ AND, OR, XOR, NOT์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ ํ•˜์—ฌ ๋…ผ๋ฆฌ ๊ฐ’์„ ๋‚ด๋Š” ์—ฐ์‚ฐ์ž

ํ”ผ์—ฐ์‚ฌ์ž๋„ boolean์ด๊ณ  ๊ฒฐ๊ณผ๊ฐ’๋„ boolean์ž„. ๋ฐ”๋ผ์„œ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ๋งŽ์ด ์‚ฌ์šฉ

 

โ˜… ๊ผญ ๊ธฐ์–ตํ•˜๊ธฐ

A B A && B A  || B !A
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE FALSE
FALSE TRUE FALSE TRUE TRUE
FALSE FALSE FLASE FALSE TRUE

 

1) ! (NOT) - ๋‹จํ•ญ์—ฐ์‚ฐ์ž

2) && (AND), || (OR) - ์ดํ•ญ์—ฐ์‚ฐ์ž

 

๋น„๊ต์—ฐ์‚ฐ์ž๊ฐ€ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์šฐ์„ 

๋น„๊ต์—ฐ์‚ฐ์ž์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๋…ผ๋ฆฌ์—ฐ์‚ฐ์„ ์‹ค์‹œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ

 

๐Ÿ“– ์‚ผํ•ญ(ternary) ์—ฐ์‚ฐ์ž = ์กฐ๊ฑด์—ฐ์‚ฐ์ž

(์กฐ๊ฑด๋ฌธ) ? (์‹คํ–‰๋ฌธ1) : (์‹คํ–‰๋ฌธ2)
์กฐ๊ฑด๋ฌธ์€ true, false ๋กœ๋งŒ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ

 

์กฐ๊ฑด๋ฌธ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์“ธ ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์Œ

์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ด๋ฉด ์‹คํ–‰๋ฌธ1์„ ์‹คํ–‰ํ•˜๊ณ  ๊ฑฐ์ง“์ด๋ฉด ์‹คํ–‰๋ฌธ2๋ฅผ ์‹คํ–‰

 

์กฐ๊ฑด์‹์—๋Š” ๋น„๊ต์—ฐ์‚ฐ ํ˜น์€ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ด ๋งŽ์ด์˜ด. ์™œ๋ƒํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ’์ด boolean์ด ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ

 

 

 

๋‘ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ ํฐ ์ˆ˜์—์„œ ์ž‘์€ ์ˆ˜๋ฅผ ๋บ€ ๊ฒฐ๊ณผ๊ฐ’์„ ์ถœ๋ ฅ

 

 

๋†๊ตฌ๊ณต์„ ๋‹ด๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ƒ์ž์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ 

์ƒ์ž ํ•˜๋‚˜์—๋Š” ๋†๊ตฌ๊ณต์ด 5๊ฐœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ

 

 

์‹œ๊ธ‰๊ณ„์‚ฐ๊ธฐ

๊ธฐ๋ณธ ์‹œ๊ธ‰์€ 9,000์›์ด๊ณ  8์‹œ๊ฐ„์ด ๋„˜์„ ๊ฒฝ์šฐ ์ดˆ๊ณผ ์ž„๊ธˆ์€ ์‹œ๊ธ‰์˜ 1.5๋ฐฐ๋ฅผ ์ฑ…์ •

 

 

๐Ÿ“– ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ (๊ธฐ์–ตํ•ด์•ผ ํ•จ)

 

 

๐Ÿ“– ๋น„ํŠธ์—ฐ์‚ฐ

๋น„ํŠธ ์—ฐ์‚ฐ์€ ๋น„ํŠธ๋ผ๋ฆฌ AND, OR, XOR, NOT ์—ฐ์‚ฐ์„ ํ•˜๋Š” ๋น„ํŠธ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ๊ณผ ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์ด๋‚˜ ์™ผ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ค๋Š” ๋น„ํŠธ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ด ์žˆ์Œ

 

โš™ ๋น„ํŠธ ๊ฐœ๋…

์ปดํ“จํ„ฐ์˜ ๋ชจ๋“  ์ •๋ณด๋Š” 0๊ณผ 1 ๊ฐ’๋งŒ ๊ฐ€์ง€๋Š” 2์ง„์ˆ˜๋กœ ๋‹ค๋ฃจ์–ด์ง€๊ณ  ์ €์žฅํ•จ

2์ง„์ˆ˜์˜ ํ•œ ์ž๋ฆฌ๋ฅผ ๋น„ํŠธ(bit)๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, 8๊ฐœ์˜ ๋น„ํŠธ๋ฅผ ๋ฐ”์ดํŠธ(byte)๋ผ๊ณ  ํ•จ

 

โš™ ๋น„ํŠธ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ

๋น„ํŠธ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์€ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ ๋น„ํŠธ๋“ค๋ผ๋ฆฌ ์ด๋ฃจ์–ด์ง€๋Š” AND, OR, XOR, NOT์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ

b 1 0 0 1
c 1 0 1 1
b&c 1 0 0 1
b|c 1 0 1 1
b^c 0 0 1 0

 

์—ฐ์‚ฐ์ž ๋ณ„์นญ ๋‚ด์šฉ
a & b AND ์—ฐ์‚ฐ ๋‘ ๋น„ํŠธ ๋ชจ๋‘ 1์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด 0
a | b OR ์—ฐ์‚ฐ ๋‘ ๋น„ํŠธ ๋ชจ๋‘ 0์ด๋ฉด 0, ์•„๋‹ˆ๋ฉด 1
a ^ b XOR ์—ฐ์‚ฐ ๋‘ ๋น„ํŠธ๊ฐ€ ๋‹ค๋ฅด๋ฉด 1, ๊ฐ™์œผ๋ฉด 0
~ a NOT ์—ฐ์‚ฐ 1์„ 0์œผ๋กœ, 0์„ 1๋กœ ๋ณ€ํ™˜

 

โš™ ๋น„ํŠธ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ

์ƒˆ๋กœ์šด ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์ด๋‚˜ ์™ผ์ชฝ ๋์— ์‚ฝ์ž…ํ•˜๋ฉด์„œ ๋น„ํŠธ์˜ ์ž๋ฆฌ๋ฅผ ์ด๋™์‹œํ‚ค๋Š” ์—ฐ์‚ฐ

์ €์žฅ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์œผ๋ฏ€๋กœ ์‹œํ”„ํŠธ๋˜๋Š” ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ๋์— ์žˆ๋Š” ๋น„ํŠธ๋Š” ์‚ฌ๋ผ์ง

 

d 0 1 1 0
~d 1 0 0 1
~d(1์˜๋ณด์ˆ˜) 0 1 1 0
        1
~d(1์„ ๋”ํ•œ ํ›„ - ์ฒ˜๋ฆฌ) 0 1 1 1

 

2์ง„์ˆ˜๋Š” ๋งจ ์•ž์ž๋ฆฌ์ˆ˜๊ฐ€ ๋ถ€ํ˜ธ๋กœ ๋งจ ์•ž์ž๋ฆฌ์ˆ˜๊ฐ€ 1์ด๋ฉด ์Œ์ˆ˜๊ฐ€ ๋จ

 

์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž ๋‚ด์šฉ
a >> b a์˜ ๊ฐ ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ b๋ฒˆ ์‹œํ”„ํŠธ ํ•œ๋‹ค. ์ตœ์ƒ์œ„ ๋น„ํŠธ์˜ ๋นˆ์ž๋ฆฌ๋Š” ์‹œํ”„ํŠธ ์ „์˜ ์ตœ์ƒ์œ„ ๋น„ํŠธ๋กœ ๋‹ค์‹œ ์ฑ„์šด๋‹ค. ์‚ฐ์ˆ ์  ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ๋ผ๊ณ  ํ•œ๋‹ค. 
a >>> b a์˜ ๊ฐ ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ b๋ฒˆ ์‹œํ”„ํŠธํ•œ๋‹ค. ์ตœ์ƒ์œ„ ๋น„ํŠธ์˜ ๋นˆ์ž๋ฆฌ๋Š” ํ•ญ์ƒ 0์œผ๋กœ ์ฑ„์šด๋‹ค. ๋…ธ๋ฆฌ์  ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ๋ผ๊ณ  ํ•œ๋‹ค. 
a << b a์˜ ๊ฐ ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ์œผ๋กœ b๋ฒˆ ์‹œํ”„ํŠธํ•œ๋‹ค. ์ตœํ•˜์œ„ ๋น„ํŠธ์˜ ๋นˆ์ž๋ฆฌ๋Š” ํ•ญ์ƒ 0์œผ๋กœ ์ฑ„์šด๋‹ค. ์‚ฐ์ˆ ์  ์™ผ์ชฝ ์‹œํ”„ํŠธ๋ผ๊ณ  ํ•œ๋‹ค.

์ตœ์ƒ์œ„ ๋น„ํŠธ : ์ตœ๊ณ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋น„ํŠธ ์œ„์น˜

 

์‹œํ”„ํŠธ ์—ฐ์‚ฐ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋Š” byte, short, int, long, char ํƒ€์ž…๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ , float, double, boolean์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

 

 

๐Ÿ“– ์น˜ํ™˜

int a = 20;

int b = 10;

a = 10; (b๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๊ฐ’)

b = 20; (a๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๊ฐ’)

 

 

๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•จ

๋ฉ”๋ชจ๋ฆฌ๋Š” ์ด์ „์— ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋˜ ๊ณต๊ฐ„์ผ ์ˆ˜ ์žˆ์Œ.

๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์ด์ „์— ์ผ๋˜ ๊ฐ’์ด ๋‚จ์•„์žˆ์„ ์ˆ˜ ์žˆ์Œ. 

๋”ฐ๋ผ์„œ ์„ ์–ธ๋งŒ ํ•˜๋ฉด ์ด์ „์— ์žˆ๋˜ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ

null๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด ์ด์ „์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง€์šฐ๊ณ  ๋นˆ ๊ฐ’์„ ๋„ฃ์–ด์คŒ.