☕JAVA/🔎 공부 [JAVA]

[JAVA] 데이터타입 - 기본형 타입 / 참조형 타입

디카페인라떼 2022. 8. 9. 23:03

데이터 타입은 기본형 타입과 참조형 타입 두 가지로 나뉜다.

 

기본형타입 (클래스가 될 수 없음)

  • 가장 기본이 되는 데이터 타입으로써 정수형, 실수형, 문자형, 불린형을 의미한다.

출처 : https://school.programmers.co.kr/learn/courses/5/lessons/111

논리형 = 불린형

  • 논리형은 크기가 1byte이고 true와 false 중에 한 가지 값을 가질 수 있다.

문자형

  • 문자형은 char로 2byte크기를 가집니다. 문자는 작은따옴표를 이용하여 한 글자를 표현할 수 있다.

정수형

  • 정수형은 정수를 표현하는 데이터 타입인데 표현할 수 있는 정수의 범위에 따라서 다양하게 제공된다.
  • 정수형에서 가장 자주 사용하는 int는 4바이트이다.
  • long형은 8byte크기를 가진다. int 보다 더 큰 범위의 정수를 표현하고 싶을때 사용한다.

실수형

  • 실수형은 float과 double형이 있다.
  • float은 4바이트, double은 8바이트로 double은 float보다 더 큰 범위의 실수를 표현할 수 있다.

리터럴 // 잘모르겠음..

  • 컴퓨터 과학 분야에서 리터럴이란, 소스 코드의 고정된 값을 대표하는 용어다.
  • 리터럴은 일종의 값이다. true, false, 10, 11.1, a 등 이런 값 자체를 리터럴이라고 한다.
boolean isFun = true; //논리형
		
char c ='f';//문자형 -한글자만!
		
int x = 59;//정수형
		
long bing = 345443315L;//정수형! int보다 큰 값
		
float f = 32.4F;//실수형
		
double d = 342151.5;//실수형 float보다 큰 값

기본형 타입(형)변환

  • 변수 또는 리터럴 타입을 다른 타입으로 변환하는 것이다.

묵시적 형변환=암묵적 형변환

  • 크기가 작은 타입-> 크기가 더 큰 타입으로 바꿀 때에는 묵시적으로 형을 바꾸어준다 

명시적 형변환 = 강제형변환

  • 크기가 큰 타입 -> 크기가 작은 타입으로 바꿀때는 병시적으로 변환을 해주어야 한다.
int x = 50000;
long y = x; // 묵시적 형변환
		
long x2 = 5;
//int y2 = x2; (묵시적으로 하려하면 컴파일 오류남)
int y2 = (int)x2; //강제형변환
크기가 큰 것 크기가 작은 것
long int
double float

참조형 타입

  • 기본형 타입을 제외한 모든 타입

너무 많지만 .. 자주 쓰는 것 위주로 한다면 보통

  • 배열(array[])
  • 열거(enum)
  • 클래스(class)
  • 인터페이스(interface)  ... 이 외에도 사용자가 마음대로 설정 가능

 

❗❗ 기본형과 참조형의 차이 

기본형 변수 안에 직접 값들을 넣을 수 있음(스택 영역에 저장)
참조형 변수 안에 값들을 저장하고 있는 객체들의 주소를 가짐.(힙 영역에 저장)

스택과 힙

  • 스택
    • 기본형 타입 변수들과 그 값들이 함께 저장된다.
    • 힙 영역에 저장되어 있는 참조형 타입 변수들의 reference(주소)가 저장된다.
    • 정적인 것들이 저장되는 곳
    •  참조형 타입의 변수들이 저장된다. (new연산자를 통해 생성된 인스턴스 변수가 저장된다.) 
    •  (cf. 인스턴스 변수의 reference는 스택에 저장)
    • 동적인 것들이 저장되는 곳