TIL_변수와 타입_20230201

김다은·2023년 2월 1일
1

TIL

목록 보기
11/14
post-thumbnail

✍학습 목표

  • 타입의 개념 이해
  • 기본 타입과 참조 타입의 차이 이해
  • 정수 타입, 실수 타입, 논리 타입, 문자 타입을 이해
  • 변수, 상수, 리터럴 이해
  • 자동 타입 변환과 수동 타입 변환 이해

📝배운 개념

메모리 할당

컴퓨터는 메모리에 어떤 값을 저장할 때 필요한 과정

  1. 기억하고자 하는 값이 얼만큼의 메모리 공간을 필요로 하는지 파악

  2. 기억하고자 하는 값이 차지하는 용량만큼의 메모리 공간을 확보합니다.

  3. 값을 저장한 공간에 이름을 붙입니다.

  4. 확보한 메모리 공간에 기억하고자 하는 값을 저장합니다.

변수

변하는 수

변수를 선언하면 컴퓨터는 값을 저장할 메모리 공간을 확보하고, 그 공간에
이름을 붙임
일반적으로 camelCase 사용

변수를 사용해야 하는 이유

  • 저장해야 할 값이 많으면 메모리 주소를 식별하기 어렵다는 단점을 해소

  • 시스템 운영에 꼭 필요한 데이터를 실수로 덮어쓰는 실수 방지

상수

변하지 않는 수 (재할당x)

상수는 final을 사용해 선언할 수 있음
관례적으로 대문자에 언더바(_)를 넣어 구분하는 SCREAMING_SNAKE_CASE를
사용

상수를 사용해야 하는 이유

  • 프로그램이 실행되면서 값이 변하면 안되는 경우를 대비할 수 있음

  • 코드 가독성을 높일 수 있음

  • 코드 유지관리를 비교적 편하게 할 수 있음

타입

어떤 값의 유형 및 종류

타입에 따라 값이 차지하는 메모리 공간의 크기와, 값이 저장되는 방식이 결정됨

기본 타입

  • 값 저장시, 실제 값 저장

  • 정수 타입(byte, short, int, long), 실수 타입(float, double), 문자 타입(char), 논리 타입(boolean)

참조타입

  • 값 저장시, 데이터가 저장된 곳을 나타내는 주소값 저장

  • 객체의 주소 저장, 8개의 기본형을 제외한 나머지 타입

리터럴

문자가 가리키는 값 그 자체

예시)

//num에 할당하고 있는 1이 **리터럴**
num = 1;
float weight =80.7f;
long anyThingLong = 12345678910L;
double anyThingDouble = 12345678910D;

num에 할당하고 있는 1이 리터럴

정수 타입

타입메모리범위
byte1byte-128(-2⁷) ~ 127(2⁷ - 1)
short2byte-32,768(-2¹⁵) ~ 32,767(2¹⁵ - 1)
int4byte-2,147,483,648(-2³¹) ~ 2,147,483,647(2³¹ - 1)
long8byte-9,223,372,036,854,775,808(-2⁶³) ~ 9,223,372,036,854,775,807(2⁶³ - 1)

실수 타입

타입메모리범위
float4byte음수 : -3.4 10³⁸ ~ -1.4 10-⁴⁵
양수 : 1.4 10⁻⁴⁵ ~ 3.4 10⁻³⁸
double8byte음수 : -1.8 10³⁰⁸ ~ -4.9 10⁻³²⁴
양수 : 4.9 10⁻³²⁴ ~ 1.8 10³⁰⁸

논리타입

참/거짓을 저장할 수 있는 데이터 타입으로 true or false를 값으로 가짐

데이터의 최소 단위가 1byte이기 때문에 boolean형은 1byte(8bit)

//비가 오면 true, 날이 좋으며 false
boolean rainy = true;
boolean sunny = false;

문자타입

2byte 크기의 char형 오직 하나만 존재함

문자 타입 변수를 선언하면 해당 변수에 오직 하나의 문자형 리터럴을 저장할 수

있으며 문자형 리터럴을 작성할 때에는 반드시 큰 따옴표(””)가 아닌 작은 따옴

(’’)를 사용하여야 함

char grade = 'A'

자동 타입 변환

타입이 자동으로 변환되는 경우,

  • 바이트 크기가 작은 타입에서 큰 타입으로 변환시 (예 : byte → int)

  • 덜 정밀한 타입에서 더 정밀한 타입으로 변환시 (예 : 정수 → 실수)

byte(1) -> short(2)/char(2) -> int(4) -> long(8) -> float(4) -> double(8)

수동 타입 변환

더 큰 데이터 타입을 작은 데이터 타입의 변수에 저장하기 위해서는 수동으로 타

입을 변환해주어야 하는데 이걸 캐스팅(casting)이라고 함


✨느낀 점&자기 선언

코딩을 하기 전, 자바 언어 자체의 이해도가 중요하다는 것을 느꼈다.

코드스테이츠 백엔드 코스가 거의 마무리 되었지만, 그동안 열심히 공부하지 않은 부분들과 넘어간 부분들이 많기 때문에 앞으로 주어진 시간동안 열심히 복습하면서 블로깅을 열심히 하려 한다!


🔗레퍼런스

참고 강의/글

  • 점프투자바
  • 코드스테이츠
  • 패스트캠퍼스 한번에 끝내는 java

공부할 예정

  • java int to string
  • java string to int
profile
이제는 더이상 물러날 곳이 없다

0개의 댓글