[Become a Java-Masta๐Ÿ‘จโ€๐Ÿซ 3์ฃผ์ฐจ] ์—ฐ์‚ฐ์ž, ์ œ์–ด๋ฌธ

๋ฐฐ๋ญ‰ยท2021๋…„ 9์›” 4์ผ
0
post-thumbnail

๐ŸŽฏ ๋ชฉํ‘œ

์ž๋ฐ”๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์ž์™€ ์ œ์–ด๋ฌธ์„ ์ตํžˆ๊ธฐ.

๐Ÿ“Œ ํ•™์Šตํ•  ๊ฒƒ


๐Ÿ’ก ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋Š” +, -, *, / ์ด๋ ‡๊ฒŒ ์‚ฌ์น™์—ฐ์‚ฐ์™€ ๋ชจ๋“ˆ๋ผ ์—ฐ์‚ฐ %๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

int A = 10;
int B = 3;

System.out.println(A + B); // 13
System.out.println(A - B); // 7
System.out.println(A * B); // 30
System.out.println(A / B); // 3
System.out.println(A % B); // 1

๐Ÿ’ก ๋น„ํŠธ ์—ฐ์‚ฐ์ž

๋น„ํŠธ ์—ฐ์‚ฐ์ž๋Š” '๋น„ํŠธ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž'์™€ '๋น„ํŠธ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž'๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋น„ํŠธ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋น„ํŠธ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋น„ํŠธ๋‹จ์œ„๋กœ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ํ•œ๋‹ค.

ํ”ผ์—ฐ์‚ฐ์ž๋กœ ์‹ค์ˆ˜๋Š” ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , ์ •์ˆ˜(๋ฌธ์ž ํฌํ•จ)๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.

๋น„ํŠธ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž

ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ ๋น„ํŠธ ์ž๋ฆฌ๋ฅผ '์˜ค๋ฅธ์ชฝ(>>)' ๋˜๋Š” '์™ผ์ชฝ(<<)'์œผ๋กœ ์ด๋™(shift) ํ•œ๋‹ค๊ณ  ํ•ด์„œ '๋น„ํŠธ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž'๋ผ๊ณ  ํ•œ๋‹ค.


๐Ÿ’ก ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž

๊ด€๊ณ„ ์—ฐ์‚ฐ์ž๋Š” ์กฐ๊ฑด์‹์— ์ž์ฃผ ์“ฐ์ด๋Š” ์—ฐ์‚ฐ์ž๋กœ

๋‘ ๋น„๊ต ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋‚˜ ๊ฐ์ฒด์˜ ๊ด€๊ณ„๋ฅผ ๋น„๊ตํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.

๊ด€๊ณ„ ์—ฐ์‚ฐ์ž๋Š” <, >, <=, >=, ==, != ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  boolean type์„ ๋ฆฌํ„ดํ•œ๋‹ค.

a < b // a๊ฐ€ b๋ณด๋‹ค ์ž‘์€๊ฐ€?
a > b // a๊ฐ€ b๋ณด๋‹ค ํฐ๊ฐ€?
a <= b // a๊ฐ€ b๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€๊ฐ€?
a >= b // a๊ฐ€ b๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€๊ฐ€?
a == b // a์™€ b๊ฐ€ ๊ฐ™์€๊ฐ€?
a != b // a์™€ b๊ฐ€ ๋‹ค๋ฅธ๊ฐ€?

==, != ๋Š” ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•  ๋• ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ‰์œผ๋กœ ๋ณด์ด๋Š” ๊ฐ’์€ ๊ฐ™๋”๋ผ๋„ ์ฐธ์กฐํ•˜๋Š” ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋‹ค๋ฅด๋ฉด ์˜๋„ํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜๋„ ์žˆ๋‹ค.


๐Ÿ’ก ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” ๋…ผ๋ฆฌ์˜ ๊ฒฐํ•ฉ์ด๋‚˜, ๋…ผ๋ฆฌ๋ฅผ ๋’ค์ง‘์„๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž๋กœ boolean type์„ ๋ฆฌํ„ดํ•œ๋‹ค.

A && B // A์™€ B ๋ชจ๋‘ true์ด๋ฉด ์—ฐ์‚ฐ๊ฒฐ๊ณผ๋Š” true (and)
A || B // A์™€ B ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ true์ด๋ฉด ์—ฐ์‚ฐ๊ฒฐ๊ณผ๋Š” true (or)
!A // ์—ฐ์‚ฐ๊ฒฐ๊ณผ๋Š” A๊ฐ€ true์ด๋ฉด false, A๊ฐ€ false์ด๋ฉด true (not)

