TIL

Java 기초 문법 (1)

가을맛 2024. 2. 18. 21:53

Java 기초 문법 복습할 겸 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 보면서 정리한 Java 문법. 나는 전공자이고 Java를 사용한지 꽤 오래되어서 이미 알고 있는 사항이 많으므로 자주 잊어버리는 부분/ 새로 알게된 부분만 정리했다.

 

 

[지금 무료] 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 강의 - 인프런

프로그래밍에 처음 입문하는 분들을 위한 자바 강의입니다. 코드를 따라하면서 손쉽게 자바를 배울 수 있습니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 자바 입문[사진][임베

www.inflearn.com


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으로 형변환 된다.

서로 다른 타입의 계산은 큰 범위로 자동 형변환이 일어난다.

 

 

 

Java 기초 문법(2)

Java 기초 문법 Java 기초 문법 복습할 겸 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 보면서 정리한 Java 문법. 나는 전공자이고 Java를 사용한지 꽤 오래되어서 이미 알고 있는 사항이 많으

dev-jhl.tistory.com