Skip to main content Link Search Menu Expand Document (external link)

목차

  1. 자료형
    1. 기본형(Primitive Data Type)
    2. 참조형(Reference Data Type)
  2. 변수
    1. 변수
    2. 변수명 제작 규칙
    3. 변수 선언과 데이터 저장
  3. 자료형 변환(Data Type Conversion)
    1. 암시적 형 변환(Implict Type Conversion)
    2. 명시적 형 변환(Explict Type Conversion)

자료형

  1. 프로그램에서 사용되는 데이터의 유형이다.
  2. 자료형의 종류에는 기본형(Primitive Data Type)과 참조형(Reference Data)가 있다.

기본형(Primitive Data Type)

  • 미리 정해져있는 데이터 유형을 말한다.
종류자료형의 이름메모리 사용량
정수헝byte1 byte
 short2 byte
 int4 byte
 long8 byte
실수형float4 byte
 double8 byte
문자형char2 byte
논리형boolean1 byte

참조형(Reference Data Type)

  • 클래스가 객체화 될 때 메모리에 올라가는데 이 때, 객체의 메모리 위치 주소 값을 말한다.
  • 객체의 메모리 위치 주소값은 객체가 소유한 속성변수나 메소드를 호출할 때 사용된다.
  • 클래스 : Java 에서 클래스란 속성변수와 메소드를 정의해놓은 일종의 템플릿(틀)로 ~.class 파일로 존재한다.
    • 속성변수 : 기본형 데이터 또는 참조형 데이터가 저장되는 변수이다.
    • 메소드 :
      • 변수의 조작, 데이터의 조작, 다른 메소드의 호출, 객체의 생성 등의 실행 방법과 과정을 정의한다.
      • 객체가 소유한 메소드를 호출하면 메소드 안의 코딩 원리를 몰라도 원하는 작업을 할 수 있다.
    • 클래스를 실행하면 메모리 공간으로 올라가고 이때부터 객체로 부른다.

변수

변수

  • 데이터가 저장되는 메모리 기억장소에 붙인 이름을 말한다.
  • 데이터를 저장하거나 읽어오기 위해 사용된다.
  • 변수 안에 데이터 값은 수시로 변경하여 재저장 할 수 있다.
    • 데이터 갱신 불가 설정 시에는 변수 앞에 final을 붙이고 변수 대신 상수라고 부른다.
    • 상수 : 변하지 않는 값을 가지고 있는 변수이다.

변수명 제작 규칙

  • 영문, 한굴, 숫자, _, & 를 조합하여 만든다.
  • 첫 글자는 반드시 영문, 한글, _ 로만 시작해야 한다.
  • 중간에 공백이 있으면 안된다.
  • JAVA 문법 상의 키워드는 사용할 수 없다.
    • 키워드란 미리 정해져서 JAVA 프로그램의 구성요소에 붙여진 이름을 말한다.(ex : if, for, while …)
    • 자바의 키워드는 모두 소문자이다. (대문자는 식별자이다.)
  • 변수명의 길이 제한은 없으나 가독성을 위해 최소 3글자 이상으로 주는 것이 좋다.
  • 관용적인 변수 이름 생성 방법
    • 영문 대소문자와 _를 조합한다.
    • 모두 소문자로 만들되 중간에 다른 의미의 단어를 붙일 땐 대문자를 쓴다.
    • 어떤 데이터가 저장되어 있는지 예측 가능하도록 의미있게 지어준다.
    • 변수명이 전부 대문자라면 주로 변경이 불가능한 변수임을 의미한다.
  • p.s : 클래스는 객체화를 위해 생성되고 객체는 클래스로부터 만들어진다.

변수 선언과 데이터 저장

변수 종류변수 선언과 데이터 저장 형식설명
속성변수일 경우자료형 속성변수명 = 데이터;속성변수 선언과 동시에 개발자가 데이터를 저장한다.(= 수동 초기화)
 자료형 속성변수;속성변수 선언과 동시에 자동으로 기본값 데이터를 저장한다.(= 자동 초기화)
지역변수일 경우자료형 지역변수명 = 데이터;지역변수 선언과 동시에 개발자가 데이터를 저장한다.(= 수동 초기화)
 자료형 지역변수명;
