Java의 데이터 유형: 기본 및 비기본 데이터 유형

게시 됨: 2020-12-01

목차

소개

모든 프로그래밍 언어에서 데이터 유형은 컴퓨터나 컴파일러가 프로그래머가 데이터를 할당하려는 방법을 알 수 있도록 하는 데이터의 귀속입니다. 데이터 유형은 값을 할당하는 동안 변수나 함수에 제한을 추가합니다.

이러한 데이터 유형은 해당 유형의 값을 저장할 수 있는 방법 및 데이터에 대해 수행할 수 있는 작업과 같은 데이터의 동작을 정의합니다. Java에서 제공하는 모든 데이터 유형을 살펴보겠습니다.

기본 데이터 유형

기본 데이터 유형은 더 간단한 데이터 유형으로 더 이상 분할할 수 없습니다. Java는 8가지 기본 데이터 유형을 제공합니다. 살펴보겠습니다!

바이트

바이트는 -128에서 127 사이의 정수를 저장하는 정수 유형이며, 1바이트의 메모리만 필요하기 때문에 작은 숫자를 처리하는 경우 메모리 제약 문제를 해결합니다. byte 변수는 "byte" 키워드를 사용하여 선언할 수 있습니다. 127보다 큰 값을 바이트에 할당하면 "호환되지 않는 유형" 오류가 발생합니다.

바이트 n1 = 98 ;

시스템 . 밖으로 . println(n1);

위의 스니펫은 예상대로 98을 인쇄합니다.

짧은

short는 -32768에서 32767 사이의 정수를 저장하는 Integer 유형이며 디스크에서 2바이트의 메모리를 사용합니다. short 변수는 "short" 키워드를 사용하여 선언할 수 있습니다. 짧은 변수에 32767보다 큰 값을 할당하면 "호환되지 않는 유형" 오류가 발생합니다.

짧은 n1 = 9876 ;

시스템 . 밖으로 . println(n1);

위의 스니펫은 9876을 출력으로 인쇄합니다.

정수

int는 -2147483648에서 2147483647 사이의 정수를 저장하는 정수형으로 디스크에서 4바이트의 메모리를 소비합니다. 일반적으로 프로그래머는 int를 사용하여 숫자 값을 저장하는 변수를 선언하는 것을 더 선호합니다. 범위보다 큰 값을 할당하려고 하면 Java 컴파일러에서 "호환되지 않는 유형" 오류가 발생합니다.

정수 n1 = 987654 ;

시스템 . 밖으로 . println(n1);

위의 스니펫은 987654를 출력으로 인쇄합니다.

이제 이것은 디스크에서 8바이트의 메모리를 소비하는 흥미로운 데이터 유형입니다. -9223372036854775808 ~ 9223372036854775807 범위의 정수를 저장하는 정수형인데, 그 범위를 읽는데 상당한 시간이 걸린다.

이것은 우리가 수행하는 작업에 대해 int 데이터 유형이 오버플로될 때 사용됩니다. 할당하는 동안 값을 'L'로 끝내야 함을 기억하십시오.

n1 = 987654321098765L ;

시스템 . 밖으로 . println(n1);

위의 스니펫은 예상대로 987654321098765를 인쇄합니다.

뜨다

Float은 부동 소수점 데이터 유형입니다. 즉, 소수점 정밀도를 포함한 값을 저장할 수 있습니다. 모든 지출을 기록하는 코드를 개발했지만 매우 엄격하고 지출한 각 1페니를 추적하려고 한다고 가정해 보겠습니다. 이 경우 int는 정수만 저장할 수 있기 때문에 int는 작업을 수행하지 않습니다.

이 작업에는 부동 소수점 데이터 유형이 필요합니다. float는 3.4e-038에서 3.4e+038 사이의 소수를 저장할 수 있으며, 최대 7자리 소수 자릿수를 저장할 수 있습니다. 값은 'f'로 끝나야 함을 기억하십시오.

부동 소수점 n = 98.76f ;

시스템 . 밖으로 . println(n);

위의 스니펫은 98.76을 출력으로 인쇄합니다.

읽기: JavaBeans 속성 및 이점: 어떻게 활용해야 합니까?

더블

Double은 float와 유사하지만 이름에서 알 수 있듯이 소수 정밀도의 경우 float의 두 배입니다. 15자리 십진 정밀도를 가질 수 있으며 1.7e-308에서 1.7e+308 범위의 소수를 저장할 수 있습니다. 값은 "d"로 끝나야 함을 기억하십시오.

