# [Java] ๋‚ด๋ถ€ ํด๋ž˜์Šค์— static์ด ๊ถŒ์žฅ๋˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด
Study Repository

[Java] ๋‚ด๋ถ€ ํด๋ž˜์Šค์— static์ด ๊ถŒ์žฅ๋˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด

by rlaehddnd0422

static ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ static ๋ฉค๋ฒ„์™€ ๋‹ค๋ฅธ ์ 

Java์—์„œ "static ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค"๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ์— ๋‹จ ํ•œ ๋ฒˆ ํ• ๋‹น๋˜์–ด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ๊นŒ์ง€ ์œ ์ง€๋˜๋ฉฐ ์ข…๋ฃŒ๋˜๋Š” ์ˆœ๊ฐ„ ํ•ด์ œ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ 'static' ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ธ ๋ฉค๋ฒ„๋Š” JVM์˜ static ์˜์—ญ์— ์ƒ์„ฑ๋˜๋ฉฐ, new ์—ฐ์‚ฐ์ž๋กœ ๋งŒ๋“  ์ธ์Šคํ„ด์Šค๋Š” Heap ์˜์—ญ์— ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.

 

์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์‹œ ํ• ๋‹น๋œ Heap์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋ฅผ ํ†ตํ•ด ์ˆ˜์‹œ๋กœ ์ •๋ฆฌ(*์“ฐ์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ•ด์ œํ•˜๋Š” ์ž‘์—…์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฒญ์†Œ)๋˜๋ฉฐ, GC์˜ ๊ด€๋ฆฌ ์˜์—ญ ๋ฐ–์— ์กด์žฌํ•˜๋Š” static์€ ๋‚จ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์˜ ์ข…๋ฃŒ๊นŒ์ง€ ์œ ์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ, ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํผํฌ๋จผ์Šค์— ์•…์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ static 'class'๋Š” ์กฐ๊ธˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

 

static class๋˜ํ•œ static ์˜์—ญ์— ํ• ๋‹น๋˜๋Š” ๊ฒƒ์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค๋งŒ, ๋‹ค๋ฅธ static ๋ฉค๋ฒ„์™€ ๋‹ฌ๋ฆฌ static ํด๋ž˜์Šค๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ ๋ฒˆ๋งŒ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค (static ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™์—ˆ๋Š”๋ฐ๋„) ์ƒˆ๋กญ๊ฒŒ static ์˜์—ญ์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. 

public class StaticTest2 {
    static class InnerStatic{}

    public static void main(String[] args) {
        InnerStatic a = new StaticTest2.InnerStatic();
        InnerStatic b = new StaticTest2.InnerStatic();
        
        System.out.println(a);
        System.out.println(b);

        System.out.println(a==b); // false
    }
}
์‹คํ–‰ ๊ฒฐ๊ณผ
aboutInnerClass.staticInner.StaticTest2$InnerStatic@5a39699c
aboutInnerClass.staticInner.StaticTest2$InnerStatic@3cb5cdba
false

 

๊ทธ๋ ‡๋‹ค๋ฉด ์™ธ๋ถ€ ์ธ์Šคํ„ด์Šค๋ฅผ ๋จผ์ € ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™” ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•œ inner instance class์™€ ๋‹ฌ๋ฆฌ, ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ”๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”  static class์˜ ๋ฌด๋ถ„๋ณ„ํ•œ ์‚ฌ์šฉ์ด ํผํฌ๋จผ์Šค์— ์•…์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜ ์žˆ์ง€ ์•Š๋Š”๊ฐ€?

 

์˜คํžˆ๋ ค static class์˜ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.


static class ์‚ฌ์šฉ์ด ๊ถŒ์žฅ๋˜๋Š” ์ด์œ  

  1. static ์œผ๋กœ ์„ ์–ธ๋˜์ง€ ์•Š์€ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” ์™ธ๋ถ€ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ˆจ์€ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์œ„ํ•œ ์‹œ๊ฐ„/๊ณต๊ฐ„์  ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•ด ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐœ์ƒ 

IDE๊นŒ์ง€ static class๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๋Š” ์ƒํ™ฉ

 

static class๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‚ด๋ถ€ ์ธ์Šคํ„ด์Šค ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, '์ˆจ์€ ์™ธ๋ถ€ ์ฐธ์กฐ'๋ผ๋Š” ๊ฒƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

inner instance class๋ฅผ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

public static void main(String[] args) {
    Bag b = new Bag("bagPack", 500000L); // ์™ธ๋ถ€ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ -> ์™ธ๋ถ€ ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ -> ๋‚ด๋ถ€ ํด๋ž˜์Šค์˜ ์ฝ”๋“œ๋„ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ 
    Bag.Pouch p = b.new Pouch("pouch1", "white"); // ๋‚ด๋ถ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๊ฐ€๋Šฅ
    
    // ์œ„ ๋‘์ค„์„ ํ•œ ์ค„๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๊ฐ€๋…์„ฑ์€ ์ข‹์ง€ ์•Š์Œ)
    Bag.Pouch p2 = new Bag("backPack2", 300000L).new Pouch("pouch2", "red");
    
}