지역변수명 = 데이터;
지역변수 선언, 데이터 저장이 없다.(= 지동 초기화 실패)
개발자가 데이터를 저장한다.(= 개발자가 초기화한다.)
  • 변수의 선언은 데이터 저장을 위한 메모리 공간을 확보해달라고 JVM에 부탁하는 행위이다.
  • 할당(assignment) : 변수에 데이터를 저장하는 행위이다.
  • 초기화(initialization)
    • 변수 선언 이후 처음으로 데이터를 저장하는 행위이다. 단, 지역변수는 자동 초기화가 불가능하다.
    • 지역변수는 지역변수 선언 이후 그 지역 안에서 개발자가 직접 할당하지 않으면 컴파일 에러가 발생한다.
    • 같은 유형의 변수를 2개 이상 선언할 경우 자료형 변수명1 = 데이터, 변수명2 = 데이터 .. 로 선언할 수 있다.
    • 오라클에서 null은 데이터를 입력하지 않을 경우 대신 넣어주는 데이터이다.
    • 자바의 null은 변수안에 무조건 데이터가 있어야 한다는 의미이다.
변수 종류변수 선언과 데이터 저장 형식설명
속성변수일 경우int num = 5;속성변수 num 선언과 동시에 개발자가 정수 데이터 5를 저장한다.(= 수동 초기화)
 int num;속성변수 num을 선언하고 자동 초기화로 0을 저장한다.
지역변수일 경우int num = 5;지역변수 num 선언과 동시에 개발자가 정수 데이터 5를 저장한다.(= 수동 초기화)
 int num;
num = 5;
지역변수 num 선언, 자동 초기화 실패
정수 데이터 5를 저장한다.(= 수동 초기화)

자료형 변환(Data Type Conversion)

  • 서로 다른 자료형의 데이터끼리 연산을 할 때 또는 변수에 데이터를 저장할 때 자료형을 통일하는 작업을 말한다.
  • 자료형의 변환에는 암시적 형 변환과 명시적 형 변환이 있다.

암시적 형 변환(Implict Type Conversion)

  • 어느 한 쪽 자료형이 다른 쪽 자료형으로 자동 변환되는 것을 말한다.
  • 암시적 형 변환 시 자료형의 우선순위는 byte < char 또는 short < int < long < float < double 이다.
결과
int num1 = 5;
int num2 = 2;
int result = num1/num2;
변수 result에 2 저장
형변환 없음
result의 결과는 2.5가 아니고 2이다. 정수와 정수의 연산결과는 정수이기 때문이다.
int num1 = 5;
int num2 = 2;
double result = num1/num2;
변수 result에 2.0 저장
result의 결과값 2가 double형 변수에 저장되므로 2.0을 반환한다.
double num1 = 5.0;
int num2 = 2;
double result = num1/num2;
변수 result에 2.5 저장
num2의 2가 2.0으로 반환
int num1 = 5;
double num2 = 2.0;
double result = num1/num2;
변수 result에 2.5 저장
num1의 5가 5.0으로 반환
double num1 = 5.0;
double num2 = 2.0;
double result = num1/num2;
변수 result에 2.5 저장
형변환 없음
int num2 = “a”;변수 num2에 97 저장
“a”가 int형 변수에 저장되므로 아스키 코드값인 97로 반환

명시적 형 변환(Explict Type Conversion)

  • 코딩으로 cast 연산자를 명시함으로써 원하는 자료형으로 변환되는 것을 말한다.
  • cast 연산자 바로 뒤의 변수 또는 데이터를 원하는 자료형으로 변환시킨다.
  • 객체간의 형변환도 cast 연산자를 사용할 수 있다.
결과
int num1 = 5;
int num2 = 2;
double result = (double)num1/num2;
변수 result에 2.5 저장
(double)가 num1을 5.0으로 변환시킨다.
int num1 = 5;
int num2 = 2;
double result = (double)(num1/num2);
변수 result에 2.0 저장
(double)가 결과값을 2.0으로 변환시킨다.
int num1 = 5;
int num2 = 2;
int result = (double)num1/num2;
컴파일 불가능
(double)결과값 2.5를 int형에 저장할 수 없다.