자바(Java) 변수의 기본형 & 참조형 타입

유필선·2024년 3월 3일
0

자바(Java)

목록 보기
2/20

변수의 기본형 & 참조형

변수(variable)란?

데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미한다.

데이터 타입(자료형)은 크게 기본형 타입참조형 타입으로 구분된다.

  • 기본형(primitive type) : 계산을 위해 실제 값을 저장한다.
  • 참조형(reference type) : 객체의 주소를 저장한다. null 또는 객체의 주소(4byte, 0x0 ~ 0xffffffff)를 갖는다.

변수 선언 방법

  • 변수선언(변수생성)은 2번 이상 할 수 없다.
  • 변수의 값을 바꿀 수 있다.
  • 변수는 값을 넣을 때 빼고는 값(자신이 가지고 있는)취급을 해야 한다.
int x = 10;
// 정수형 변수 선언
// x에 int 형태의 10의 값을 대입

double y = 3.14;
// 실수형 변수 선언
// y에 double 형태의 3.14의 값을 대입

float z = 2.71f;
// 실수형 변수 선언
// z에 float 형태의 2.71의 값을 대입
    
char a = 'A';
// 문자형 변수 선언
// a에 char 형태의 'A'의 값을 대입

String c = "Hello, World!";
// 문자열 변수 선언
// c에 String 형태의 "Hello, World!"의 값을 대입

boolean b = true;
// 논리형 변수 선언
// b에 boolean 형태의 true의 값을 대입

변수 선언 규칙

1. 카멜 표기법(카멜 케이스:camelCase)
자바에서 가장 많이 쓰이는 표기법으로 카멜 표기법을 사용한다. 카멜 표기법은 낙타의 등을 닮았다고 해서 붙여진 이름으로, 단어의 첫 번째 글자는 소문자, 두 번째 단어부터 첫 글자를 대문자로 표기하는 방법이다.

int camelCase;
char studentNumber;
double classId;

2. 사용 가능한 문자(영문자, 숫자, _, $)
변수 이름에는 영문자(대소문자 구분), 숫자, _, $를 사용할 수 있다. 영문자는 대소문자가 구분되어 인식하기 때문에 유의해야 한다.(a와 A는 다른 문자)

// 선언 가능한 변수
	int number;
	int NUMBER;
	int result_1;
	int result$1;
	int ReSuLt_$1;
    
// 선언 불가능한 변수
// 1. 숫자로 시작하는 변수명
	int 10_number;  // error 발생

// 2. 공백이 있는 변수명
	int number 1;  // error 발생

// 3. 특수문자가 포함된 변수명
	int number!;  // error 발생

// 4. 키워드(예약어)로 사용된 변수명
    int int;  // error 발생

3. 변수 이름은 사용 목적에 맞게 이름을 짓는다.
변수명은 사용 목적에 알맞게 짓는 것이 중요하다. 동작하는 데에는 문제가 없을지라도 다른 사람이 알아보기 힘든 변수명으로 이루어진 코드는 결코 잘 작성된 코드라 할 수 없다.

 // 학생번호
    int studentNumber;
    int stdNum;
    int stdNumber;
    int studentNum;

// 카운터
    int counter;
    int count;
    int cnt ;

// 잘못된 줄임말
    int sN; // studentNumber임을 추측하기 어려움
    int c;  // count인지 c인지...
    int cn; // cnt인지...

기본형 타입(Primitive Type)

기본형 타입에는 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)으로 나뉜다.

기본형 타입에 대한 특징

  • 모두 소문자로 시작된다
  • 비객체 타입이므로 null 값을 가질 수 없다.(기본값이 정해져 있음)
  • 변수의 선언과 동시에 메모리 생성
  • 모든 값 타입은 메모리의 스택(stack)에 저장
  • 저장공간에 실제 자료 값을 가진다.

int age = 30;
double tall = 182.3;
char gender = 'M';

참조형 타입(Reference Type)

참조형 타입은 간단히 말하자면, 위의 8가지 자료형(primitive type)을 제외한 나머지를 말한다고 보면 된다.
기본적으로 제공하는 클래스, 프로그래머가 스스로 만든 클래스, 배열, 열거 타입 등을 모두 참조형이라고 한다.

참조형 타입 특징

  • 기본형과는 달리 실제 값이 저장되지 않고, 자료가 저장된 공간의 주소를 저장한다.
  • 즉, 실제 값은 다른 곳에 있으며 값이 있는 주소를 가지고 있어서 나중에 그 주소를 참조해서 값을 가져온다.
  • 메모리의 힙(heap)에 실제 값을 저장하고, 그 참조값(주소값)을 갖는 변수는 스택에 저장
  • 참조형 변수는 null로 초기화 시킬 수 있다.


String name = "홍길동";
String[] hobby = new String() {"독서","게임","등산"};
Date date = new Date();
profile
이해해버려라!

0개의 댓글