ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [공부단 스터디] [2일차] Do it! 자바 완전 정복 / 2장
    IT/자바 2022. 5. 7. 22:14

     

    1. 책 DB를 넣어주세요. (글감 > 책 클릭 > 내가 지금 공부하는 책 검색 및 선택)

     

    Do it! 자바 완전 정복 / 저자 김동형 / 출판 이지스퍼블리싱 / 발매 2021.09.01.

     

    2. 나의 스터디 흔적을 사진으로 보여주세요. 책상(모니터)과 책이 함께 보이면 최고!

    예시) 지우쭈님의 된다! 7일 실무 엑셀을 공부한 흔적: https://vo.la/LBxH

    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)
    boolean
    1 byte
    정수: ..., -1, 0, 1, ...
    byte
    1 byte
    short
    2 byte
    int
    4 byte
    long
    8 byte
    실수: -5.4, 1.7, ...
    floate
    4 byte
    double
    8 byte
    문자(정수): 'A', 'b', ...
    char
    2 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. 열심히 실습한 코드를 저장해 첨부해 주시거나 자랑할만한 스크린샷이 있다면 올려주세요.

     

     

    원글: https://cafe.naver.com/doitstudyroom/39311

    댓글

Designed by Tistory.