본문 바로가기
Programming/Java + Spring

[Java] 변수

by 콩king 2022. 7. 17.
● 변수

변수는 값을 저장하는 저장공간

값을 재사용하기 위해서 사용한다

 

● 기본 자료형

정수형, 실수형, 문자형, 논리형

 

●변수생성시 주의사항

1. 띄어쓰기 불가능

2. 특수문자는 사용 불가능

     - 특수문자는 이미 각각의 역할이 부여되어있다. _ 만 사용 가능

3. 숫자로 시작 불가능

     - String 1name;     // 오류

     - 숫자가 중간에 들어가거나 숫자로 끝나는 것은 가능하다

4. 키워드 사용 불가능

 

자료형의 범위, 자원 범위

컴퓨터는 한정된 자원으로 코딩 > 극한 효율을 뽑아야 합니다.

정수형 자료형마다 표현 할 수 있는 숫자의 범위가 존재한다 > bit 차이

내가 사용하려는 데이터의 최대 크기를 고려하면서 사용

 

● 정수형

소수점이 없는 숫자

byte < short < int(대표자료형) < long
각 자료형 마다 표현 할 수 있는 숫자의 범위가 다름

 

- bit > 스위치 on / off > 0, 1 표현되는 한자리, 최소단위
- 1byte = 8bit  : 0000 0000 ~ 1111 1111 > 표현할수있는 숫자의 범위 : 255

     0111 1111 ~ 0000 0000 양수

     1111 1111 ~ 1000 0000 음수

- short = 2byte = 16bit > 2의 16승

     0000 0000 0000 0000 : -32768 ~ 32767 > 65535

- int  = 4byte = 32bit > 2의 32승 > 21억까지

- long = 8byte = 64bit

 

자료형의 범위, 자원 범위

컴퓨터는 한정된 자원으로 코딩 > 극한 효율을 뽑아야 합니다.

정수형 자료형마다 표현 할 수 있는 숫자의 범위가 존재한다 > bit 차이

내가 사용하려는 데이터의 최대 크기를 고려하면서 사용

 

byte b2 = 127;
byte b3 = -128;
b2++; 				// 128
b3--; 				// -129
System.out.println(b2); 	// -128 : 범위를 넘쳐서 이상한 값이 나오는 현상 : 오버플로우
System.out.println(b3);  	// 127 : 범위보다 낮아져서 이상한 값이 나오는 현상 : 언더풀로우


● 실수형

소수점이 있는 숫자

float > double(대표형태)

 

- float : 4byte : 2^32 int정도의 범위 : 지수(소수점위) 8비트 / 가수(소수점아래) 23비트

- double : 8byte : 2^64 long정도의 범위 : 지수(소수점위) 11비트 / 가수(소수점아래) 52비트

 

● 문자형

char

- 문자를 의미하는 자료형 : ' ' 싱글쿼터로 표현, 한글자, 아스키코드

- 컴퓨터틑 2진수로 표현 > 문자도 숫자로 변환을 하는 약속이 필요 > 아스키코드 > 7비트로 표현된 문자

- 자바에서는 유니코드 > 문자 하나당 16비트 > 각 나라의 언어를 표현가능, 65536의 문자가 존재

 

●문자열형

String 문자가 여러개 합쳐진(배열) 자료형, " " 더블쿼터로 표현

String s1 = "안녕하세요";
System.out.println(s1);			// 안녕하세요
// String s2 = 'A';			// String은 " ", Char는 ' '
String s2 = "A";
System.out.println(s2);			// A

 

●논리형

참과 거짓을 논하는 자료형 (1바이트만 들어갑니다)

boolean bb1 = true;
// boolean bb2 = TRUE; 			// 에러
boolean bb3 = false;

'Programming > Java + Spring' 카테고리의 다른 글

[Spring] 게시판 실습 / 준비 단계  (0) 2022.09.27
[Spring] DI 실습  (0) 2022.09.26
[Spring] DI 의존성 주입  (0) 2022.09.26
[Spring] 프레임워크  (0) 2022.09.26
[Java] 형변환  (0) 2022.07.17

댓글