Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백준 java
- 백엔드 개발자
- 알고리즘풀이
- Java
- 프리온보딩
- 개발자
- 백준 자바
- 개발자취준
- 개발공부
- cs지식
- apm 수동설치
- 백엔드
- 코테
- 기술면접
- 코딩테스트
- IT취업
- 자바
- 백준
- 프리온보딩 백엔드 챌린지
- IT공부
- 알고리즘
- IT개발
- 프로그래머스
- 원티드
- IT취준
- IT개발자
- 백엔드개발자
- apm 소스설치
- IT
- 코딩
Archives
- Today
- Total
코이팅
Java 자료형(Java Data Typ) 본문
728x90
반응형
Java 자료형의 유형
Java 자료형의 유형은 크게 기본 자료형과 참조 자료형으로 나뉩니다.
🟡 기본 자료형 (primitive data type)
- ≒ 기본 타입 (primitive type)
- ≒ 원시 타입
- 자바 컴파일러에 의해서 해석되는 자료형
- 실제 값을 갖는 자료형
- 자바에서 여러 형태의 타입을 미리 정의하여 제공
- 정수, 실수, 문자, 논리을 저장하는 자료형
🟡 참조 자료형 (primitive data type)
- ≒ 참조 타입 (reference type)
- 기본형을 제외한 타입들이 모두 참조 자료형입니다.
- 값이 아닌 객체의 주소를 가지고 있는 자료형
- 자바 라이브러리 API에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 선언하는 경우
- 배열, 클래스, 인터페이스 타입 자료형
Java의 기본 자료형
🟡 Java 기본 자료형의 특징
- 총 8가지의 기본형을 미리 정의하고 제공합니다.
- 기본 자료형은 반드시 사용하기 전에 선언(Declared)되야 합니다.
- OS(운영체제)에 따라 자료형의 길이가 변하지 않습니다.
- 비객체 타입이다. 따라서, null 값을 가질 수 없습니다.
** 만약 기본형에 null을 넣고 싶다면, Wrapper Class를 활용해야 합니다. - 스택(Stack) 메모리에 저장됩니다.
🟡 Java 기본 자료형의 종류
다음 표는 자바의 기본 자료형입니다.
자료형 | 데이터 | 크기(byte) | 표현가능범위 |
boolean | 참과 거짓 | 1byte | true, false |
char | 문자 | 2byte | 유니코드 문자 |
byte | 정수 | 1byte | -128 ~ 127 |
short | 정수 | 2byte | -32,768 ~ 32,767 |
int | 정수 | 4byte | -2,147,483,648 ~ 2,147,483,647 |
long | 정수 | 8byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
float | 실수 | 4byte | ± (1.40 x 10^-45 ~ 3.40 x 10^38 ) |
double | 실수 | 8byte | ± (4.94 x 10^-324 ~ 1.79 x 10^308 ) |
정리하자면,
- 정수 표현 : byte, short, int, long
- 실수 표현 : float, double
- 문자 표현 : char
- 참과 거짓의 표현 : boolean
🟡 boolean
- 논리형, 참과 거짓을 저장하는 타입입니다.
- boolean의 기본값은 false입니다.
- 주로 yes/no, on/off 등의 논리 구현에 주로 사용되며 두가지 값만 표현하므로 가장 크기가 작습니다.
- boolean은 실제로 1bit면 충분하지만, 데이터를 다루는 최소 단위가 1byte이므로 메모리 크기가 1byte입니다.
🟡 char
- 문자형, 2byte의 문자 하나를 입력하는 데이터형입니다.
- '문자 1개'를 저장하는 데이터형이라는 것을 알아야 합니다.
- char 변수명 = '값';
🟡 byte
- 정수형, 이진데이터를 다루는데 사용되는 타입니다.
🟡 int
- 정수형, 자바에서 정수 연산을 하기 위한 기본 타입입니다.
- byte 혹은 short 의 변수가 연산을 하면 연산의 결과는 int형이 됩니다.
🟡 long
- 정수형, 수치가 큰 데이터를 다루는 프로그램(은행 및 우주와 관련된 프로그램)에서 주로 사용하는 타입입니다.
- long 타입의 변수를 초기화 할 때는 정수값 뒤에 알파벳 'L'을 붙여서 long 타입(즉, 8byte)의 정수 데이터임을 알려주어야 합니다.
- 정수값이 int의 값의 저장 범위를 넘는 정수에서 'L'을 붙이지 않는다면 컴파일 에러가 발생합니다.
long l = 2147483648; // 컴파일 에러 발생합니다.
long l = 2147483648L; // 컴파일 에러 발생하지 않습니다.
🟡 float, double
- 실수형입니다.
- float(4바이트) / double(8바이트)
- 실수를 가수와 지수 형식으로 저장하는 부동소수점 방식으로 저장됩니다.
- 가수를 표현하는데 있어 double형이 float형보다 표현 가능 범위가 더 크므로 double형이 보다 정밀하게 표현할 수 있습니다.
- 자바에서 실수의 기본 타입은 double형이므로 float형에는 알파벳 'F'를 붙여서 float 형임을 명시해주어야 합니다.
float f = 1234.567; // 무조건 double 타입으로 이해하려고 하므로 컴파일 에러가 발생합니다.
float f = 1234.567F; // float type이라는 것을 표시해야 합니다. 컴파일 에러 발생하지 않습니다.
Java의 참조 자료형 (reference data type)
🟡 Java 참조 자료형의 특징
- 빈 객체를 의미하는 Null이 존재합니다.
- 문법상으로는 에러가 없지만 실행시켰을 때 에러가 나는 런타임 에러가 발생합니다.
ex) 객체나 배열을 Null 값으로 받으면 NullPointException이 발생하므로 변수 값을 넣어야 합니다. - new로 인하여 생성하는 것들은 메모리 영역인 Heap 영역에 생성을 하게되고, Garbage Collector가 돌면서 메모리를 해제합니다.
- Heap 메모리에 생성된 인스턴스는 메소드나 각종 인터페이스에서 접근하기 위해 JVM의 Stack 영역에 존재하는 Frame에 일종의 포인터(C의 포인터와는 다르다)인 참조값을 가지고 있어 이를 통해 인스턴스를 핸들링합니다.
🟡 Java 참조 자료형의 종류
- class type (클래스)
- interface type (인터페이스)
- array type (배열)
- enum type (열거)
- 기타..
❗️String Class (문자열)
String Class는 참조형에 속하지만 기본적인 사용은 기본형처럼 사용합니다.
- 불변(immutable)하는 객체입니다.
- String 클래스에는 값을 변경해주는 메소드들이 존재하지만, 해당 메소드를 통해 데이터를 바꾼다 해도 새로운 String 클래스 객체를 만들어내는 것입니다.
- 일반적으로 기본자료형의 비교는 '== 연산자'를 사용하지만 String 객체간의 비교는 '.equals() 메소드'를 사용해야 합니다.
[참고 링크]
https://sublivan.tistory.com/4#String%--Class%---%EB%AC%B-%EC%-E%--%EC%--%B--
728x90
반응형
'JAVA' 카테고리의 다른 글
JVM(Java Virtual Machine)이란? (0) | 2023.01.05 |
---|---|
자바(Java)란? (0) | 2023.01.05 |
Comments