[리뷰] 처음 해보는 자바 프로그래밍 - 02. 데이터 활용
내용 정리
2.1 변수 기본
2.1.2 변수선언
- 표기법
- Camel Case : thisIsCamelCase (java 변수, 함수명)
- Pascal Case : ThisIsPascalCase (java 클래스명)
- Snake Case : this_is_snake_case
2.1.3 변수에 데이터 저장
- 리터럴(literal) : 변수에 저장되는 값 자체를 의미
- 초기화 : 선언한 변수에 최초로 데이터를 저장
2.2 데이터 종류
2.2.1 논리 타입
2.2.2 문자 타입
- char, 2byte, 한 글자, 작은따옴표('')
- 언어별 특수문자 (escape sequence) - \n, \t, \...
- 유니코드 : 언어상관없이 부여된 체계, 65,536글자, \u다음에 코드 지정
- 문자열 : string, 큰따옴표("")
2.2.3 정수 타입
- byte(1byte), short(2byte), int(4byte), long(8byte)
- long 초기화 시 숫자 끝에 L을 붙여주어야 long 타입 처리
long a = 2147383648; // 컴파일 오류
값을 변수에 저장하기 전 임시로 메모리에 저장할때 int를 사용하는데 리터럴값이 int 범위를 초과해서 에러발생. 2147383648L 로 써야함
2.2.4 실수 타입
- float(1+3 = 4byte), double(1+7 = 8byte)
- 지수+기수로 분리 저장 ex) 12.3456 => 0.123456(기수) * 10의 2승 (지수)
- float 초기화 시 숫자 끝에 F/f 사용
float rate = 1136.50; //컴파일 오류
값을 변수에 저장하기 전 임시로 메모리에 저장할때 double을 사용하는데 8byte double 타입을 4byte float변수에 대입하려니 공간이 좁아 오류 발생. 1136.50f 로 써야함.
2.2.5 참조 타입
- 기본 데이터 타입 : boolean, char, byte, short, int, long, float, double
- 참조 데이터 타입 : 메모리 위치를 저장하는 타입 (위의 8가지 제외 나머지 전체)
2.3 데이터 연산
2.3.4 부호연산자
short e = 10;
short f = -e; //컴파일 오류
-e 가 부호변경으로 4 byte int가 되면서 2byte short 변수에 대입하려니 발생하는 오류. 변수 f를 int로 변경해서 해결.
2.3.6 논리연산자
- A && B, A || B 는 앞의 조건으로 결론이 나는 경우 뒤에 조건은 수행하지 않음
2.4 데이터 타입 변환
- 자동 변경 : 작은 타입의 데이터를 큰 타입의 변수에 저장하는 경우
- 직접 변경 : (타입) 변수명; 으로 타입캐스팅
- 연산자를 이용해 숫자를 연산할때 정수는 int 타입으로 변환되어 연산을 수행
byte i = 10;
byte j = 20;
byte k = i + j; // 컴파일 오류
연산 후 int로 변경된 값을 byte에 대입하려고 하여 오류. byte k = (byte)(i + j); 로 수정해야 함
학습 후기
알고리즘 문제풀이시, 혹은 비지니스 코드 작성 시 가끔씩 이런 쪽에서 빨간줄이 뜨면 강제로 이것저것 캐스팅 해보거나 타입을 바꾸거나 했는데 왜 에러가 났던건지 이해가 되었다!! 또 데이터 타입은 어느정도 알고있었으나 정확하게 정리가 되어있어서 복습이 되었다.