티스토리 뷰

배운 내용 정리/Java

변수와 데이터 타입

김수한무거북이WA!두루미 2020. 2. 1. 15:01

I. 변수와 상수

프로그래밍에서의 변수는 수학적인 변수와는 개념이 다르다.

수학에서의 변수 수식에 따라서 변하는 값
프로그래밍에서의 변수 값을 저장할 수 있는 메모리 공간

 

상수는 변하지 않는 값이라 동일한 개념이라고 판단하면 될 것 같다.

 

 

 

II.  데이터의 타입

데이터의 타입은 크게 보면 기본형(Primitive type)과 참조형(Reference type)으로 2가지로 분류할 수 있으며, 기본형에서 세분화하면 8가지로 분류할 수 있다.

 

 

 

1. 기본형 : boolean, char, byte, short, int, long, float, double

  1 byte 2 byte 4 byte 8 byte
논리형 boolean      
문자형   char    
정수형 byte short int long
실수형     float double

 

자료형 저장 가능한 값의 범위 크기
boolean false, true 8 bit 1 byte
char \u0000 ~ \uffff : 0 ~ (2^16)-1 > 0 ~ 65535 16 bit 2 byte
byte (-2^7) ~ (2^7)-1 8 bit 1 byte
short (-2^15) ~ (2^15)-1 16 bit 2 byte
int (-2^31) ~ (2^31)-1 32 bit 4 byte
long (-2^63) ~ (2^63)-1 64 bit 8 byte
float 1.4e-45 ~ 3.4028235e38 32 bit 4 byte
double 4.9e-324 ~ 1.7976931348623157e308 64 bit 8 byte

 

기본형 변수는 아래와 같이 선언되며 선언과 초기화를 따로 할 수 있다.

다만 변수의 앞에 final을 선언하게되면 뒤에서도 언급하겠지만 나중에 변경하는 것이 불가능하기 때문에 선언과 동시에 할당을 해야만 한다.

int a;
boolean b;
char c;
double d;
final int e = 5;

a = 3;
b = true;
c = 'q';
d = 5;

 

 

 

2. 참조형 : 8개의 기본형을 제외한 나머지 타입이나 객체의 주소를 저장함.

예를 들면 문자열 변수의 String을 예로 들 수 있다.

 

참조형 변수의 선언은 참조하고자 하는 객체를 호출해서 해당 객체를 통해서 선언해야만 한다.

아래의 예시는 Scanner 객체를 참조하는 변수를 선언하는 과정이다.

import java.util.Scanner;

먼저 참조하고자 하는 객체를 import한다.

Scanner sc;
sc = new Scanner(System.in);

import한 객체 타입의 변수를 선언하고 이를 할당한다.

 

※기본형 변수에도 해당하는 사항이지만 아래와 같이 선언과 동시에 할당하는 것도 가능하다.

int a = 5;
Scanner sc = new Scanner(System.in);

 

 

 

III. naming rule

변수에만 해당하는 것이 아니라 클래스에도 해당하는 말이지만 어떠한 것을 담고 있는지, 어떤 기능을 하는 하는지를 보다 알아보기 쉽게 작명을 하는 것은 매우 중요한 일이다.

이를 위해 간단한 규칙을 정해두는 것은 알아보기 쉬운 좋은 방법이라 생각하기에 간단하게 4가지만 소개하려고 한다.

 

1. class명의 첫자는 대문자로 작성한다.

2. field(변수)의 첫자는 소문자로 작성한다.

3. 합성어를 사용할 때는 합쳐지는 단어의 첫자는 무조건 대문자로 작성한다.

4. 기능에 맞는 이름을 찾음☆

 

4가지 규칙 중에서 왜 4번을 가장 중요하게 생각하냐면 어떤 기능을 하는지 모르는 이름으로 작명되면 알아보기 쉽게 만들어도 크게 의미가 없다고 판단되기에 4번을 가장 중요하다고 적었다.

 

 

 

 

IV. 형변환

데이터의 타입을 바꾸는 것을 형변환 또는 casting이라고 하며 자동형변환과 강제형변환 2가지로 분류할 수 있다.

 

1. 자동형변환 : 메모리 크기가 작은 데이터 타입을 메모리 크기가 큰 데이터 타입으로 변환하는 것

int a = 200;
double b = a;

a : 200
b : 200.0

 

2. 강제형변환 : 데이터 타입을 원하는 형태로 지정하여 변환하는 것

String a = "20";
int b = Integer.parseInt(a);

 

 

 

V. 연산

변수간의 연산에서 초기화가 발생하지 않는다면 해당 변수 자체의 값이 변하는 일은 없다.

int a = 3;
a << 1; 

여기에서 a의 값을 초기화하는 일 없이 연산만 하였기에 a의 값은 변함없이 3이다.

int b = 3;
b = b << 1;

여기에서 b의 값을 초기화하는 일이 있었기에 연산후에 b의 값이 변경되고 b는 6이다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함