소수점을 표현하는 방식
- 고정소수점 00.00 → 소수점의 길이나 바이트 수를 미리 제한해 놓은 것
- 부동소수점 → 부호, 지수, 가수부의 영역만 정해 놓고 곱한 값을 저장해서 표현하는 방식 → 엄청 많은 수 표현 가능
- 그렇기 때문에 float(4byte)여도 long(8byte)보다 더 큰 수를 표현할 수 있음
char과 String의 차이
- char(byte)('')
- 문자 뒤에 널문자(\0)가 없음, 1byte만 사용하기 때문
- 기본형
- String("")
- 문자 뒤에 널문자 존재, 어디가 끝인지 알아야 되기 때문
- 참조형
문자자료형 : 메모리는 이진수만 기록하므로 문자에 해당하는 유니코드값으로 매칭시켜 저장
기본형과 참조형
- 기본형 변수 : 원본값이 Stack 영역(정적영역 = 크기가 얼마인지 지정되어 있어야 함)으로 할당된 메모리 영역에 저장
- 참조형 변수 : 원본값이 heap 영역에(동적영역 = 크기가 가변적임) 저장, heap영역의 원본 주소값을 저장함
형변환
- 작은 타입에서 -> 큰 타입으로 형변환 : 자동으로 됨(up캐스팅)
- 큰 타입에서 -> 작은 타입 형변환 : 값의 손실이 생김, 개발자가 직접 명시함(down캐스팅)
public class Main {
public static void main(String[] args) {
// 변수 타입별 크기 순서
// byte(1) -> short(2) -> int(4) -> long(8) -> float(4) -> double(8)
// (1) byte -> int
byte byteNumber = 10;
int intNumber = byteNumber;
System.out.println(intNumber);
// (2) char(1byte) -> int(4) 형변환
char alphabet = 'A';
intNumber = alphabet; // char -> int로 자동 형변환
System.out.println(intNumber);
// (3) int -> double 형 변환
intNumber = 200;
double doubleNumber = intNumber;
System.out.println(doubleNumber);
// (4) double -> int 형 변환
// 개발자가 명시적으로 형변환 = downcasting
double d = 3.5;
int a = (int) d;
System.out.println("강제 형변환 : " + a);
// 큰 크기 타입으로 자동 형 변환
int intNum = 10;
double doubleNum = 5.5;
double result = intNum + doubleNumber;
System.out.println(result);
}
}
- 작은 크기 타입이 큰 크기의 타입이랑 계산될 때 자동으로 큰 크기의 타입으로 형 변환됨
public class Main {
public static void main(String[] args) {
int intNum = 10;
// 1) 정수로 나누기
int iResult = intNum / 4;
// 2) 실수로 나누기
double dResult = intNum / 4.0;
System.out.println(iResult + " | " + dResult); // 2 | 2.5
}
}
'JAVA' 카테고리의 다른 글
자바 기본 문법 / 얕은 복사와 깊은 복사 / String (0) | 2025.01.02 |
---|---|
요리 레시피 메모장 만들기 / 배열, 입출력, 형변환 (0) | 2025.01.02 |
JVM과 자바 컴파일 과정 (0) | 2024.12.31 |
보너스 문제: 가위 바위 보 (0) | 2024.12.17 |
Lv3. 단어 맞추기 게임 (2) | 2024.12.16 |