코드 컨벤션
언어들별로 저마다의 기본적인 약속이 있는데, 이를 코드 컨벤션이라고 한다. 말 그대로 약속일 뿐이기에 안 지킨다고 오류가 나는 것은 아니지만, 지켰을 때 아름다운 예절 같은 것
어떤 회사에서는 코드가 한줄이더라도if블록을 지키도록 하는 컨벤션도 있음(오류 방지를 위해)cf. 파이썬은
switch를 지원 안 한다.
else if가 많아지면 속도를 저하시키기 때문에 이때switch를 유용하게 사용할 수 있다.
크게 의미가 없다고 이야기하기도 해서 파이썬이 추가를 안 하고 있는 것도 있음
쫌쫌따리 메꾸게 된 지식들!
- 자바는 메모리관리를 jvm이 한다.
- refactor하면 한번에 여러개 수정 가능..?
- main: 자바 버추얼 머신이 가져다 쓰는 것 - 형식 잘 지켜줘야
- 비트는 0/1, 8개 묶여있는 게 바이트다
그동안은 switch문을 거의 사용해오지 않았기에 앞으로 필요에 따라 활용할 수 있도록 정리해보았다.
원래는
case에int와char만 들어갈 수 있었는데 이제 버전7부터는 문자도 들어갈 수 있게 되었다.
조건이 아니라 값이 들어온다는 점에서 코딩 시 활용해볼 수 있다.
특정 값 그룹에 동일한 메시지 출력
public class SwitchExample {
public static void main(String[] args) {
int month = 7;
switch (month) {
case 3: // 봄
case 4:
case 5:
System.out.println("봄입니다.");
break;
case 6: // 여름
case 7:
case 8:
System.out.println("여름입니다.");
break;
case 9: // 가을
case 10:
case 11:
System.out.println("가을입니다.");
break;
default: // 겨울
System.out.println("겨울입니다.");
}
}
}
실행결과
여름입니다.
- 동일한 처리(출력)를 해야 하는 조건들을 그룹화할 때 코드를 중복 작성할 필요가 없음.
- case를 연속적으로 배치하면 특정 범위나 그룹을 처리하는 데 적합.
단계적 작업 처리
public class SwitchExample {
public static void main(String[] args) {
int step = 1;
switch (step) {
case 1:
System.out.println("Step 1: 데이터 수집");
// break가 없으므로 다음 단계로 진행
case 2:
System.out.println("Step 2: 데이터 처리");
case 3:
System.out.println("Step 3: 결과 생성");
break;
default:
System.out.println("Invalid step");
}
}
}
실행결과 step = 1
Step 1: 데이터 수집
Step 2: 데이터 처리
Step 3: 결과 생성
- 초기 단계부터 연속적으로 처리해야 하는 경우.
- 단계적으로 실행 흐름을 이어가며 중단하지 않는 작업에서 유용.
while은 하나의 문장이 안 되어서 초기화 등등 다로 해줬지만 for는 한 줄에 한번에
String[] args 활용하기public class Hello{
static String name = "lee";
public static void main(String[] args){
System.out.print(1);
System.out.println("hello");
System.out.print(Hello.name);
Hello h = new Hello(); //실체를 만드는 것 ...
System.out.print(h.name);
System.out.print(args[0]);
System.out.print(args[1]);
System.out.print(args[2]);
}
}
java뒤에
Hello, kang, 123, haha가String[] args에 들어간다.
class에 선언되는 변수는 자동으로 세팅되는 초기값이 있지만, 메서드의 경우 초기값을 지정해주지 않으면 쓰레기값이 지정되므로 초기화해줘야 함
파일탐색기에서도 폴더를 만들어 정리하듯, 클래스들마다 여러일들을 하기 때문에 비슷한 용도인 것들끼리 묶어두는 것이 패키지이다.
레퍼런스 클래스가 있다.레퍼런스 타입: Integer / Double / ...
작은 그릇에 담긴 값을 큰 그릇으로 옮겨담을 때 묵시적으로 형변환이 일어난다.
반면 큰 그릇-> 작은 그릇일 때는 명시적으로 형변환 해주어야 한다. 컴파일러는 그릇만 본다.
정수형의 자동 타입 변환
byte형 → short형 → int형 → long형 → float형 → double형
🔎 JAVA에서 강제 형변환시 주의할 점
문자 타입은 0부터 65535까지 저장할 수 있는 정수 타입이기도 하다.
그런데 변수 '그릇'이 넘치는 것이 오버플로우
텀블러 500ml를 넘어가서 물을 담게 되면 물이 쏟아지고 그 물을 다시 사용할 수 없듯
흘러가는 값을 활용할 수는 없음
작은 그릇에 담긴 값을 큰 그릇으로 옮겨담을 때 묵시적으로 형변환이 일어난다.
반면 큰 그릇-> 작은 그릇일 때는 명시적으로 형변환 해주어야 한다. 컴파일러는 그릇만 본다.
캐릭터는 다 코드값을 가지고 있기 때문에 ㄱㅊ