본문 바로가기

국비학원 수업

22.08.24 수업_Java 데이터 타입 및 연산자

이론

 

  • 데이터 타입 (64비트)
데이터 종류 타입명 크기 값의 표현 범위
정수형  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 32비트 부동 소수점
double 8byte 64비트 부동 소수점
문자형 char 2byte 16비트 유니코드 문자
논리형 Boolean 1byte true 또는 false
◈프로그램은 무조건 작게 짜야 좋은것!! = 효율적인 자원활용

    (1byte=8bit)

 

  • 리터럴 _ 상수
    프로그램에서 사용되는 고정된 값을 말하며, 어떤 계산이나 처리 없이 직접 사용되는 값.
    정수 리터럴의 기본타입은 int
    Long타입의 리터럴은 접미사로 L이나 l(영소문자)을 붙인다.
       Ex)
         int a = 10;
         char c = ‘q’;
         double d = 2.56;
      정수 10, 문자q, 실수 2.56이 리터럴.
  • ->Long value = 3948L;
     int valDec = 30; //10진수
     int valHex = 0x3e; //16진수 (테트리스)
     int valBin = 0b1001; //2진수
  • 2진수 : 0,1의 숫자로 데이터를 표현
    8진수 : 0~7까지의 숫자로 표현
    16진수 : 0~9 and A(10)~F(15) 까지의 숫자와 문자로 표현

 

  • 실수 리터럴
    실수 리터럴의 기본 타입은 double (float 타입의 리터럴은 접미사 f를 붙인다).
    Ex)
      double = 12.5;
      float = 34.6f;
  • 문자 리터럴
    문자 리터럴은 ‘a’와 같은 문자 한 개나,  “apple”과 같은 문자열 값.
    Ex)
      char = ‘x’;
      String = “abc”;
  • 자바에서 특수 문자를 출력하기 위한 이스케이프 문자를 제공.
    Ex)
      System.out.println(“hello”); //hello
      System.out.println(“ \”hello\” ”); //”hello”

 

  • 형 변환 (ref.이것이 진짜 자바다 p.60)
  • 형 변환이란 프로그램 문장에서 타입이 일시적으로 변하는 것.
    Ex)
     int a = 12, b = 13;
     float c = 0;
     c = (a+b)/2;
     System.out.println(“a와 b의 평균은 “+c+” 이다.”);
      >a와 b의 평균은 12.0
      >우선 0.5가 사라진 것은 정수끼리의 연산 결과는 정수이기 때문.
    cf. 파이썬은 정수/정수 도 실수로 표현한다.
  • 자동 형변환의 방향
     byte -> short, char -> int -> long -> float -> double
                                         수체계가 많기 때문
    char형은 양의 정수, 음의 정수를 표현할수있다.
    Ex)
     float f = 12.5f;
     int a = (int)f; //강제 형 변환(Testing)
     System.out.println(“a= “+a);

연산자

  • 산술 연산자 (+ - * / %)
    % : (나누기를 계산하고난 몫을 제외한) 나머지를 나타냄
  • 관계 연산자
    == 같다
    != 같지않다
    > 크다
    >= 크거나(or) 같다
    < 작다
    <= 작거나(or) 같다
  • 논리 연산자
    : 두 피 연산자의 논리 AND, 또는 OR 연산을 한다
        && : 논리 AND, 피 연산자가 모두 true 여야 결과가 true이다
         || : 논리 OR, 피 연산자 하나만 true 여도 결과가 true이다

 

     Short-circuit 원리
          &&(내림 개념) : 첫 피연산자 결과가 false 이면 두번째 부터 계산하지 않는다
          ||(올림 개념) : 첫 피연산자 결과가 true 이면 두번째 부터 계산하지 않는다

22.08.25

  • 단항 연산자 (메모리 절약을 위해, 속도향상)
     +/- : 양/음
     ++ : 전위 증가 (ex.++a) / 후위 증가 (ex.a++)
     -- : 전위 감소 (ex.--a) / 후위 감소 (ex.a--)
     ! : 논리적 반전 (true/false 반전)
    Ex)
    int a=10
    b=++a
    일때 b값을 출력하면, 후위증가이므로 11이 출력된다
    b=a-- 이면,
    전위감소이므로 b값은 10이 출력된다
  • 삼항 연산자
     Ex)
     c = (조건) ? "true일때 나타낼 값" : "false일때 나타낼 값";
  • 대입연산자 : 우변의 값을 좌변에 할당한다. (+=, -=, *=, /=, %=)
      Ex1)
     int a = 1; // a = a+1
     a +=1;
     System.out.println(a);
    ->결과값 2 출력
대입연산자     설명
=    왼쪽의 피연산자에 오른쪽의 피연산자를 대입함
+=    왼쪽의 피연산자에 오른쪽의 피연산자를 더한 후, 그 결과값을 왼쪽의 피연산자에 대입함
-=    왼쪽의 피연산자에서 오른쪽의 피연산자를 뺀 후, 그 결값을 왼쪽의 피연산자에 대입함
*=    왼쪽의 피연산자에 오른쪽의 피연산자를 곱한 후, 그 결값을 왼쪽의 피연산자에 대입함
/=    왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 결값을 왼쪽의 피연산자에 대입함
%=    왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 왼쪽의 피연산자에 대입함
  • 논리부정 연산자 : true를 false로 false를 true로 변경하기 때문에 boolean 타입에만 사용가능.
    주로 두가지 상태를 번갈아가며 변경하는 토글(toggle:디지털 신호가 1과 0을 반복적으로 되풀이하는 상태) 기능을 구현할 때 사용한다.
  • 비트 반전 연산자 : 산출타입은 int 이며, byte, short, int, long의 정수타입의 피연산자에만 사용됨
    비트값 0은 1로, 1은 0으로 반전한다.
  • 정수타입의 연산결과가 int타입으로 나오는 이유는 자바 가상기계(Java Vurtual Machine)가 기본적으로 32비트 단위로 계산하기 때문이다.