반응형
public class Main {
public static void main(String[] args) {
byte a = 15, b = 19;
System.out.print("%d", ~a);
System.out.print("%d", a^b);
System.out.print("%d", a&b);
System.out.print("%d", a|b);
}
}
-16
28
3
31
15는 2진수로 1111
2의 보수로 계산하면 0001 0000 이 된다
= -16
public class Main {
public static void main(String[] args) {
int a, b, c, hap;
a = b = c = 2;
hap = ++a | b-- & c--;
System.out.println(hap, a, b, c);
}
}
3 3 1 1
비트 연산자는 우선순위가 &, ^, | 이다.
그러므로 b-- & c-- 를 먼저한 후 ++a를 해 준다.
#include <stdio.h>
#include <stdbool.h>
main() {
int a, b;
bool c, d;
a = 10; b = 0;
a *= b = 5;
c = (a != b);
d = (a == b);
printf("%d, %d, %d", a, c, d);
}
50, 1, 0
a *= b = 5는 a = a * (b = 5) 와 같다.
즉, 10*5이므로 a=50이 된다.
public class Main {
public static void main(String[] args) {
String str;
str = "Power overwhelming!";
System.out.println("%8.4s", str);
}
}
Powe
%8.4s : 8자리를 확보하고, 앞에 4칸의 공백
그래서 앞에 4칸을띄우고, Powe가 출력 된다.
class Connection {
private static Connection _inst = null;
private int count = 0;
public static Connection get() {
if(_inst == null) {
_inst = new Connection();
return _inst;
}
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();
Connection conn2 = Connection.get();
conn2.count();
Connection conn2 = Connection.get();
conn2.count();
System.out.println(conn1.getCount());
}
}
3
객체 변수 Connection _inst = null로 초기화 하였음
객체생성 예약어인 'new' 가 생략되었음. 즉, 생성이 아닌 선언만 된것.
객체변수를 선언만 하게 된다면, heap이 아닌 stack 영역에 내용 없이 저장되어 사용이 불가능해짐
하지만 밑의 _inst = new Connection() 을 사용하여 heap영역에 선언되고 사용이 가능해짐
_inst는 stack 영역에저장되어 있고, new Connection을통해 heap 영역을 가르킬 수 있게된 것.
그 후 앞으로 선언되는 conn1, conn2, conn3은 모두 stack영역에서 동일한 heap주소를 가르키게 된다.
그러므로 모두 같은 값을 바라보게 되어 count++이 같은 값을 3번 하므로 3이 출력된다.
반응형
'정보처리기사 > 실기' 카테고리의 다른 글
오답 (13) | 2024.07.24 |
---|---|
정보처리기사 실기 11장 - 응용 SW 기초 기술 활용 (5) | 2024.07.22 |
정보처리기사 실기 10장 - 프로그래밍 언어 활용 (0) | 2024.07.16 |
정보처리기사 실기 9장 - 소프트웨어 개발 보안 구축 (3) | 2024.07.15 |
정보처리기사 실기 8장 - SQL 응용 (0) | 2024.07.13 |
댓글