본문 바로가기
Developer/Java

[Java] 자바의 데이터 타입

by 순수한소년 2015. 1. 15.
728x90
반응형

9. 변수 (variable)

 : 용도 -> 데이터 저장

 : 문법

  1) 변수 선언
  데이터 타입 변수명;

  2) 값 할당 (초기화 : 변수에 값을 맨 처음 설정하는 작업)
  변수명 = 값;

 : 종류
 
  1) 로컬변수 (local variable)
 : 메소드 내에서 선언된 변수
 : 메소드 호출할때 스택(stack)에 생성 - 메소드 종료시 삭제
 (메소드는 반드시 호출해야 실행된다)

: 변수 선언 한 후에 초기화를 해줘야한다

  2) 인스턴스 변수 (instance variable)
 : 메소드 밖에서 선언된 변수
 ex) int num;
 : 객체 생성시 변수가 힙(Heap)에 생성 - 객체 소멸시 삭제
 (new 이용)

: 힙 메모리에 생성

: 변수 선언만 하고 초기화 안하면, 자동으로 기본값을 저장

ex)

int num; ==> 0

float f ; ==> 0.0

boolean b;==> false

char c; ==> \u0000

String str; ==> null

 

 

  3) 클래스 변수 (class variable, static variable)
 : 메소드 밖에서 선언된 변수
 ex) static int num; // static 변수
     int num2;    // instance 변수 (앞에 static 여부)
 : 프로그램 실행시 변수가 class area 메모리에 생성 - 프로그램 종료시 삭제

  * 1) 프로그램 실행 (java.exe) --> static으로 된 변수, 메소드가 수행 (대표적으로 main 메소드)
 
    2) main 메소드 내에서 객체 생성
     ex) Hello h = new Hello();  --> 인스턴스 변수가 생성

    3) 메소드 호출 --> 로컬변수가 생성

  * 소멸은 생성의 역순

 

 


10. 데이터 타입 (Data Type)

 1) 기본 데이터 타입 (Primitive Data Type : PDT)
 
  - 수치데이터
   : 정수형 4가지
    - byte (1byte)
    - short (2byte)
    - int (4byte) - 기본
    - long (8byte)

   : 실수형
    - float (4byte)
    - double (8byte) - 기본

  - 문자데이터 (수치데이터 ==> 아스키코드 값)
   : char(2byte) (A - 65, a - 97)

  - 논리데이터
   : boolean - false(디폴트값)
 
 ----> 총 8개의 PDT 타입 존재
 ----> 기본데이터형과 관련된 클래스 (Wrapper 클래스)
 : 기본데이터와 관련된 작업을 효율적으로 하기 위한 방법
  ex) 범위, 문자열숫자 -> 숫자, 숫자 -> 문자열 etc..)

 byte  (Byte)
 short  (Short)
 int (Integer)
 long (Long)

 float (Float)
 double (Double)

 char (Character)

 boolean (Boolean)

 2) 참조 데이터 타입 (Reference Data Type : RDT)
 
  : PDT를 제외한 나머지 전부
   ex) class, interface, array


11. 형변환 (type casting)
  : 종류 2가지

  1) 자동형변환 (promotion)
   ex) short a = 10;
       int b = a; // 4byte = 2byte

  2) 강제형변환 (type casting)
   (type) 캐스팅연산자 
   ex) int a = 10;
       short b = a;   // 에러
       short b = (short)a; // 에러없음

  : 기본형 + 참조형도 가능 

반응형