내가 "혼자 공부하는 자바" 라는 책을 읽으면서 공부한 JAVA 문법에 대해서 잘 모르는 부분들을 정리해 보았다
1. 변수
A. 타입변환 : 데이터 타입을 다른 데이터 타입으로 변화하는 것
기본 타입을 허용 범위 크기순으로 정리하면 다음과 같다.
byte < short < int < long < float < double
- 자동 타입 변환 : 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생
byte byteValue = 10;
int intValue = byteValue; // 자동 타입 변환됨
int 타입이 byte 타입보다 허용 범위가 더 크기 때문에 자동 타입 변환이 일어납니다.
char charValue = 'A'
int intValue = charValue; // 65가 저장됨
char 타입의 경우 int 타입으로 자동 타입 변환되면 유니코드 값이 int 타입에 저장됩니다.
- 강제 타입 변환 : 큰 허용 범위 타입을 작은 허용 범위 타입으로 강제로 나눠서 저장하는 것
int intValue = 10;
byte byteValue = (byte) intValue; // 강제 타입 변환 성공
int 타입은 byte 타입보다 더 큰 허용 범위를 가집니다. 하지만 (byte) 캐스팅 연산자를 사용해서 byte 타입으로 강제 변환 가능합니다.
int intValue = 5000;
byte byteValue = (byte) intValue; // 강제 타입 변환 실패
byte 범위에 해당하지 않는 값이 들어오게되면 (byte의 경우 -128 ~127) 컴파일 에러가 발생합니다.
double doubleValue = 3.14
int intValue = (int) doubleValue; // intValue는 정수 부분인 3만 저장
실수 타입은 정수 타입으로 자동 변환되지 않기 때문에, 이 경우 강제 타입 변환 실행시 소수점 이하 부분은 버려지고, 정수 부분만 저장됩니다.
B. 변수값 출력
- printf() : 전체 출력 자릿수와 소수 자릿수를 제한할 수 있다.
- %와 conversion(변환문자)은 필수로 작성하고 그 외의 항목은 모두 생략가능
- %는 형식 문자열의 시작을 뜻하고, conversion은 제공하는 값의 타입에 따라 d(정수), f(실수), s(문자열)를 입력합니다.
형식화된 문자열 | 설명 | 출력형태 | |
정수 | %d %6d %-6d %06d |
정수 6자리 정수. 왼쪽 빈 자리 공백 6자리 정수. 오른쪽 빈 자리 공백 6자리 정수. 왼쪽 빈 자리 0 채움 |
123 ___123 123___ 000123 |
실수 | %10.2f %-10.2f %010.2f |
소수점 이상 7자리, 소수점 이하 2자리. 왼쪽 빈 자리 공백 소수점 이상 7자리, 소수점 이하 2자리. 오른쪽 빈 자리 공백 소수점 이상 7자리, 소수점 이하 2자리. 왼쪽 빈 자리 0 채움 |
____123.45 123.45____ 0000123.45 |
문자열 | %s %6s %-6s |
문자열 6자리 문자열. 왼쪽 빈 자리 공백 6자리 문자열. 오른쪽 빈 자리 공백 |
abc ___abc abc___ |
특수문자 | \t \n %% |
탭(tab) 줄 바꿈 % |
% |
'JAVA' 카테고리의 다른 글
[JAVA] 상속, 다형성, 추상 클래스 (3) | 2024.11.26 |
---|---|
[JAVA] JVM 메모리 사용 영역 (0) | 2024.11.26 |
[JAVA] 디자인패턴 - 싱글톤 패턴(Singleton Pattern)을 알아보자 (0) | 2024.11.23 |
[JAVA] 객체지향 언어란 무엇인가? - 객체, 인스턴스, 클래스, OOL특징 (2) | 2024.11.22 |
[JAVA] JAVA 기본 문법 - 참조 타입과 참조 변수 (4) | 2024.11.19 |