<Java zulu1.8 버전(2018년) 을 기준으로 작성하였습니다.>
- C는 조건문 내에서 연산의 결과값이 0이면 true, 0이 아니면 false로 처리하지만, java는 무조건 boolean 자료형인 true, 혹은 false 만 조건문 내에 오는 것을 허용한다. -> boolean 자료형의 변수에도 0이나 1 같은 숫자가 아니라, 무조건 true 혹은 false만 올 수 있음.
- char 변수에도 숫자를 넣을 수 있다 -> 이 때, 4바이트에서 2바이트로 데이터 손실이 일어나므로 명시적 형변환 필요. ( 예: char a = (char)65; )
- java의 data type 별 표현 가능 범위.
- 정수형 - byte, short, int, long
- 실수형 - float, double
- 문자형 - char
- 음수를 나타낼 땐 제일 앞 (왼쪽)비트 만큼 -1배 해줬다가 그 오른쪽 수들을 더해줌.
- 2^0부터 시작하기 때문에 2^(bit수-1) 만큼 표현된다.
- 양수 최댓값 - 음수 최댓값 + 1 = 그 비트의 경우의 수(2^bit수)
byte | 8bit (1byte) | -2^7 ~ 2^7-1 |
short | 16bit (2byte) | -2^15 ~ 2^15-1 |
int | 32bit (4byte) | -2^31 ~ 2^31-1 |
long | 64bit (8byte) | -2^63 ~ 2^63-1 |
float | 32bit (4byte) | |
double | 64bit (8byte) | |
char | 16bit (2byte) | \u0000 ~ \uffff 16진법에서, 한 글자가 4 bit를 나타냄 즉 0 ~ 2^16-1 |
- 묵시적 형변환 - 표현 범위가 더 큰 변수(double 형) 안에 적은 표현범위의 변수(int형) 을 넣으면 알아서 bit가 뻥튀기 되어 들어감
- 명시적 형변환 - 범위가 작은 변수에 범위가 큰 변수를 넣을 떄 발생. 데이터 손실을 우려해 컴파일 에러가 나므로 명시적으로 형변환 해 줘야 함. (예: int a = (int)A;)
'컴맹탈출기 > Java를 자바' 카테고리의 다른 글
Java 기초:: Class란? Class vs Object, OOP의 4요소 (0) | 2021.01.29 |
---|---|
[1주차] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (0) | 2020.11.21 |