์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•œ ์ดํ›„ ๋‚ด๋ถ€ ํด๋ž˜์Šค ํด๋ž˜์Šค๋ฅผ ์ดˆ๊ธฐํ™” ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์—์„œ inner ํด๋ž˜์Šค๋Š” ์ž์‹ ์„ ๋งŒ๋“ค์–ด์ค€ ์ธ์Šคํ„ด์Šค(=outer ํด๋ž˜์Šค)์— ๋Œ€ํ•œ '์™ธ๋ถ€ ์ฐธ์กฐ'๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์™ธ๋ถ€ ์ฐธ์กฐ์˜ ๋ฌธ์ œ

๊ทธ๋ž˜์„œ ๋‚ด๋ถ€ ํด๋ž˜์Šค๊ฐ€ ์™ธ๋ถ€ ํด๋ž˜์Šค๋ฅผ ์ฐธ์กฐํ•˜๋ฉด์„œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€?

 

  1. Inner class๊ฐ€ Outer class๋ฅผ ์™ธ๋ถ€ ์ฐธ์กฐ
  2. -> Outer ํด๋ž˜์Šค๊ฐ€ ํ•„์š”์—†์–ด์กŒ์„ ๋•Œ, GC๊ฐ€ ์ •๋ฆฌ ๋Œ€์ƒ์œผ๋กœ ์‚ผ์•„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐํ•ด์•ผ ํ•จ
  3. -> ํ•˜์ง€๋งŒ ์™ธ๋ถ€ ์ฐธ์กฐ๋กœ ๋‚ด๋ถ€ ํด๋ž˜์Šค์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— GC์˜ ๋Œ€์ƒ์ด ๋˜์ง€ ๋ชปํ•จ
  4. -> ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ์•„ ์žˆ์–ด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒ

 

์‹คํ—˜์„ ํ†ตํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

 

โ˜• ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” static ์œผ๋กœ ์„ ์–ธ ์•ˆํ•˜๋ฉด ํฐ์ผ ๋‚œ๋‹ค

Inner ํด๋ž˜์Šค์˜ ๋ฌธ์ œ์  ์ธํ…”๋ฆฌ์ œ์ด์™€ ๊ฐ™์€ IDE์—์„œ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๊ฐ€ ๋œฐ ๊ฒƒ์ด๋‹ค. (๋‚ด๋ถ€ ํด๋ž˜์Šค๊ฐ€ ์™ธ๋ถ€์˜ ๋ฉค๋ฒ„๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ) ๋ฉ”์„ธ์ง€

inpa.tistory.com

์œ„ ์ž๋ฃŒ์—์„œ ์™ธ๋ถ€ ์ฐธ์กฐ์˜ ๋ฌธ์ œ๋ฅผ ์ž˜ ์‹คํ—˜ํ•œ ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. 

public class Outer {
	// ์™ธ๋ถ€ ํด๋ž˜์Šค ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ๋ถˆ๋ฆฌ๊ธฐ ์œ„ํ•œ ๋ฐฐ์—ด ๋ณ€์ˆ˜
    private int[] data;
    
    
    // ๋‚ด๋ถ€ instacne class
    class Inner {}

	// ์™ธ๋ถ€ ํด๋ž˜์Šค ์ƒ์„ฑ์ž
    public Outer(int size) {
        data = new int[size];
    }
	
    // ๋‚ด๋ถ€ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜์—ฌ ๋ฆฌํ„ดํ•˜๋Š” ๋ฉ”์†Œ๋“œ
    Inner getInnerObject() {
        return new Inner();
    }
}
public class Main {
    public static void main(String[] args) {

        ArrayList<Object> l = new ArrayList<>();

        for (int i = 0; i < 50; i++) {
            l.add(new Outer(100000000).getInnerObject());
            System.out.println(i);
        }
    }
}

 

์‹คํ—˜ ๊ณผ์ •

  1. Inner ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ๋‹ด์„ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ 
  2. ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์™ธ๋ถ€ ํด๋ž˜์Šค๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜๋Š” ๊ณผ์ • ์ค‘ size๊ฐ€ 100,000,000(400MB)์ธ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜์—ฌ Heap์˜์—ญ์— ํ• ๋‹น.
  3. ํ• ๋‹น์ด ๋๋‚˜๋ฉด ๋‚ด๋ถ€ ํด๋ž˜์Šค ๋ฆฌํ„ด.

์œ„ 2, 3๋ฒˆ ๊ณผ์ •์ด 50๋ฒˆ ๋ฐ˜๋ณต๋˜๋Š” ๋™์•ˆ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ 400MB์˜ Outer ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” GC์˜ ๋Œ€์ƒ์ด ๋˜์–ด ํž™ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œ๋˜์–ด์•ผ ํ•˜๊ฒ ์ง€๋งŒ, ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์‹คํ–‰ ๋„์ค‘ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์˜ˆ์™ธ๊ฐ€ ํ„ฐ์ง€๋Š” ๊ฒƒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐœ์ƒ

 

๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์šฉ์œผ๋กœ ์‚ฌ์šฉ๋œ Outer ํด๋ž˜์Šค๋ฅผ Inner ํด๋ž˜์Šค์—์„œ ์™ธ๋ถ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— GC ์ˆ˜๊ฑฐ ๋Œ€์ƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜์ง€ ์•Š์•„, ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด static ํด๋ž˜์Šค๋Š” ์–ด๋–จ๊นŒ์š”

public class Outer {
    private int[] data;
    static class Inner {}

    public Outer(int size) {
        data = new int[size];
    }

    Inner getInnerObject() {
        return new Inner();
    }
}
public class Main {
    public static void main(String[] args) {

        ArrayList<Object> l = new ArrayList<>();

        for (int i = 0; i < 50; i++) {
            l.add(new Outer(100000000).getInnerObject());
            System.out.println(i);
        }
    }
}

static ์‹คํ—˜ ๊ฒฐ๊ณผ

static ํด๋ž˜์Šค๋กœ ์‹คํ—˜ํ•ด๋ณด๋ฉด for๋ฌธ์ด ๋ชจ๋‘ ์ˆœํšŒํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ผ๊นŒ?


static ํด๋ž˜์Šค๋Š” ์™ธ๋ถ€ ์ฐธ์กฐ๋ฅผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

static์˜ ๊ฒฝ์šฐ ์ •๊ทœํ™”๋œ this ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ์ „ ํฌ์ŠคํŒ…์—์„œ ๋งํ•œ ์™ธ๋ถ€/๋‚ด๋ถ€ ํด๋ž˜์Šค์—์„œ๋Š” ์ •๊ทœํ™”๋œ this๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ”๊นฅ ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

static class๋Š” ์™ธ๋ถ€ ์ฐธ์กฐ๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ •๊ทœํ™”๋œ this ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋นจ๊ฐ„์ค„๋กœ ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, ์‹คํ—˜์—์„œ ์ผํšŒ์šฉ์œผ๋กœ ์‚ฌ์šฉ๋œ Outer ํด๋ž˜์Šค ๊ฐ์ฒด๋Š” static Inner class์˜ ๊ฐ์ฒด์™€ ์•„๋ฌด๋Ÿฐ ๊ด€๊ณ„๊ฐ€ ์•„๋‹ˆ๊ฒŒ ๋˜๋ฏ€๋กœ, ์ •์ƒ์ ์œผ๋กœ GC ์ˆ˜๊ฑฐ ๋Œ€์ƒ์ด ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ์ž˜ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์ •๋ฆฌ

  1. inner ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ• ๋•Œ static ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ์ฃผ์ง€ ์•Š์œผ๋ฉด '์™ธ๋ถ€ ์ฐธ์กฐ' ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  2. inner ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„ ์ ์œผ๋กœ ๋งŒ๋“ค์—ˆ๋˜ Outer ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ GC ์ˆ˜๊ฑฐ๊ฐ€ ๋˜์ง€ ์•Š์Œ. ( Inner Class ๊ฐ€ Outer ํด๋ž˜์Šค๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— GC์˜ ๋Œ€์ƒ์œผ๋กœ ์‚ผ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—)

 

๋”ฐ๋ผ์„œ ๋‚ด๋ถ€ ํด๋ž˜์Šค๊ฐ€ ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธ ํ•  ๋•Œ๋Š” static ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


<์ฐธ๊ณ  ์ž๋ฃŒ>

 

 

[JAVA ] Static์ด๋ž€? ์ •์  ๋ณ€์ˆ˜ ์ •์  ๋ฉ”์†Œ๋“œ์— ๊ด€ํ•˜์—ฌ

1. Static Java์—์„œ Static ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ๋ฒˆ ํ• ๋‹น๋˜์–ด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ํ•ด์ œ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋ฅผ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”. [Static

yang-droid.tistory.com

 

 

โ˜• ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” static ์œผ๋กœ ์„ ์–ธ ์•ˆํ•˜๋ฉด ํฐ์ผ ๋‚œ๋‹ค

Inner ํด๋ž˜์Šค์˜ ๋ฌธ์ œ์  ์ธํ…”๋ฆฌ์ œ์ด์™€ ๊ฐ™์€ IDE์—์„œ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๊ฐ€ ๋œฐ ๊ฒƒ์ด๋‹ค. (๋‚ด๋ถ€ ํด๋ž˜์Šค๊ฐ€ ์™ธ๋ถ€์˜ ๋ฉค๋ฒ„๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ) ๋ฉ”์„ธ์ง€

inpa.tistory.com

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

Study Repository

rlaehddnd0422

ํ™œ๋™ํ•˜๊ธฐ