상세 컨텐츠

본문 제목

JAVA Variable declaration rule, 논리형 문자형 정수형 실수형 자료, UNICODE, ASCII CODE, 캐스팅 형변환 (프로모션(promotion), 디모션(demotion, depromotion))

BackEnd/JAVA

by H_Develop 2022. 7. 19. 16:49

본문

변수 선언 규칙 

int a;                  [자료형] 변수_명; (변수 선언)

a = 10;               변수_명 = 값; (변수에 값 대입, 초기화)

int a = 10;          [자료형] 변수_명 = 값; (선언과 대입을 동시에 값 대입, 초기화)

 

변수 표기법

 

1) 카멜(Camel) 표기법

 각 문자를 붙여서 표기하되, 맨 처음 문자는 소문자, 두번째 단어는 첫 문자를 대문자로 한다.

 띄어쓰기 대신 대문자로 단어를 구분하는 표기 방식.

 - backgroundColor, typeName, whatIsYourName, ...

 

2) 스네이크(Snake) 표기법

 여러 단어로 이루어진 경우, 단어 사이에 _ 를 붙여 구별하는 표기법

 - background_color, type_name, what_is_your_name, ...

 

3) 파스칼(Pascal) 표기법

 첫 단어를 대문자로 시작하는 표기법 (클래스나 인터페이스 등에 사용하는 형태)

 - BackgroundColor, TypeName, WhatIsYourName, ...

 

4) 헝가리안 표기법

 변수 선언 시, 접두어를 붙여 변수의 의미를 명확히 파악하게 하는 표기법

boolean bTest = true;

int nTest = 0;

short sTest = 0;

float fTest = 0;

String sTest = "안녕";

 

 

 

논리형 : true, false

 

boolean b = true;
System.out.println("b의 값 : " + b);
// boolean b = 1;	// ERROR !!!!

 

문자형 : ' ' 안에 하나의 문자만 기술

 

char ch1 = 'A';			// "A"는 오류, String 은 "" 큰따음표 사용 char는 '' 작은 따음표 사용
System.out.println("ch1 = " + ch1);
char ch2 = '\u0041';		// UNICODE 로 A를 의미.
System.out.println("ch2 = " + ch2);
// UNICODE, 이것은 텍스트 문자 (숫자, 문자, 문장 부호)와 이진 코드의 대응표입니다.
char ch3 = 65 + 1;			// 66의 의미이지만 ch3은 문자이다. ASCII CODE로 66은 'B' 이다.
System.out.println("ch3 = " + ch3);	// B가 출력

결과
ch1 = A
ch2 = A
ch3 = B

 

정수형

 

byte b = 128;	// ERROR !!! byte자료형의 크기는 1byte == 2^8/2
byte b = 127;	
short s = 32767;	// 2byte
int n = 550;	// 4byte
System.out.println("b = " + b);	// 결과 127
System.out.println("s = " + s);	// 결과 32767
System.out.println("n = " + n);	// 결과 550

 

실수형

 

float f = 3.14; 
// java에서 실수는 기본적으로 double 형으로 인식하기에 float 형을 사용한다는 것을 명시해야한다. ( 3.14f )
float f = (float)3.14;
double d = 3.14;	// float 처럼 명시를 하지 않아도 사용가능.

 

자료

 

float f1, f2;
f1 = 3.14f;
f2 = 150;		// 실수에도 정수 대입이 가능. 실수에 정수를 대입하면 자동 실수화 됨.
or float = (float)150;	// 같은 4Byte의 타입
System.out.println("f1 = " + f1);	// 결과 3.14
System.out.println("f2 = " + f2);	// 결과 150.0

 

 

 

캐스팅 형변환

 

1) 프로모션 (promotion)
 - 큰 자료형에 작은 자료형을 대입하는 것 (형변환이 자동으로 이루어짐)

 

double  d = 100.5;
int 	n = 200;
		d = n;
System.out.println("d = " + d);	// 200.0 double 타입이기에 소수점이 나온다.
 - 4byte인 int 를 8byte인 double에 대입하기에 문제가 없다.
char c = 'A';
long l = 100;
     l = c;	// ASCII는 'A'라는 문자를 65라는 숫자로 인식한다.
System.out.println("l = " + l);		// 결과 65

 

2) 디모션 (de(pro)motion)
 - 작은 자료 형에 큰 자료 형을 대입하는 것으로 자동으로 이루어지지 않기에, 수동으로 형변환을 지정해주어야 함

 

char c = 'B';	// ASCII로 66
int  n = c + 1;	// ASCII로 66변환 후, +1 결과 67 만약 char n 이였다면, 'C' 반환
	 c = n;		// n 은 정수(4Byte), c는 문자(2Byte)이므로 큰 수가 작은 수에 들어감. ERROR !!
				// c = (char)n; 으로 형변환을 해주어야 사용가능하다.
System.out.println("c = " + c);

// float f = 5.5;	// ERROR !! 그냥 소수점(실수)을 넣으면 자바는 Double 형으로 인식한다.
float f = 5.5f; 	// of float f = (float)5.5;  // 이렇게 사용해야 한다.
double d = 5.5;		// No ERROR !!
int n = 0;
n = (int)f;
// n = f;			// ERROR !! int 와 float는 같은 4 Byte 이지만, 형이 다르다.
					// 수행될 수도 있지만, 오류가 뜰 가능성이 크기에 형 변환을 해줘야한다.
System.out.println("n = " + n);

 

 

public class java01 {
	public static void main(String[] args) {
		byte b1 = 100;
		byte b2 = 20;
		byte b3 = b1 + b2;	// ERROR !!	
		// byte b3은 정수 100과 20을 연산하는데, 127까지만 연산이 가능해서
		// 이 127을 넘어갈 가능성이 있어서 오류를 보인다.
		// byte b3 = (byte)(b1 + b2); 하면 가능, byte만 이상하게 그래
		int b4 = b1 + b2;
	}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

관련글 더보기