imhamburger 님의 블로그
자바(Java) - 자바기초, 전위형증감, 후위형증감, switch 사용방법 본문
자바는 파일 확장명인 .java인 파일을 생성하고 자바 언어로 코드를 작성한 후 이렇게 만든 자바 소스 파일을 javac 명령어로 컴파일해야 한다.
컴파일이 성공하면 확장명이 .class인 바이트 코드 파일이 생성된다.
컴파일 명령어
javac <파일명>.java
참고
javac -d bin src/<파일명>.java
- 자바 소스 파일(App.java)을 컴파일하여 .class 파일을 특정 디렉터리(bin)에 저장하는 명령어이다.
컴파일이 가능하다면 당연히 디컴파일도 가능하다.
디컴파일 패키지?를 다운로드한 후 아래 명령어로 실행하면 된다.
디컴파일 실행하기
java -jar jd-gui-1.6.6.jar
자바 기초익히기
1. String Copy
public class StringCopy {
public static void main(String[] args) {
String str = "안녕 자바";
String strCopy = str;
System.out.println("변경전 문자열 str: " + str);
System.out.println("변경전 문자열 strCopy: " + strCopy);
strCopy = "안녕 C";
System.out.println("변경후 문자열 str:" + str);
System.out.println("변경후 문자열 strCopy: " + strCopy);
}
}
출력
2. String Share
public class StringShare {
public static void main(String[] args) {
String strA = "안녕 자바";
String strB = "안녕 자바";
String strC = new String("안녕 자바");
String strD = new String("안녕 자바");
System.out.println("문자열 리터럴: 문자열 리터럴 = " + (strA == strB));
System.out.println("문자열 리터럴: new String = " + (strA == strC));
System.out.println("new String: new String = " + (strC == strD));
System.out.println("new String: new String = " + (strC.equals(strD)));
}
}
출력
문자열 리터럴: 문자열 리터럴 = true
문자열 리터럴: new String = false
new String: new String = false
new String: new String = true
3. String Operation
public class StringOperation {
public static void main(String[] args) {
String str01 = "안녕";
str01 = str01 + "자바";
System.out.println("안녕 + 자바: str01 = " + str01);
int num01 = 1;
int num02 = 2;
str01 = num01 + num02 + str01;
System.out.println("안녕 + 자바 : str01 = " + str01);
}
}
출력
안녕 + 자바: str01 = 안녕자바
안녕 + 자바 : str01 = 3안녕자바
str01과 num01 + num02 위치를 바꾼다면 어떻게 출력되지?
int num01 = 1;
int num02 = 2;
str01 = str01 + num01 + num02;
System.out.println("안녕 + 자바 : str01 = " + str01);
출력
안녕 + 자바: str01 = 안녕자바
안녕 + 자바 : str01 = 안녕자바12
- str01 = str01 + num01 + num02; 이 줄에서 중요한 점은 자바에서 문자열과 숫자의 덧셈은 문자열 연결로 처리된다는 것
만약 "안녕자바3"으로 출력되길 원한다면?
str01 = str01 + (num01 + num02);
4. 자바 switch 사용하기
자바에서 switch 문은 하나의 변수를 여러 값과 비교하여 조건에 맞는 코드를 실행하는 제어문이다.
switch 문은 주로 조건이 여러 개일 때, if-else 문보다 더 간결하고 명확한 코드를 작성할 수 있게 해준다.
switch (expression) {
case <pattern_1>:
<action_1> // value1과 expression이 일치할 때 실행되는 코드
break;
case <pattern_2>:
<action_2> // value1과 expression이 일치할 때 실행되는 코드
break;
case <pattern_3>:
<action_3> // value1과 expression이 일치할 때 실행되는 코드
break;
default:
// 모든 case와 일치하지 않을 때 실행되는 코드
}
파이썬 match와 비교 (공식문서)
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
5. 전위형 증감? 후위형 증감?
- ++num (전위형 증감): 값을 먼저 1 증가시키고, 그 다음에 사용
- num++ (후위형 증감): 값을 먼저 사용하고, 그 후에 1을 증가
전위형 증감
public class ControlFor {
public static void main(String[] args) {
int index;
int num = 0;
System.out.println("========for 문 안에서 전위형 증감");
for (index = 0; index < 5; index++) {
num = ++num;
System.out.println(String.format("i: %s, num: %s", index, num));
}
}
}
출력
=======for문 안에서 전위형 증감
i: 0, num: 1
i: 1, num: 2
i: 2, num: 3
i: 3, num: 4
i: 4, num: 5
후위형 증감
public class ControlFor {
public static void main(String[] args) {
int index;
int num = 0;
System.out.println("=======for문 안에서 후위형 증감");
num = 0;
for (int i = 0; i < 5; i++) { // 왜 num은 0일까?
num = num++;
System.out.println(String.format("i: %s, num: %s", i, num));
}
}
}
출력
========for 문 안에서 후위형 증감
i: 0, num: 0
i: 1, num: 0
i: 2, num: 0
i: 3, num: 0
i: 4, num: 0
왜 num이 0으로 출력될까?
- 후위형: 값이 "먼저 사용"되고 그 후에 증가하는 것. "먼저 사용되고 나중에 일어남" (사용 먼저, 증가 나중)
예시
int x = 10;
// 전위형
System.out.println(++x); // 출력: 11 (증가된 값 출력)
System.out.println(x); // 출력: 11 (x는 이미 11로 증가된 상태)
// 후위형
int y = 10;
System.out.println(y++); // 출력: 10 (현재 값 출력 후 증가)
System.out.println(y); // 출력: 11 (이제 1 증가된 상태)
따라서 위에 코드의 경우 num은 0부터 시작하고 num++ 여도 0이 된다.
그리고 다시 num 은 1 이 되야 하는데 이미 위에서 num = 0 이라고 값을 주었기 때문에 계속 "0"이 출력되는 것이다.
그럼 전위형처럼 num이 1씩 증가하게 하는 방법은?
public class ControlFor {
public static void main(String[] args) {
int index;
int num = 0;
System.out.println("=======for문 안에서 후위형 증감");
num = 0;
for (int i = 0; i < 5; i++) {
num++; //값을 num에 할당하지 않고 계속 증가시키기
System.out.println(String.format("i: %s, num: %s", i, num));
}
}
}
이렇게 num에 다시 값을 할당하지 않고 num++ 으로 주면 전위형과 같은 값이 출력이 된다.
=======for문 안에서 후위형 증감
i: 0, num: 1
i: 1, num: 2
i: 2, num: 3
i: 3, num: 4
i: 4, num: 5
다시 예시로보자면,
int num = 5;
int result = num++;
System.out.println(num); // 6 출력
System.out.println(result); // 5 출력
- 처음에 num은 5
- num++은 먼저 num의 현재 값(5)을 사용. 이 값이 result에 저장
- 그런 다음에 num이 1 증가되어 num은 6이 된다.
'끄적끄적' 카테고리의 다른 글
데이터엔지니어 부트캠프 - json-server로 간단하게 CRUD 실습해보기 (0) | 2024.10.28 |
---|---|
엔진엑스(NGINX) - NGINX 로드밸런싱 설정하기 (3) | 2024.09.11 |
Firebase - Deploy 해도 화면이 안나오는 이유 (0) | 2024.08.29 |
카프카(Kafka) - 파티션 자동할당, 수동할당 (0) | 2024.08.23 |
성능 테스트 도구 nGrinder 이해하기 (0) | 2024.08.12 |