์—ฌ๊ธฐ์„œ and ์—ฐ์‚ฐ์€ ์ฒซ๋ฒˆ์งธ ๋…ผ๋ฆฌ๊ฐ€ false๋ฉด, ๋’ค์˜ ๋…ผ๋ฆฌ๋ฅผ ์ฒดํฌํ•˜์ง€ ์•Š๊ณ  false๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  or ์—ฐ์‚ฐ์€ ์ฒซ๋ฒˆ์งธ ๋…ผ๋ฆฌ๊ฐ€ true๋ฉด, ๋’ค์˜ ๋…ผ๋ฆฌ๋ฅผ ์ฒดํฌํ•˜์ง€ ์•Š๊ณ  true๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ญ๋น„๋„ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ , ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋…ผ๋ฆฌ์˜ ์ˆœ์„œ๊ฐ€ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•˜๋‹ค.


๐Ÿ’ก instanceof

์ฐธ์กฐ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ์ธ์Šคํ„ด์Šค์˜ ์‹ค์ œ ํƒ€์ž…์„ ์•Œ์•„๋ณผ ๋•Œ instanceof ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด ์—ฐ์‚ฐ์ž๋Š” boolean type์„ ๋ฆฌํ„ดํ•œ๋‹ค.

"๊ฐ์ฒด instanceof ํด๋ž˜์Šค" ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ฃผ๋กœ ์ƒ์†๊ด€๊ณ„๋ฅผ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

class A { }

class B extends A { }

public class main {
    public static void main(String[] args){
        A a = new A();
        A ab = new B();
        B b = new B();
        
        System.out.println(a instanceof A);   //true
        System.out.println(ab instanceof A);  //true
        System.out.println(b instanceof A);   //true
        
        System.out.println(a instanceof B);   //false
        System.out.println(ab instanceof B);  //true
        System.out.println(b instanceof B);   //true
    }
}

์ž์‹ ๊ฐ์ฒด๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ instance์ง€๋งŒ, ๋ถ€๋ชจ ๊ฐ์ฒด๋Š” ์ž์‹ ํด๋ž˜์Šค์˜ instance๊ฐ€ ์•„๋‹ˆ๋‹ค.


๐Ÿ’ก Assignment Operator

์šฐ๋ณ€์˜ ๊ฐ’์„ ์ขŒ๋ณ€์˜ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.

A = B

๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์ž์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋กœ ํ™œ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

A += B
A -= B
A *= B
A /= B
A %= B
A &= B
A |= B
A ^= B
A >>= B
A <<<= B

๐Ÿ’ก ํ™”์‚ดํ‘œ ์—ฐ์‚ฐ์ž

(๋งค๊ฐœ๋ณ€์ˆ˜) -> {์‹คํ–‰์ฝ”๋“œ}์™€ ๊ฐ™์€ ๋žŒ๋‹ค์‹์—์„œ ํ™”์‚ดํ‘œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ๋žŒ๋‹ค์‹์ด๋ž€ "์‹๋ณ„์ž์—†์ด ์‹คํ–‰๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜"๋กœ, ํ•จ์ˆ˜๋ฅผ ๋”ฐ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œํ•œ์ค„์— ํ•จ์ˆ˜๋ฅผ ์จ์„œ ๊ทธ๊ฒƒ์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๋ณดํ†ต ํŠน์ • ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

Arrays.sort(list, (l1, l2) -> l1[0]) - l2[0]));

์œ„ ์ฝ”๋“œ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ๋•Œ, ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๋ผ๋Š” ๋žŒ๋‹ค์‹์ด๋‹ค.

๋‚ด๋ถ€์ ์œผ๋กœ๋Š” Comparator ์ธํ„ฐํŽ˜์ด์Šค์˜ compare(T o1, T o2)๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•œ ๊ฒƒ์ด๋‹ค.


๐Ÿ’ก 3ํ•ญ ์—ฐ์‚ฐ์ž

// ๋ณ€์ˆ˜ = ์กฐ๊ฑด๋ฌธ ? ์ฐธ : ๊ฑฐ์ง“;
min = A < B ? A : B;

// return ์กฐ๊ฑด๋ฌธ? ์ฐธ : ๊ฑฐ์ง“;
return A < B ? A : B;

๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ๋งŒ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ฐ’์„ ๋„˜๊ฒจ์ฃผ๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•˜๋Š” ๋“ฑ ๊ฐ’์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค„ ์ˆ˜ ์žˆ์œผ๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.


๐Ÿ’ก ์—ฐ์‚ฐ์ž ์šฐ์„  ์ˆœ์œ„

