☕️Java 기본형(Primitive type), 형변환(Casting), 연산자

hamsang·2022년 7월 12일
0

Java

목록 보기
17/36

시작하며...🏃🏻‍♀️

📍 자바에서는 모든 변수에 타입을 정의하고 있으며, 변수가 가지는 타입에 따라 담을 수 있는 값의 종류가 달라집니다. 변수 타입과 값은 서로에게 상호보완적인 요소입니다. 알맞은 형에 값을 전달해야만 값을 정상적으로 저장할 수 있게 됩니다!

📍 변수 타입은 크게 기본형(primitive), 참조형(Reference type) 으로 구분할 수 있습니다.


📍 기본형(Primitive type)

기본형은 실제 값(데이터)를 담을 수 있는 변수의 타입입니다. 기본형의 개수는 총 8개로 구분하며 크게는 논리형, 문자형, 정수형, 실수형으로 구분할 수 있습니다.

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

🦷 논리형 변수 타입 (boolean)
: 논리의 참과 거짓을 의미합니다. true, false 중 하나의 값을 저장합니다.

🦷 문자형 변수 타입 (char)
: 문자(charCharacter)를 저장합니다.

🦷 정수형 변수 타입 (byte, short, int, long)
: 정수(Integer)로 표현되는 숫자를 저장합니다.

🦷 실수형 변수 타입 (double, float)
: 실수(Floating point)로 표현되는 숫자를 저장합니다.


🍄 기본형 변수의 크기

분류,크기1248
논리형boolean
문자형char
정수형byteshortintlong
실수형floatdouble

📍 형변환(Casting)

📍 Java에서 연산은 "2(byte) + 3(byte)"와 같이 동일한 데이터 타입에서 가능합니다.

하지만, 프로그램을 만들다 보면 "2(byte) + 3.5(double)"과 같이 서로 다른 데이터 타입끼리의 연산이 필요할 때가 있습니다. 이럴경우 변수의 데이터 타입을 바꿔주는 작업이 필요한데, 이것이 데이터 타입의 형변환(타입변환)입니다.

📍 형변환은 상황에 따라서, 혹은 필요에 따라서 자료형(data type)이 다른 것으로 변환되는 것을 말합니다. 특별한 경우에 자동적으로 발생하기도 하며, 강제로 개발자가 변환시킬 수도 있습니다.

📍 자동형변환 (Promotion, 암묵적 형변환)

  • 데이터 손실이 없는 한에서 자동으로 형변환됨.
  • 작은 메모리 크기의 타입을 큰 메모리 크기의 타입으로 변환함
    (단, 메모리 크기에 관계 없이 정수는 모든 실수 데이터 타입에 자동적으로 형변환이 가능하다.)
  • 자동 형변환이 이루어지는 순서
    - byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)

🍄 자동 형변환 예시

public class promotion {
    public static void main(String[] args) {
        
        byte a = 10;
        //정수 10을 byte 데이터 타입의 변수인 a에 저장
        int b = a;
        //byte 데이터 타입의 변수인 a를 int 데이터 타입의 변수 b에 저장
    }
}

📍 강제형변환(Casting)

메모리 크기가 큰 변수 앞에 변환하고자 하는 데이터 타입을 괄호에 감싸 적는다

작은 크기 타입 = (작은 크기 타입) 큰 크기 타입

🍄 강제형변환 예시

public class Casting {
    public static void main(String[] args) {
        int intValue = 1;
        byte byteValue = (byte)intValue;
    }
}
public class Casting {
    public static void main(String[] args) {
        
        int intVal = 44032;
        char charVal = (char)intVal;
        System.out.printf(charVal);
        //44032에 해당되는 유니코드 '가' 출력
        
        long longVal = 500;
        intVal = (int)longVal;
        System.out.printf(intVal);
        //500은 1byte 이내이므로 값 손실 없음
        
        double doubleVal = 3.14;
        intVal = (int)doubleVal;
        System.out.printf(intVal);
        // 실수타입(float, double)은 소수점 이하 부분이 버려지고(값 손실) 정수 부분만 저장된다.
        
    }
}

📍 연산자

  1. 산술 연산자
  2. 대입 연산자
  3. 증감 연산자
  4. 비교 연산자
  5. 논리 연산자
  6. 비트 연산자
  7. 삼항 연산자
  8. instanceof 연산자

📍 주요 연산자


🍄 산술 연산자(arithmetic operator)

산술 연산자는 사칙 연산을 다루는 연산자로, 가장 기본적이고 많이 사용되는 연산자입니다. 피연산자들의 결합 방향은 왼쪽에서 오른쪽입니다.

산술연산자설명
+더하기
-빼기
*곱하기
/나눈 몫
%나눈 나머지

🍄 나머지 주요 연산자

연산자예시
대입=, +=, -=, *=, /=, ^= 등
증감++,--
비교==, !=, >, <, <=, >= 등
논리!, &, && 등
비트~, &, ^
쉬프트<<, >>, >>>
삼항연산자(조건식) ? A:B

📍 instanceof 연산자

객체 타입을 확인하는 연산자이다. 형변환 여부를 확인하며, true, false로 결과를 반환한다. 쉽게 말해, 해당 클래스가 자기 집이 맞는지 확인해주는 연산자이다.

객체 instanceof 클래스를 선언해 사용한다!

profile
햄생

0개의 댓글

관련 채용 정보