float와 double의 차이점을 이해하기 위해 코드를 살펴보겠습니다.

공개 클래스 테스트 {

공개 정적 무효 메인 ( 문자열 args[])

{

float a1 = 1.f / 70 ;

부동 소수점 b1 = 0 ;

이중 a2 = 1.d / 70 ;

이중 b2 = 0 ;

부동 소수점 f1 = 1f ;

이중 f2 = 1d ;

( int i = 0 ; i < 490 ;i ++ ){

b1 = b1 + a1;

b2 = b2 + a2;

if (i > 1 && i <= 50 ){

f1 = f1 * 나;

f2 = f2 * 나;

}

}

시스템 . 밖으로 . println(b1); //라인1

시스템 . 밖으로 . println(b2); //라인2

시스템 . 밖으로 . println(f1); //라인3

시스템 . 밖으로 . println(f2); //라인4

}

}

"(1/70)*490" 식을 직접 계산하면 답이 7이지만 float 및 double을 사용하여 Java에서 실행하면 다른 답이 나옵니다. 위의 스니펫에서 float 변수와 double 변수는 1/70로 초기화되며 이 값을 다른 변수에 490번 더하면 답이 7이 됩니다.

위의 스니펫을 실행하면 1행은 7자리 소수점 정밀도를 갖는 6.9999795를 인쇄하는 반면, 2행은 15자리 소수점 정밀도를 갖는 6.999999999999978을 인쇄합니다. 따라서 float가 정확한 소수 정밀도를 제공하지 않으면 double을 선택할 수 있습니다. 또한 float의 범위가 double에 비해 작기 때문에 float는 무한대에 도달할 가능성이 더 큽니다.

예를 들어, 상당히 큰 숫자의 계승을 저장하면 해당 변수가 무한대에 도달합니다. 위의 스니펫에서 50의 계승을 저장하는 데 두 개의 변수가 사용되었으며 결과를 인쇄할 때 3행은 무한대를 인쇄하고 4행은 3.0414093201713376E64를 인쇄하는 것을 볼 수 있습니다. 따라서 float가 숫자를 충족하지 않으면 범위를 선택하면 두 배를 선택할 수 있습니다.

float와 double은 둘 다 'e'가 있는 과학적 숫자로 사용할 수 있습니다. 여기서 'e'는 10의 거듭제곱을 나타냅니다. 예를 들어 3e2f는 float 데이터 유형에서 300.0과 동일하고 3e4d는 double 데이터 유형에서 30000.0과 동일합니다.

부울

boolean 데이터 타입은 true와 false의 두 가지 값만 가질 수 있으며, java에서 boolean 키워드를 사용하여 선언합니다. 이 데이터 유형은 일반적으로 코드에서 수행하는 변경 사항을 추적하기 위한 플래그 변수로 사용됩니다. 예를 들어 숫자가 2로 나누어 떨어지는 경우 플래그를 true로 설정하고 그렇지 않으면 false를 설정합니다.

부울 플래그 = true ;

부울 b1 = 거짓 ;

시스템 . 밖으로 . println(플래그); //참을 출력

시스템 . 밖으로 . println(b1); //거짓 출력

char 데이터 유형은 단일 문자를 저장하는 데 사용되며 이 데이터 유형은 char 키워드를 사용하여 선언할 수 있습니다. 할당하는 동안 문자를 작은따옴표로 묶어야 하며 char 데이터 유형에 소문자와 대문자를 모두 저장할 수 있음을 기억하십시오.

char 데이터 유형에 둘 이상의 문자를 저장하면 오류가 발생합니다. 또한 char 데이터 유형에 관한 재미있는 사실이 있습니다. 즉, char를 정수로 유형 변환하면 해당 문자의 ASCII 값이 저장되고 그 반대의 경우도 마찬가지입니다.

문자 c1 = ' ' ;

문자 c2 = 66 ;

시스템 . 밖으로 . println(c1); //라인1

시스템 . 밖으로 . println(c2); //라인2

시스템 . 밖으로 . println(( 정수 )c1); //라인3

위의 스니펫 라인 1에서 예상대로 'a'를 출력으로 인쇄합니다. 2행은 66이 ASCII 테이블에서 B를 참조하기 때문에 'B'를 출력으로 인쇄합니다. 3행은 'a'의 ASCII 값이므로 97을 출력으로 인쇄합니다.

