본문 바로가기

develop/Java

변수와 데이터타입

 

변수란?

 

-데이터를 저장하는 메모리 공간이다.

-한번에 하나의 데이터만 저장 가능하다. 그러나 저장되는 데이터가 언제든지 변할 수 있기 때문에 변수라고 한다.

 

 

변수 선언 - 변수 초기화 과정을 통해 사용 가능하다.

 

 

1. 변수 선언을 통해 메모리 공간을 할당 받는다

int = a ;

데이터타입 = 변수명;

변수명은 식별자 작성 규칙에 따른 이름을 지정한다

 

 

 

*식별자 작성 규칙

- 대,소문자를 구별한다.

- 첫 글자에 숫자가 올 수 없다

- 특수문자는 &와 _만 가능하다.

- 공백 사용이 불가능하다.

 

 

 

2. 변수 초기화를 통해 변수에 데이터를 저장한다.

=> 변수에 이미 저장된 데이터가 있다면 해당 데이터가 제거되므로 초기화라고 함

=> 변수 선언 전에는 초기화 사용 불가

a=1;

 

 

 

 

3. 동시에 수행하는 법

int a = 10;

데이터 타입 변수명 = 데이터;

 

 

 

위의 두 과정이 진행되지 않으면 변수에 저장된 값을 출력할 수 없다.

 

 

 

변수값 출력은

System.out.println(a); 로 출력한다

 

 

 

 

동일한 데이터 타입 변수 여러개를 동시에 선언할 경우?

 

 

 

int x ;

int y ;

 

int x, y; 형태로 , 로 연결해주면 된다.

초기화는 int x = 10, y = 20 요렇겡

 

 

 

 

 

System.out.println("=======================================);

 

 

 

 

앞에서 변수를 나타낼 때 썼던 데이터타입에 대한 설명

-자바에서 처리할 수 있는 데이터의 종류

-데이터 종류에 따라 변수 선언 시 데이터타입을 달리해야한다.

-데이터타입은 크게 참조형과 기본형으로 구분됨.

-데이터타입에 따라 메모리 크기가 달라지므로 효율적인 메모리 공간 사용을 위해 데이터타입을 구분해야함 (이유)

(기본형 데이터타입은 종류에 따라 크기가 다르지만 참조형 데이터타입은 무조건 4Byte)

 

 

1Byte

2Byte

4Byte

8Byte

정수형

byte

short

int

long

실수형

 

 

float

double

문자형

 

char

 

 

논리형

boolean

 

 

 

 

 

 

 

 

2. 논리형 데이터타입

자바의 기본 데이터타입 8개를 제외한 나머지 타입

대표적으로 문자열을 저장하는 String 타입이 있다.

 

 

 

System.out.println("=======================================);

 

 

 

 

<정수형, 실수형>

 

 

정수 데이터의 표현 범위는

 

-2^(x-1) ~ +2^(x-1)-1

 

* byte(1Byte = 8bit) : -2^7 ~ 2^7-1 = -128 ~ +127

* short(2Byte = 16bit) : -2^15 ~ 2^15-1 = -32768 ~ +32767

* int(4Byte = 32bit) : 약 -21억 ~ +21억 => 정수의 기본형

* long(8Byte = 64bit) : 약 -922경 ~ +922경

 

실수 데이터 표현 범위는 근사치 표현 방식으로 표현한다.

 

 

정수 데이터의 표현

 

 

 

1. 진법에 대한 표현 방법

- 기본적으로 정수 데이터는 10진수로 표시한다.

- 2진수 (0 ~ 1)는 숫자 앞에 접두사 0b를 붙혀서 표현

- 8진수 (0~7) 는 숫자 앞에 접두사 0 붙혀서 표현

- 16진수 (0~F)는 숫자 앞에 0x를 붙혀서 표현

 

 

 

2. 큰 정수에 대한 자릿수 표기 방법

- 자바에서는 큰 정수를 표기할 때 (,) 콤마 대신 (_)를 사용 함

=> 숫자에는 영향이 없고 단지 사용자가 식별하기 편하게 해줌

ex) 10000000000 => 10_000_000_000

 

 

 

3. long 타입의 정수에 대한 표기 방법

- int 형 범위를 벗어나는 정수 또는 범위 안에 있지만 long 타입으로 표기할 경우

정수 뒤에 접미사 L 표기하여 long 타입을 표현함

ex) 10은 int 형 정수지만 10L은 long 형 정수로 취급

 

 

 

 

실수 데이터의 표현

 

 

 

1. 실수형의 기본 데이터타입은 double 형이므로 float 타입에 저장 불가능하다 .

=> 만약, 실수 데이터를 float 타입으로 표현하려면 접미사 F나 f를 붙인다.

