본문 바로가기

개념정리(JAVA)

논리형 타입과 연산자

자바의 타입에는 기본형 타입과 레퍼런스 타입 2가지 종류가 있다.

  • 기본형 타입은 논리형, 문자형, 정수형, 실수형이 존재한다.
  • 논리형 : boolean
  • 정수형 : byte(1byte) short(2byte) int(4byte) long(8byte) 
    리터럴 값인 숫자 5는 int, 5L은 long 타입이다.(숫자 뒤에 L 또는 l이 붙는다.)
  • 실수형 : float(4byte, 소수 부분 6자리) double(8byte, 소수 부분 15자리)
    리터럴 값인 숫자 5.2는 double, 5.2f은 float 타입이다.(숫자 뒤에 F 또는 f가 붙는다.)
  • 문자형 : char
  • 이를 제외한 모든 타입은 레퍼런스 타입이다.

타입의 변환

double형 타입은 정수값이 잘 대입된다.

더보기

double d1 = 50;

double d2 = 500L;

int형 타입에 실수를 대입하면 오류가 발생한다. 실수는 정수를 포함하지만, 정수는 실수를 포함할 수 없기 때문에 오류가 발생한다. 

더보기

int i1 = 50.0;

int i2 = 25.4f;

때문에 실수 값을 정수에 저장하려면 형 변환을 해야한다. 변환하고자 하는 값 앞에 (변환할 타입)을 붙인다. 주의할 점은 소수점 이하 부분은 잘린다. 이를 명시적 타입 변환(강제 타입 변환)이라고 한다. 

더보기

int i1 = (int)50.0;

int i2 = (int)25.4f;

형 변환 시 지켜야할 규칙이 있는데 크기가 큰 타입은 작은 타입을 저장할 수 있지만 반대는 불가능하다는 것이다.

때문에 정수의 자동 타입 변환은

더보기

byte형 → short형 → int형 → long형 → float형 → double형

이런 식으로 이루어진다.

반대로 크기가 큰 타입을 작은 타입에 저장하려면 명시적 형 변환을 해야한다. 이 때 주의할 점은 오버플로우를 조심해야 한다. 

※ 오버플로우란? 계산 결과가 최댓값을 넘거나, 최솟값보다 작을 경우 음수는 양수로, 양수는 음수로 바뀌는 문제가 발생한다. 이를 오버플로우라고 한다

연산자(비교, 논리, 산술, 비트, 삼항, instanceof 연산자)

  • 비교 연산자 > < =
  • 논리 연산자 and( && ) or( || ) XOR( ^ ) NOT( ! )
  • and와 or은 & 이나 | 으로도 사용할 수 있는데 차이점은 &&을 사용했을 경우 and에서 하나라도 거짓이면 거짓이므로 앞에서 나온 조건이 거짓이면 뒤의 조건은 실행시키지 않고 결과를 도출해낸다. 하지만 & 하나만 사용할 경우 앞의 조건이 거짓이라해도 뒤의 조건까지 실행시키고 결과를 도출한다. | 도 마찬가지로 앞의 조건이 참이어도 뒤의 조건까지 실행시키고 진행한다.
  • 산술 연산자 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지구하기(%) ++(증가 연산자), --(감소 연산자)
  • 산술 대입 연산자 +=  -=  *=  /=  %=
  • 증가 연산자와 감소 연산자는 변수의 앞에 붙으면 전위 증가 연산자와 전위 감소 연 산자라 부르고, 변수의 뒤에 붙으면 후위 증가 연산자와 후위 감소 연산자라 말한다.
  • 정수와 실수의 최댓값과 최솟값
더보기
  • int maxInt = Integer.MAX_VALUE;
  • int minInt = Integer.MIN_VALUE;
  • double maxDouble = Double.MAX_VALUE;
  • double minDouble = Double.MIN_VALUE;
  • 비트 연산자 >> 와 <<
    더보기
    << 는 명시된 수만큼 비트들을 전부 왼쪽으로 이동시킨다. >>는 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킨다.
    만약 int a = 4; 라고 할 때, int b = a >> 1; 을 실행시키면
    a 00000000 00000000 00000000 00000100에서 비트가 우측으로 하나씩 밀리고 맨 좌측에 0이 채워져서
    b 00000000 00000000 00000000 00000010 결과가 나오게 된다.
  • 삼항 연산자 - 조건에 따라 두 가지 값 중 하나를 선택하는 연산자입니다.
    더보기
    int num = 10;
    String result = num >
    5 ? "5보다 크다" : "5보다 작다";
    System.out.println(result);
    // 5보다 크다
  • instanceof 연산자 - 객체의 타입을 확인하는데 사용됩니다. 
    더보기
    if(book instanceof Object) {    
      System.out.println("Book은 객체 입니다. ");
    }

'개념정리(JAVA)' 카테고리의 다른 글

배열과 아규먼트  (0) 2024.03.27
선형 검색과 보초법  (0) 2024.03.21
제어문  (0) 2024.03.13
Enum  (0) 2024.03.13
주석문  (0) 2024.03.13