그러나 하나 이상의 문자를 저장하려면 어떻게 해야 할까요? 우리는 다음 단락에서 그들에게 올 것입니다.

읽어보기: 초보자를 위한 17가지 흥미로운 Java 프로젝트 아이디어 및 주제

기본이 아닌 데이터 유형

Java의 기본이 아닌 데이터 유형은 객체를 참조하기 때문에 참조 유형이라고도 합니다. 기본이 아닌 데이터 유형은 프로그래머에 의해 생성되며 사전 정의되지 않습니다. non-primitive는 객체로 참조되기 때문에 null로 할당할 수 있습니다. 이는 primitive type의 경우가 아닙니다.

기본 데이터 유형과 달리 기본이 아닌 데이터 유형은 대문자로 시작해야 합니다. 원시가 아닌 모든 데이터 유형은 크기가 동일하고 디스크에서 동일한 메모리를 사용하지만 원시 데이터 유형의 경우에는 다릅니다.

문자열은 자바의 특수한 데이터 유형으로 프로그래머가 기본이 아닌 유형을 정의한다는 사실과 모순됩니다. 문자열 데이터 유형은 기본이 아닌 데이터 유형이지만 Java에 미리 정의되어 있으며 일부 사람들은 이를 특별한 아홉 번째 기본 데이터 유형이라고 부르기도 합니다.

이것은 char이 여러 문자를 저장할 수 없는 경우를 해결합니다. 문자열 데이터 유형은 문자 시퀀스를 저장하는 데 사용됩니다. 텍스트 시퀀스를 큰따옴표로 묶어야 한다는 것을 기억하십시오.

문자열 s1 = " 안녕하세요 " ;

시스템 . 밖으로 . println(s1);

위의 스니펫은 예상대로 "Hey There"를 인쇄합니다.

배열, 클래스, 인터페이스 등은 Java에서 원시가 아닌 데이터 유형이 거의 없습니다.

데이터 유형의 범위를 계산하는 방법은 무엇입니까?

원시 데이터 유형의 범위를 보고 나면 이것을 기억해야 하는지 의심스러울 수 있습니다. 글쎄요, 대답은 NO일 것입니다. 그러나 각 데이터 유형의 크기를 기억해야 해당 데이터 유형의 범위를 계산할 수 있습니다.

예를 들어, 바이트 데이터 유형은 디스크에서 1바이트의 메모리를 사용합니다. 컴파일러 수준에서 모든 데이터는 비트 형태로 저장되며 1바이트는 8비트입니다. 이제 8비트 중 하나는 숫자의 부호를 지정하는 데 사용되고 나머지 7비트는 실제 숫자를 저장할 수 있으므로 7비트를 사용하여 저장할 수 있는 최대 숫자는 128입니다.

따라서 -128은 바이트 데이터 유형의 하한이고 +127은 상한입니다. 0이 음수 다음의 숫자 행에서 첫 번째 숫자이기 때문입니다.

유사하게 부동 소수점 유형에서 데이터는 부호 있는 비트, 가수 및 지수의 3부분으로 분할됩니다. 가수 부분은 십진 정밀도를 저장하는 데 사용되며 float에는 23개의 가수 비트와 1개의 숨겨진 비트가 있고 double에는 52개의 가수 비트와 1개의 숨겨진 비트가 있습니다.

float의 경우 log(2^24)/log(10)은 대략 7과 같으므로 7자리 소수 자릿수입니다.

double의 경우 log(2^53)/log(10)은 대략 15와 같으므로 15자리 소수 자릿수입니다.

세계 최고의 대학 에서 소프트웨어 엔지니어링 과정 에 등록하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

우리는 Java에서 다양한 데이터 유형을 보았고 기본 및 비기본 데이터 유형, 기본 및 비기본 데이터 유형의 차이점을 이해했습니다. 데이터 유형 선언에 대한 기본 지식을 갖추기 위해 샘플 코드 조각을 살펴보았습니다.

정수 데이터 유형의 다양한 데이터 유형 범위를 계산하는 방법, 부동 소수점 데이터 유형의 소수 자릿수를 계산하는 방법을 이해했습니다.

이제 Java의 다양한 데이터 유형을 알았으므로 탐색을 시작하십시오!

Java, OOP 및 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육을 제공하는 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 이그 제 큐 티브 PG 프로그램을 확인하십시오. 9개 이상의 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

미래의 직업을 위한 준비

지금 소프트웨어 공학 석사 지원