본문 바로가기

자바 웹 개발자가 될거야/JAVA

[JAVA] 자료형 범위 / 데이터 형변환 / 연산자 / 상수

 참고로 자바에서 데이터타입이 같아야 비교가 가능하다.

 

예) char c = '가' ; 

      String s = "가";

     c == s → 비교불가

 

< 정수형 데이터의 범위 >

 

- byte : 8bit  ( -128 ~ +128 )

- short : 16bit  ( -32,768 ~ +32,768 )

- int : 32bit  ( -21억 4천 ~ + 21억 4천 )

- long : 64bit

 

∴ long > int > short > byte

 

< 실수형 데이터의 범위 >

 

- float : 32bit  (-3.4 x 10^38 ~ +3.4 x 10^38)

   → float aa=100.0; 이라고 작성한다면 64bit 메모리라고 받아들여서 오류가 난다.

        그래서 float aa = 100.0f 라고 해줘야함

- double : 64bit → 가수 (11bit) + 지수(52bit)

 

∴ double > float

 

< 문자표 >

 

- 유니코드 문자표 : 문자들을 숫자로 표현

char c = '가' ;  // 메모리에 16비트를 가지는 c라는 이름의 위치를 선정

 

char c = 'A';
		System.out.println(c);       // 결과 : A
		System.out.println((int)c); // 결과 : 65

 

< 자바의 기본 데이터형 변환 >

 

기본데이터형 : 정수형, 실수형, 문자형

 

① 자동 형변환

 

- 컴파일러가 알아서 변환시켜줌

 

int형 a에 100.0 을 넣었을 때는 오류가 나지만, double형 b에 100을 넣었을 때 오류가 발생하지 않는다. b는 자동형 변환이 일어난 것

 

※ 규칙

- 실수형 → 정수형 불가능

- 정수형 → 실수형 가능

- 정수 → 큰 정수형 가능

 

② 수동 형변환

 

- 개발자가 변환시켜 줘야함 → ( ) 연산자 이용

 

- 실수형 → 정수형 

int a = (int)100.0;
short b = (short)100.0;

long l = 10000;
a = (int)l;

 

< 연산자 >

 

① 산술 연산자

- + , -  , * ,  / ,  %

-  ( 데이터 : 정수 □ 정수 = 정수

                     정수  실수 = 실수

                     실수 □ 정수 = 실수

                     실수  실수 = 실수)

 

② 대입 연산자

- = ,  += ,  -= , *= , /= , %=

int a = 100;
a += 100;  // a=a+100;과 같음
a -= 100;  // a=a-100;
a *= 100;  // a=a*100;
a /= 100;  // a=a/100;

③ 비교 연산자

- == , != , <= , >= , < , > 

-  (char형도 비교 가능)

char ch1='a';
char ch2='b';

System.out.println(ch1>ch2); // 결과값 : false

 

④ 논리 연산자

- &(AND , && ) , | (OR,|| ) , ! (NOT) 

A B A&B A|B
F F F F
F T F T
T F F T
T T T T
int a = 100;
int b = 200;

char ch1='가';
char ch2='나';

System.out.println(true & false);  // 결과값 : false
System.out.println(a>b & ch1<ch2); // 결과값 : false

 

⑤ 3항 연산자

- 조건문 ?  참일 경우 값 : 거짓일 경우 값 ;  → if문으로 대체 가능

 

< 상수 >

 

- final double  PI = 3.141592;

- 변수는 소문자, 상수는 전체적으로 대문자 사용하는 것이 일반적

- 상수 선언할 때 값을 초기화한 후 변경은 못함