1. 출력 값을 작성하시오.

class Connection {
    private static Connection _inst = null;
    private static int count = 0;
    private static final Object lock = new Object();
   
    private Connection() {}
   
    static public Connection getInstance() {
        synchronized (lock) {
            if(_inst == null) {
                _inst = new Connection();
            }
            return _inst;
        }
    }
   
    static public synchronized void incrementCount() {
        count++;
    }
   
    static public synchronized void decrementCount() {
        count--;
    }
   
    static public synchronized int getCount() {
        return count;
    }
}

public class ConnectionTest {  
    public static void main(String[] args) {
        Connection conn1 = Connection.getInstance();
        Connection.incrementCount();
        Connection conn2 = Connection.getInstance();
        Connection.incrementCount();
        Connection conn3 = Connection.getInstance();
        Connection.incrementCount();
        Connection.decrementCount();
        Connection.incrementCount();
        Connection.incrementCount();
        Connection.incrementCount();
        System.out.println("Count of conn1: " + Connection.getCount());
        System.out.println("Count of conn2: " + Connection.getCount());
        System.out.println("Count of conn3: " + Connection.getCount());
    }
}
정답

Count of conn1: 5
Count of conn2: 5
Count of conn3: 5

 

2. 출력 값을 작성하시오.

public class Main {
    public static void main(String args[]) {
        int i = 2;
        int k = 5;  
        switch(i) {
            case 1: k += 2;
            case 2: k--;
            case 3: k *= 2;
            case 4: k /= 2;
            case 5: k -= 3;
            default: k++;  
        }
        System.out.print(k);  
    }
}
정답

2

 

3. 출력 값을 작성하시오.

public class Main {
    static class A {
    int n;
    int g;
    }
    public static void main(String[] args) {
    A[] a = new A[2];
    for (int i = 0; i < 2; i++) {
    a[i] = new A();
    a[i].n = i;
    a[i].g = i + 1;
    }
    System.out.println(a[0].n + a[1].g);
    }
}
정답

2

 

4. 출력 값을 작성하시오.

public class Main {
    static class A {
        int n;
        int g;
    }
   
    public static void main(String[] args) {
        A[] a = new A[8];
       
        for (int i = 0; i < 8; i++) {
            a[i] = new A();
            a[i].n = i;
            a[i].g = i + 1;
        }
       
        System.out.println(a[6].n + a[7].g);
    }
}
정답

14

 

5. 출력 값을 작성하시오.

public class Main
{
    static void func1(A m)
    {
    m.a *= 10;
}
 
    static void func2(A m)
    {
        m.a += m.b;
    }
 
    public static void main(String args[])
    {
        A m = new A();
        m.a = 200;
        func1(m);
        m.b = m.a;
        func2(m);

        System.out.printf("%d", m.a);
        System.out.printf("%d", m.b);
    }
}
정답

20004000

 

6. 출력 값을 작성하시오.

class Connection {
    private static Connection _inst = null;
    private int count = 0;

    static public Connection get() {
        if (_inst == null) {
            _inst = new Connection();
        }
        return _inst;
    }

    public void count() {
        count++;
    }

    public int getCount() {
        return count;
    }
}

public class Main {
    public static void main(String[] args) {
        Connection conn1 = Connection.get();
        conn1.count();
        System.out.println(conn1.getCount());
       
        Connection conn2 = Connection.get();
        conn2.count();
        System.out.println(conn1.getCount());

        Connection conn3 = Connection.get();
        System.out.println(conn2.getCount());
        conn3.count();
        conn3.count();

        System.out.print(conn1.getCount() + conn2.getCount() + conn3.getCount());
    }
}
정답

1

2

2

12

 

7. 출력 값을 작성하시오.

public class Main {
    public static void main(String[] args) {
        int a = 2, b = 4, c = 6, d = 8;
        if ((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {
            a = b + c;
            if (7 == b ^ c != a) {
                System.out.println(a);
            } else {
                System.out.println(b);
            }
        } else {
            a = c + d;
            if (7 == c ^ d != a) {
                System.out.println(a);
            } else {
                System.out.println(d);
            }
        }
    }
}
정답

10

 

8. 출력 값을 작성하시오.

public class Main {
    public static void main(String[] args) {
        int i, j;
        for (j = 0, i = 0; i <= 7; i++) {
            j += i;
            System.out.print(i);
            if (i == 7) {
                System.out.print("=");
                System.out.println(j + i);
                System.out.print(j);
            } else {
                System.out.print("+");
            }
        }
    }
}
정답

0+1+2+3+4+5+6+7=35

28

 

9. 출력 값을 작성하시오.

public class Main {
    public static void main(String[] args) {
        ovr1 a1 = new ovr1();
        ovr2 a2 = new ovr2();
        System.out.println(a1.sun(4,5) + a2.sun(3,2));
    }
}

class ovr1 {
    int sun(int x, int y) {
        return x - y;
    }
}

class ovr2 extends ovr1 {
    int sun(int x, int y) {
        return x + y + super.sun(x, y);
    }
}
정답

5

 

10. 출력 값을 작성하시오.

public class Main{
    public static void main(String[] args){
        int[][]arr = new int[][]{{45,510,35},{89,115}};
        System.out.println(arr[0].length);
        System.out.println(arr[1].length);
        System.out.println(arr[0][0]);
        System.out.println(arr[0][1]);
        System.out.println(arr[1][0]);
        System.out.println(arr[1][1]);
    }
}
정답

3
2
45
510
89
115