[Java] - 기본 자료형

이창희·2022년 4월 7일
1

Java

목록 보기
1/13
post-thumbnail

기본자료형

1. 정수형

byte와 short

  • byte: 1바이트 단위의 자료형 동영상, 음악 파일, 실행 파일의 자료를 처리할 때 사용한다.
  • short: 2바이트 단위의 자료형 C/C ++ 언어와 조합 시 사용한다.

현업에서는 잘 사용되지 않는다고 한다.
(예전과 다르게 메모리를 아껴쓸 필요가 없기 때문)

int

  • 자바에서 사용하는 정수에 대한 기본 자료형이다.
  • 4바이트 단위의 자료형이다.
  • 프로그램에서 사용하는 모든숫자(리터럴)은 int로 저장된다.
  • 32 비트를 초과하는 숫자는 long 자료형으로 처리한다.

long

  • 8바이트 자료형이다.
  • 숫자의 뒤에 알파벳 L또는 l을 써서 long형임을 표시한다.
int num = 12345678900 //오류 
long lnum = 123456789 //오류 
long lnumber = 12345678900: //ok

2. 실수형

1. 부동소수점 방식

  • 실수는 정수 보다 정밀하기 때문에 정수와는 다른 방식으로 표현해야한다.
  • 부동 소수점 방식으로 실수 값 0.1표현한다.
  • 지수부와 가수부로 표현 한다.
  • 정규화 : 가수가 밑수보다 작은 한 자리까지 가수로 표현 되는 것

2. float형과 double형

  • float 형 -- 부호비트 , 지수부(8비트),가수부(23비트) 32비트로 표현한다.

  • double 형 -- 부호비트 , 지수부(11비트), 가수부(52비트) 64비트로 표현한다.

현업에서는 대부분 double 형을 사용한다.

3. 부동 소수점 방식의 오류

지수와 가수로 나타내는 부동 소수점 방식에서는 지수부가 0을 표현할 수 없기 때문에 약간의 오차가 발생할 수 있다.

3. 문자형

1. 문자도 정수로 표현한다.

  • 어떤 문자를 컴퓨터 내부에서 표현하기 위해 특정 정수 값을 정의한다.
  • A는 65
  • 문자세트: 각 문자를 얼마로 표현할 ㄳ인지 코드 값을 모아둔 것을 문자세트라한다. (ex.ASKII,eus-kr,utf-8,utf-16)
  • 자바는 문자를 나타내기 위해 UNICODE를 사용한다..

2. 문자형 변수 선언과 사용하기

  • 문자를 위한 데이터 타입 char ch = 'A'

    문자와 문자열은 엄연히 다른 변수이다.
    문자: char , ' '(홑 따옴표사용)
    문자열: String, " "(쌍 따옴표 사용)

  • 내부적으로 숫자로 표현되므로 숫자를 넣어도 문자가 출력될 수 있음 char ch2 = 66;

4. 논리형

  • true(참), false(거짓) 두 가지만 나타낸다
  • 1바이트를 사용 한다.
  • 값이 존재하는지, 배열이 비었는지, 결과가 참인지 거짓인지등을 표현
  • boolean 을 사용하여 선언한다.

지역 변수 자료형 없이 사용하기 (자바 10 지원 됨)

  • Local variable type inference (지역 변수 타입 추론)
  • 추론 가능한 변수에 대한 자료형을 선언하지 않는다.
  • 한번 선언하여 추론 된 변수는 다른 타입의 값을 대입 할 수 없다.
  • 지역 변수만 사용 가능하다.

5. 변하지 안는 상수와 리터럴, 변수의 형 변환

상수(constant) 선언하기

  • 상수는 변하지 않는 수이다.
  • 원주율 3.14, 1년 12개월 등
  • final 예약어를 사용하며 선언한다.
  • 상수를 사용하면 변하지 않는 값을 반복하여 사용할 때 의미있는 문자로 인식하기 쉽고 혹, 변하더라도 선언한 부분만 변경하면 되므로 수정할 필요가 없다.
package ch10;

publci class ConstantTest {
	
	public static void main(String[] args) {

		final int Max_NUM = 100;
		final int MIN_NUM;
		// 상수를 선언할때 대문자로 선언하고 길 경우 _를 사용한다.

		MIN_NUM = 0;

		System.out.println(MAX_NUM);
		System.out.println(MIN_NUM);

	}
}

리터럴(literal)

  • 프로그램에서 사용하는 숫자,문자,논리값을뜻한다.
  • 리터럴은 상수 풀에 있다.
  • 정수 리터럴은 int 로 실수 리터럴은 double로 저장됨 정수의 범위가 넘어가는 경우는 L,l을 , floar로 사용하려는 경우는 F,f 식별자를 써줘야 한다.

형병환(type conversion)

  • 서로 다른 자료형 간에 연산등의 수행을 위해 하나의 자료형으로 통일하는 것
  • 묵시적 형 병환(explicit type conversion)과 명시적 형 변환(implicit type conversion)이 있다.

묵시적 형변환

  • 바이트 크기가 작은 자료형에서 큰 자료형으로 형 변환은 자동으로 이루어 진다.
  • 덜 정밀한 자료형에서 더 정밀한 자료형으로 형 변환은 자동으로 이루어 진다.

명시적 형변환

  • 바이트 크기가 큰 자료형에서 작은 자료형으로의 형 변환은 값의 손실이 일어나기 떄문에 자동 형변환이 일어나지 않는다.
  • 하지만 자료형앞에 바꾸고자 자료구조를 작성하면 명시적으로 형변환이 가능하다.
  • 자동 형변환이 아니기 때문에 값의 손실이 일어날 수도 있다.
byte bNum = 10;
int iNum = bNum;

int iNum1 = 20;
float fNum = iNum2;

int iNum = 10;
byte bNum = (byte)iNum;

double dNum = 3.14;
int iNum2 = (int)dNum; 
profile
백앤드 개발자를 꿈꾸는 개발자 지망생입니다.

0개의 댓글