๋งŒ์•ฝ ๋™์ผํ•œ ์šฐ์„ ์ˆœ์œ„์ธ ๊ฒฝ์šฐ๋Š” ํ•ด๋‹น ์—ฐ์‚ฐ์ž์˜ ์—ฐ์‚ฐ๋ฐฉํ–ฅ์—์„œ ๋จผ์ € ๋“ฑ์žฅํ•˜๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์šฐ์„ ์ ์œผ๋กœ ์—ฐ์‚ฐ๋œ๋‹ค.


๐Ÿ’ก ์„ ํƒ๋ฌธ

  • if - else if - else
if(์กฐ๊ฑด์‹){ }
else if( ์œ„ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ์กฐ๊ฑด){ }
else if( ์œ„ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ์กฐ๊ฑด){ }
else { // ๋ชจ๋“  ์กฐ๊ฑด๋“ค์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ }

if๋งŒ ๋‹จ๋…์œผ๋กœ ์˜ฌ ์ˆ˜ ์žˆ๊ณ , else if์™€ else๋Š” if๋ฌธ์ด ์„ ํ–‰๋˜์–ด์•ผ์ง€ ๋’ค ๋”ฐ๋ผ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

else if๋Š” if{} - else{ if{} } ์˜ ์•ฝ์‹ ๊ฐœ๋…์ด๋‹ค.

  • switch - case - default
switch(๋ณ€์ˆ˜) {
    case A : // ๋ณ€์ˆ˜์˜ ๊ฐ’์ด A์ผ ๋•Œ
        // ์ง„์ž…
        break;
    case B : // ๋ณ€์ˆ˜์˜ ๊ฐ’์ด B์ผ ๋•Œ
        // ์ง„์ž…
        break;
    default :
        // A์™€ B๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ
}

switch์˜ ๋ณ€์ˆ˜๋Š” Primitive ํƒ€์ž…, Enum, String, Wrapper ํด๋ž˜์Šค๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ case A์— ์ง„์ž…ํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  break๊ฐ€ ๋˜์ง€ ์•Š์œผ๋ฉด ์•„๋ž˜ case B์—๋„ ์ž๋™์œผ๋กœ ์ง„์ž…ํ•˜๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค๊ณ„๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

A์— ์ง„์ž…ํ–ˆ์„ ๋•Œ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด break๋ฅผ ํ•ด์ค˜์„œ switch๋ฌธ์„ ๋น ์ ธ๋‚˜์™€์•ผ ํ•œ๋‹ค.


๐Ÿ’ก ๋ฐ˜๋ณต๋ฌธ

  • while
 while(์กฐ๊ฑด์‹){
    // ์กฐ๊ฑด์‹์ด ์ฒ˜์Œ ๋ถ€ํ„ฐ ์„ฑ๋ฆฝ๋˜์ง€ ์•Š์œผ๋ฉด ์• ์ดˆ์— ๋ฐ˜๋ณต๋ฌธ์— ์ง„์ž…์„ ์•ˆํ•  ์ˆ˜๋„ ์žˆ์Œ
    // ๋ฐ˜๋ณต๋‚ด์šฉ
 }
 do{
    // ๋ฌด์กฐ๊ฑด ์ตœ์†Œ 1๋ฒˆ์€ ๋ฐ˜๋ณต๋ฌธ ์‹คํ–‰
    // ๋ฐ˜๋ณต๋‚ด์šฉ
 } while(์กฐ๊ฑด์‹); // ์„ธ๋ฏธ์ฝœ๋ก  ';' ํ•„์ˆ˜
  • for & for-each
for(์ดˆ๊ธฐํ™”; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹){
    // ๋ฐ˜๋ณต๋‚ด์šฉ
}
for(๋ฐ์ดํ„ฐํƒ€์ž… ์ง‘ํ•ฉ์›์†Œ : ๋ฐ˜๋ณต์ง‘ํ•ฉ๊ฐ์ฒด){
    //๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ง‘ํ•ฉ๋“ค์˜ ์›์†Œ๋“ค์„ ๊บผ๋‚ด์–ด ์ฒ˜๋ฆฌ
}

๋ฐ˜๋ณต์ง‘ํ•ฉ๊ฐ์ฒด์—๋Š” array, iterable ํƒ€์ž…์ด ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ enum์˜ ๊ฒฝ์šฐ enum.values()๋ฅผ ๋ฐ˜๋ณต์ง‘ํ•ฉ๊ฐ์ฒด๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

for-each๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์ 
1. ์ž๋ฃŒ๊ตฌ์กฐ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ถ”์ƒํ™”
2. ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ง‘ํ•ฉ์˜ ์›์†Œ)๊ฐ’์˜ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅ(์กฐํšŒ ๋ชฉ์ )

profile
SSAFY 6th -> SEC VD SW ๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€