728x90
🍉 2021년 1회 7번
출력 결과
public class Test {
public static void main(String[] args) {
int[][] arr = new int[][] {{45, 50, 75}, {89}};
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]);
}
}
더보기
답 :
3
1
45
50
89
🍉 2021년 1회 17번
출력 결과
public class Test {
public static void main(String[] args) {
int i, j;
for(j = 0, i =0;i <= 5;i++) {
j += i;
System.out.print(i);
if(i == 5) {
System.out.print("=");
System.out.print(j);
} else {
System.out.print("+");
}
}
}
}
더보기
답 : 0+1+2+3+4+5=15
🍉 2021년 2회 10번
출력 결과
class Ovr1 {
public static void main(String[] args) {
Ovr1 a1 = new Ovr1();
Ovr2 a2 = new Ovr2();
System.out.print(a1.san(3, 2) + a2.san(3, 2));
}
int san(int x, int y) {
return x + y;
}
}
class Ovr2 extends Ovr1 {
int san(int x, int y) {
return x - y + super.san(x, y)
}
}
더보기
답 : 11
상속 관련 문제이다.
a1.san(3, 2) => 3 + 2 = 5
a2.san(3, 2) => 3 - 2 + super.san(x, y) = 3 - 2 + 3 + 2 = 6
a1.san(3, 2) + a2.san(3, 2) = 5 + 6 = 11
🍉 2021년 2회 16번
빈 칸
public class Test {
public static void main(String[] args) {
System.out.print(Test.check(1));
}
_____ String check(int num) {
return (num >= 0) ? "positive" : negative";
}
}
// 출력값
// positive
더보기
답 : static
객체 생성 없이 메서드를 사용하기 위해서는 static 키워드를 사용해야 한다.
🍉 2021년 2회 16번
출력 결과
class Test {
static private Test instance = null;
private int count = 0;
static public Test get() {
if(instance == null) {
instance = new Test();
}
return instance;
}
public void count() {
count++;
}
public int getCount() {
return count;
}
}
public class Test2 {
public static void main(String[] args) {
Test t1 = Test.get();
t1.count();
Test t2 = Test.get();
t2.count();
Test t3 = Test.get();
t3.count();
System.out.print(t1.getCount());
}
}
더보기
답 : 3
싱글톤(Singleton) 패턴 문제로, 객체의 인스턴스가 오직 1개만 생성되는 패턴이다.
위 문제에서는 private으로 인하여, get() 메서드를 통해 인스턴스를 생성하였다.
count()가 총 3번 발생한다.
- 싱글톤 패턴을 사용하는 상황
- 프로그램 내에서 하나의 객체만 존재해야 한다.
- 프로그램 내의 여러 부분에서 해당 객체를 공유하여 사용해야 한다.
- 싱글톤 패턴을 사용해야 하는 이유
- 1개의 인스턴스만을 고정 메모리 영역에 생성하고 사용하기에, 메모리 낭비를 방지하는 메모리 측면의 이점이 있다.
- 생성된 인스턴스를 사용할 때에는 이미 생성된 인스턴스를 활용하기에 속도 측면의 이점이 있다.
- 전역으로 사용하는 인스턴스이기에 데이터 공유가 쉽다. 다만 동시성 문제를 유의하며 설계해야 한다.
🍉 2021년 3회 11번
출력 결과
public class Test {
public static void main(String[] args) {
int a = 3, b = 4, c = 3, d = 5;
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);
}
}
}
}
더보기
답 : 7
연산자 관련 문제로, 각 연산자의 우선 순위와 용도의 이해가 필요하다.
^은 XOR(배타적 OR)로, 같으면 0이고 다르면 1을 출력한다.
if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d) => 1 & 1 & 1 = 1
첫 번째 조건문에서 참이 된다.
a = b + c = 4 + 3 = 7
if(7 == c ^ d != a) => 1
두 번째 조건문도 참이 되어 a를 출력한다.
반응형
'정보처리기사 > 기출' 카테고리의 다른 글
[정보처리기사] 기출문제_C언어 (2021년 실기) (0) | 2024.04.18 |
---|---|
[정보처리기사] 기출문제_C언어 (2020년 실기) (0) | 2024.04.18 |
[정보처리기사] 기출문제_JAVA (2023년 실기) (0) | 2024.04.17 |
[정보처리기사] 기출문제_JAVA (2022년 실기) (0) | 2024.04.17 |
[정보처리기사] 기출문제_JAVA (2020년 실기) (0) | 2024.04.17 |