Java 기초 문법 복습할 겸 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 보면서 정리한 Java 문법. 나는 전공자이고 Java를 사용한지 꽤 오래되어서 이미 알고 있는 사항이 많으므로 자주 잊어버리는 부분/ 새로 알게된 부분만 정리했다.
2. 변수
리터럴
코드에서 개발자가 직접 적은 100 , 10.5 , true , 'A' , "Hello Java" 와 같은 고정된 값을 프로그래밍 용어로 리터럴(literal)이라 한다
int a = 100; //정수 리터럴
double b = 10.5; //실수 리터럴
boolean c = true; //불리언 리터럴
char d = 'A'; //문자 하나 리터럴
String e = "Hello Java"; //문자열 리터럴
자주 사용하는 타입
정수 : int , long ( 기본은 int, 20억 넘어갈 것 같으면 long 사용/byte와 short는 너무 작다. / 단, 파일 다룰 때는 byte 사용)
실수 : double (float은 표현 길이와 정밀도가 너무 낮음)
문자열 : String (문자 1개도 char 대신 String으로 표현할 수 있음)
변수 명명 규칙
변수 : 소문자로 시작하는 카멜케이스 (age)
상수 : 모두 대문자, 언더바고 구분 (USER_NAME)
클래스 : 대문자로 시작하는 카멜케이스 (Person)
패키지 : 모두 소문자 (org.spring.boot)
💡 변수 이름은 의미있고, 용도를 명확히 설명해야함
- ❌ : a, b, i 같은 의미 없는 변수명은 단순 예제에서만 사용할 것
- ⭕ : userAcconut, orderCount
3. 변수
산술 연산자
나누기
0으로 나눌 수 없다 → 예외 발생
문자열 더하기
문자와 숫자를 더하면 숫자를 문자열로 변경한 다음 서로 더한다.
연산자 우선순위
우선순위가 애매한 경우 1 + ((num++) * 3) 처럼 괄호를 통해 명시적으로 우선순위를 표현해 주는게 좋다
비교연산자
문자열 비교
== 가 아니라 .equal() 메소드를 사용해야한다.
대입연산자
=, +=, -=, */, /= , %/
4. 조건문
If 문의 중괄호
if 문의 명령이 한 줄만 있을 때도 중괄호를 사용하는 게 좋다. (가독성, 유지보수성)
switch 문
if 문과 달리 비교연산자 사용 불가 (switch 문은 단순히 값이 같은지만 비교 가능)
switch(조건식){
case value1:
// 코드
break;
case value2:
//코드
break
default:
// 조건식의 결과 값이 위의 어디에도 해당하리 않을 때 실행되는 코드
}
switch 문 없이 if문만 써도 된다.
하지만 특정 값에 따라 코드 실행할 때는 switch 문 사용하면 좀 더 간결히 사용할 수 있다는데…. 굳이? if 랑 별 차이 없음.
switch 문 (Java 14 ~)
String grade = "골드";
// Java 14 의 switch
// -> 를 사용해서 선택된 데이터를 반환한다.
// break; 를 생략
int coupon = switch (grade) {
case "실버" -> 1000;
case "골드" -> 2000;
case "다이아" -> 3000;
default -> 0;
};
System.out.println("쿠폰 : " + coupon);
6. 스코프, 형변환
타입의 크기
int < long < double
작은 범위 -> 큰 범위 : 자동 형변환
int -> long - > double 는 자동 형변환
큰 범위 -> 작은 범위 : 묵시적 형변환
- 실수 → 정수 변환의 경우 소수점 버림
- 오버플로우가 발생할 수 있다.
연산 시 형변환
같은 타입끼리의 계산은 같은 타입의 결과를 낸다.
double div2 = 3/2; // = 1.0
System.out.println("div2 = " + div2);
// 예상 결과(1.5)와 다른 값이 출력된다
// 1.5가 아닌 1.0 이 출력되는 이유?
// int/int 이므로 우항의 계산 결과는 int인 정수 1이다
// 이후 좌항인 div2의 타입에 맞춰 정수 1이 1.0으로 형변환 된다.
서로 다른 타입의 계산은 큰 범위로 자동 형변환이 일어난다.
'TIL' 카테고리의 다른 글
SLOW QUERY 란? 성능 개선은 어떻게 이루어지는지 (0) | 2024.05.03 |
---|---|
함수 명명시 자주 사용되는 동사 표현 정리 (유의어, 반의어) (1) | 2024.05.02 |
JPA 단방향 연관관계, 양방향 연관관계 (1) | 2024.04.28 |
JPA 연관관계 매핑 (0) | 2024.04.27 |
Java 기초 문법(2) (0) | 2024.02.19 |