-
[공부단 스터디] [2일차] Do it! 자바 완전 정복 / 2장IT/자바 2022. 5. 7. 22:14
1. 책 DB를 넣어주세요. (글감 > 책 클릭 > 내가 지금 공부하는 책 검색 및 선택)
Do it! 자바 완전 정복 / 저자 김동형 / 출판 이지스퍼블리싱 / 발매 2021.09.01.3. 이번 스터디에서 특별히 좋았던 점이나 어려웠던 점이 있었나요? 새로 알게된 부분이 있다면 알려주세요. 다음에 이 책으로 공부할 스터디룸의 독자들에게 큰 도움이 됩니다. (200자 이내)
예시) 뚜기님의 Do it! 점프 투 파이썬 스터디 노트 : https://vo.la/WhN6
* 자료형 (data type) : 데이터를 저장하기 위해 생성하는 메모리 공간. 목적에 따라 크기와 특징이 다름
* 데이터를 저장하려면 메모리에 값을 저장할 공간 생성 후 이름 부여(변수)
* 자료형 선언 방법 : [ 자료형 변수명 ; ]
* 자료형은 사용하기 전에 선언해야 함
* 변수에 한 번 지정된 자료형은 바꿀 수 없다
int a = 3 ; double a = 5 ; // 변수 a는 이미 int 자료형으로 선언된 '변수'이기 때문에 다른 자료형(double)으로 변경은 불가능
* 변수는 '변수 선언' 후 '값 대입'을 통해 사용할 수 있다.
* 방법1 : 변수 선언과 함께 값 대입하기 ex) int a = 3 ;
* 방법2 : 변수 선언과 값 대입 분리하기 ex) int a ; a = 3 ;
* 변수 (변할 수 있는 수) , 상수 (항상 똑같은 수)
* 변수 명명 규칙 : 필수 사항과 권장 사항 준수 필요!
* 권장 사항 : 영문 단어 2개 이상 결합 시 새로운 단어의 첫 글자를 대문자로 표기 (카멜 표기법, ex. int outClassNum ;)
* 상수 명명 규칙 : 변수와 구분하기 위해 '모두 대문자' 로 표기
* 여러 영문 단어 결합 시 밑줄(_)을 사용해 분리한다.
* 상수는 자료형 앞에 final 키워드를 붙혀 선언한다. (ex. final int MY_DATA ;)
* 변수 생존 기간 : 메모리에 변수가 만들어진 이후 사라지기까지의 기간을 의미
* 메모리에서 변수를 삭제하는 작업은 자바 가상 머신(jvm)이 알아서 처리함
* 생성 시점 : 변수는 선언된 시점에 생성된다.
* 종료 시점 : 변수는 자신이 선언된 열린 중괄호({)의 쌍인 닫힌 중괄호(})를 만나면 메모리에서 삭제된다.
* 자료형의 종류 : '기본 자료형', '참조 자료형'
* '기본 자료형' 8가지를 제외한 나머지 모든 자료형은 '참조 자료형' 이다.
저장값자료형자료의 크기기본 자료형부울대수: 참, 거짓(true, false)boolean1 byte정수: ..., -1, 0, 1, ...byte1 byteshort2 byteint4 bytelong8 byte실수: -5.4, 1.7, ...floate4 bytedouble8 byte문자(정수): 'A', 'b', ...char2 byte참조 자료형객체: Object배열, 클래스, 인터페이스* 자바의 메모리 구조
클래스(class) 영역
정적(static) 영역
상수(final) 영역
메서드(method) 영역
- 실행 파일인 바이트코드(.class)가 로딩되는 공간스택(stack) 영역
- 변수들이 저장되는 공간힙(heap) 영역
- 객체들이 저장되는 공간* 기본 자료형, 참조 자료형 모두 변수의 공간이 '스택 영역'에 생성되지만, 저장되는 값의 의미가 상이함
* 기본 자료형 : 스택(stack) 영역 내 생성된 공간에 실제 변숫값이 저장됨
* 참조 자료형 : 실제 데이터값은 "힙(heap) 영역"에 저장되고, 스택(stack) 영역의 변수 공간에는 실제 변숫값이 저장된 '힙 영역' 내 메모리 위칫값을 저장함.
* 자바는 힙 메모리에 직접 접근 불가하며, 위칫값을 저장하고 있는 참조 변수를 통해 값을 가져온다.
* 부울대수 자료형 - boolean
* 참(true)/거짓(false) 의 값만 저장할 수 있는 자료형
* 2가지 값만 포함하므로 실제로는 1 bit로도 충분하지만, 자료 처리의 최소 단위가 바이트 이므로 1 byte 가 할당됨
* 실제 할당된 1 byte(=8 bit) 가운데 상위 7 bit는 사용하지 않음
* 정수 자료형 - byte, short, int, long
* 똑같은 정수형을 저장하는데 상이한 자료형 4개가 필요한 이유? - 메모리의 효율성 때문!
* 작은 수를 담을 때 8 byte인 long형을 사용하기 보다 작은 자료형 byte를 사용함으로써 공간 낭비를 줄일 수 있고, 반대의 경우도 마찬가지임.
* 코드에 직접 작성한 값을 리터럴(literal)이라고 하며, 코드에 직접 숫자로 쓴 정수 리터럴 이라고 칭함.
* long형은 값을 대입할 때, 정수 리터럴 뒤에 L(또는 l)을 붙혀서 long형이으로 명시함.
* 크기가 작은 자료형을 큰 자료형에 대입하면 컴파일러가 자동 타입 변환(type casting)을 수행함 (ex. long a = 3 ; long = int -> long = long)
* 실수 자료형 - float, double
* float 자료형의 정밀도 : 소수점 7자리
* double 자료형의 정밀도 : 소수점 15자리
* 자바는 기본적으로 실수 리터럴을 double 자료형으로 인식하며, 실수 리터럴 뒤에 F(또는 f)를 붙히면 float 자료형으로 인식함
* 문자 자료형
* char : 문자를 저장하는 자료형, 작은따옴표('') 안에 표기함. 단, 메모리는 2진수 값만 저장할 수 있기 때문에 실제 '문자'를 저장하는 것이 아니고 문자를 정수값으로 맵핑한 표(유니코드표)에 따라 문자에 해당하는 정수를 기록함
* 타입 변환 (type casting)
* boolean 자료형을 제외한 기본 자료형 7개는 자료형을 서로 변환 가능
* 방법: 단순히 변환 대상 앞에 (자료형) 만 표기하면 됨. 정수나 실수 리터럴은 뒤에 L이나 F를 붙혀 각각 long, float 로 변환 가능
* 타입 변환의 종류
* 자동 타입 변환 : 컴파일러가 자동으로 수행
* 수동 타입 변환 : 개발자가 직접 타입 변환을 수행
* 업 캐스팅(up-casting) : 크기(범위)가 작은 자료형을 큰 자료형에 대입할 때, 데이터 손실 없음 => 자동 타입 변환
* 다운 캐스팅(down-casting) : 큰 자료형을 작은 자료형에 대입하는 행위, 데이터 손실 발생 가능. 개발자가 직접 명시적으로 타입 변환 수행 필요
* 자료형의 크기 : byte < short/char < int < long < float < double
* 서큘러(circular) 구조
* 정수형 자료형을 작은 범위의 자료형으로 캐스팅할 때는 범위의 반대쪽 끝에서부터 다시 시작한다.
* 즉, int 형 값을 byte 형으로 다운캐스팅하면 byte 자료형의 범위에서 반대쪽 끝인 정수값으로 변환됨
* 1byte(=8bit) 에서 표현 가능한 정수는 2^8(=256) 인데, 이 중에서 절반은 음수, 나머지 절반은 0, 양수로 표현된다. -2^7 ~ 2^7-1 이 표현가능한 범위가 된다.
byte a = (byte)128 ; // int -> byte, -128
4. 열심히 실습한 코드를 저장해 첨부해 주시거나 자랑할만한 스크린샷이 있다면 올려주세요.
'IT > 자바' 카테고리의 다른 글
[3일차] Do it! 자바 완전 정복 / 3장 (0) 2022.05.09 [공부단 스터디] [1일차] Do it! 자바 완전 정복 / 1장 (0) 2022.05.07