이 자바의 정석을 읽으면서 공부한 내용을 정리하며 기록하는 글이고
주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
1. 변수
변수 : 단, 하나의 값을 저장할 수 있는 메모리 공간
변수의 초기화 : 변수를 사용하기 전에 처음으로 값을 저장하는 것
두 변수의 값을 교환하기
- 변수 x에 저장된 값을 변수 tmp에 저장
- 변수 y에 저장된 값을 변수 x에 저장
- 변수 tmp에 저장된 값을 변수 y에 저장
예제로 알아보면
public class Main {
public static void main(String[] args) {
int x = 10, y = 20; //변수 x,y에 10,20 값으로 초기화
int tmp = 0; //변수 tmp에 값 0으로 초기화
System.out.println("x: "+ x + " y:" + y);
tmp = x;//변수 x값을 tmp에 대입
x = y; //변수 y값을 x에 대입
y = tmp;//변수 tmp값을 y에 대입
System.out.println("x: "+ x + " y:" + y);
}
}
결과 값은 x값이 20, y값이 10이 나온다.
변수의 명명규칙
- 대소문자가 구분되며 길이에 제한이 없다.
- 예약어를 사용해서는 안된다.
- 숫자로 시작해서는 안 된다.
- 특수문자는 '_'와 '$'만을 허용한다.
자바 프로그래머에게 권장하는 규칙
- 클래스 이름의 첫 글자는 항상 대문자로 한다.
- 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
- 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다.
2. 변수의 타입
자료형의 종류
- 기본형 : 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(foalt, double)
- 참조형 : 객체의 주소를 저장한다. 8개의 기본형 제외 나머지 타입
기본형 종류와 크기
- boolean은 true와 false 두 가지 값만 표현할 수 있으면 되므로 가장 작은 크기인 1 byte.
- char은 자바에서 유니코드(2byte 문자체계)를 사용하므로 2byte.
- byte는 크기가 1 byte라서 byte.
- int(4 byte)를 기준으로 짧아서 short(2 byte), 길어서 long(8 byte).
- float는 실수값을 부동소수점 방식으로 저장하기 때문에 float.
- double은 float보다 두 배의 크기(8 byte)를 갖기 때문에 double.
정수형의 값의 범위 : - 2의 n-1승 ~ 2의 n-1승 - 1
변수 : 하나의 값을 저장하기 위한 공간
상수 : 값을 한 번만 저장할 수 있는 공간
리터털 : 그 자체로 값을 의미하는 것
printf( )의 지시자 중에서 자주 사용되는 것
- %b : 불리언(boolean) 형식으로 출력
- %d : 10진(decimal) 정수의 형식으로 출력
- %o : 8진(octal) 정수의 형식으로 출력
- %x , %X : 16진(hexa-decimal) 정수의 형식으로 출력
- %f : 부동 소수점(floating-point)의 형식으로 출력
- %e, %E : 지수(exponent) 표현식의 형식으로 출력
- %c : 문자(character)로 출력
- %s : 문자열(string)로 출력
3. 진법
10진법 : 0 ~ 9까지 표현
2진법 : 0, 1로 표현
8진법 : 0 ~ 7까지 표현
16진법 : 0 ~ 9 ~ A(10) B(11) C(12) D(13) E(14) F(15)까지 표현
10진수를 n진수로 변환
10진수를 다른 진수로 변환하려면, 해당 진수로 나누고 나머지 값을 더 이상 나눌 수 없을 때까지
반복한 후 몫과 나머지를 아래부터 위로 순서대로 적으면 된다.
n진수를 10진수로 변환
각 자리의 수에 해당 진수 단위의 값을 곱해서 모두 더하면 된다.
10진 소수점수를 2진 소수점수로 변환
10진 소수점수에 2를 계속 곱해 소수부가 0이 되면 정수부만 위에서 아래로 순서대로 적으면 된다.
2진 소수점수를 10진 소수점수로 변환
각 자리의 수에 해당 진수 단위의 값을 곱해서 모두 더하면 된다.
음수의 2진 표현을 구하는 방법
- 음수의 절대값을 2진수로 변환한다.
- 1. 에서 구한 2진수의 1을 0으로 0은 1로 바꾼다. (1의 보수 구하기)
- 2. 의 결과에 1을 더한다. (2의 보수 구하기, 1의 보수 + 1)
4. 기본형
논리형 - boolean
true와 false 중 하나를 저장, 기본값은 false
1byte
문자형 - char
문자를 저장하기 위한 변수를 선언할 때 사용
2byte
정수형 - byte, short, int, long
기본 자료형은 int
1, 2, 4, 8 byte(byte, short, int, long)
정수형의 오버플로우
최대값 + 1 -> 최소값
최소값 -1 -> 최대값
실수형 - float, double
float의 정밀도는 7자리, double의 정밀도는 15자리이다.
4, 8 byte(float, double)
실수형의 오버플로우 : 변수의 값은 무한대가 된다.
실수형의 저장형식
실수형의 값은 부동소수점수의 형태(부호, 지수, 가수)로 저장함(IEEE 754)
float : 부호 1bit + 지수 8bit + 가수 23bit = 32bit(4byte)
double : 부호 1bit + 지수 11bit + 가수 52bit = 64bit(8byte)
5. 형변환
형변환 : 변수 또는 상수의 타입을 다른 타입으로 변환하는 것
형변환 방법 : 형변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙임.
정수형간의 형변환
- 큰 타입에서 작은 타입으로의 변환에서 경우에 따라 값 손실이 발생할 수 있다.
- 작은 타입에서 큰타입으로의 변환에선 값 손실이 발생하지 않는다.
실수형 간의 형변환
- 작은 타입에서 큰 타입으로 변환하는 경우에 빈 공간을 0으로 채운다.
- 가수 24번째 자리의 값이 1이면, 반올림 발생하여 23번째 자리의 값이 1증가한다.
정수형을 실수형으로 변환
정수를 2진수로 변환한 다음 정규화를 거쳐 실수의 저장형식으로 저장
실수형을 정수형으로 변환
반올림이 발생하지 않은 상태로 실수형의 소수점이하 값은 버려진다.
자동 형변환
- boolean을 제외한 나머지 7개의 기본형은 서로 형변환이 가능하다.
- 기본형과 참조형은 서로 형변환할 수 없다.
- 서로 다른 타입의 변수간의 연산은 형변환을 하는 것이 원칙
- 값의 범위가 작은 타입에서 큰 타입으로의 형 변환은 생략할 수 있다.