ex. 3.14는 double 타입이지만 3.14f는 float 타입이다

 

2. 실수 데이터를 표현할 때 근사치 표현 방식을 사용한다.

- float 타입은 소수점 9번째 자리에서 반올림해 8번째자리까지 표현한다

- double 타입은 소수점 18번째 자리에서 반올림해 17번째 자리까지 표현한다

 

3. 아주 크거나 작은 실수를 표현할 때 지수 표현 방식을 사용

- 어떤 실수를 X.X * 10^Y 형태로 표현하는데 이를 자바에서는 간편하게 X.XeY로 표현할 수 있다.

ex. 3.14 * 10^10 을 3.14e10으로 => 31400000000

e-10이면 소수점 앞으로 이동

 

 

 

 

<논리형>

 

boolean 타입

-자바에서 참 또는 거짓에 해당하는 데이터를 처리하는 타입이다.

-참을 true로 표기하고 거짓을 false 로 표기함

-무조건 소문자로만 표기

-문자열 "true" "false"와는 다르다

 

 

 

 

<문자형>

 

을 설명하기 전에

아스키 코드 = ASCII 중에서

0 a A에 해당하는 코드 기억하기

0 = 48

A = 65

a = 97

 

 

char 타입

 

 

-char 타입은 1개의 문자 데이터를 표현하는 데이터타입이다.

-반드시 ('')안에 1개의 문자가 포함되어야 한다. 아무것도 없이 '' 만 표현 불가능하고 두개 이상의 문자 절대 안됨

-2Byte 크기를 갖는 유니코드 체계를 사용해 2^16 65536개의 문자 표현이 가능하다~

-유니코드 값은 16진수 4자리 정수로 표기함 ('\uXXXX')

-정수 형태의 데이터로 취급되므로 문자 데이터대신 정수 값을 사용하거나 정수 데이터와 연산도 가능하다

ex. char ch2 = 65;

System.out.println(ch2);

대문자 A가 출력~

 

주의! 문자로 특수기호 \ 표기할 경우

System.out.println(\);

=> 자바의 문자 데이터에서 \기호는 뒤에 이스케이프 문자가 붙어야하는데

\기호만 표기할 경우 자바는 잘못된 데이터로 판단하여 오류가 발생함!

=> 따라서, \ 기호를 출력하기 위해서는 '\\' 형태로 입력해야 한다.

System.out.println('\\');

=> 위의 규칙과 마찬가지로 작으 따옴표 1개 (')를 출력할 경우

/System.out.println('''); //오류발생 따라서 '\'' 라고 입력해야함

System.out.println('\'');

 

 

 

System.out.println("=======================================);

 

 

 

 

<참조형 데이터 타입>

 

 

문자 vs 문자열

 

- 문자는 작은 따옴표 ('')로 표기하는 1개의 문자데이터고 문자열은 ("")로 표기하는 0개 이상의 문자데이터의 집합

-문자는 char로 관리되고 문자열은 String 타입

 

 

String 타입

-기본 데이터타입이 아니라 참조 데이터타입의 일종

-문자열 데이터를 보관하는 용도

-반드시 큰 따옴표를 사용해야 하고, 0개 이상의 문자열을 표현 가능하다

=> 큰 따옴표 사이에는 아무것도 없이 표현 가능 (""= 널스트링)

 

String 타입도 char 타입과 마찬가지로 이스케이프 문자가 포함될 수 있다.

=> \ 기호를 출력하려면 "\"가 아닌 "\\" 형태로 저장

 

char 타입은 ' 를 표현하기 위해 ''' 대신에 '\''로 표현해야 했는데

String 타입은 "를 표현하기 위해 "\""로 표현한다.

 

System.out.println("나는 자바를 좋아합니다")

System.out.println("나는 "자바"를 좋아합니다") < 노노

System.out.println("'나'는 \"자바\"를 좋아합니다.");

 

 

간단한 이스케이프 문자

\n 줄바꿈

\t 탭

 

System.out.println("=======================================);

 

 

println() 메서드와 print() 메서드의 차이점

 

 

* - println() 메서드는 출력작업 후 엔터키 역할을 통해 줄바꿈을 수행하고

* print() 메서드는 출력 작업 후 줄바꿈을 수행하지 않음

* - println() 메서드는 아무 데이터도 없이 실행할 경우 줄바꿈만 수행함

 

 

'develop > Java' 카테고리의 다른 글

for 문과 while문 - 중첩 (2)  (0) 2021.01.25
for 문과 while문 - (1)  (0) 2021.01.23
switch 조건문  (0) 2021.01.19
if 조건문  (0) 2021.01.19
형변환 연산자  (0) 2021.01.19