본문 바로가기
프로그래밍/JAVA

JAVA 자바 초보 변수 선언과 초기화 & 데이터 타입

by 졸린이 2021. 7. 7.
반응형

프로그래밍 언어는 참 다양하게 있고 요즘 나오는 언어들도 어쩌다 어쩌다 접해보고 있는데..

 

이제는 데이터 타입 생략은 당연해진 것 같다. 문법 자체가 간소해지고 있달까...

 

아무튼 그러든가 말든가 자바를 사용하려면 데이터 타입, 변수 선언과 초기화 하는 법은 알아야 한다.

 

그런데 사실 뭐 간단한 코딩 예제 몇 개만 하다보면 금방 적응 된다.

 

구분 타입 크기(범위)
정수 byte 1 byte
short  2 byte
int 4 byte
long 8 byte
실수 float 4 byte
double  8 byte
문자 char  
문자열 String  
논리 boolean  

주로 사용하는 데이터 타입이다. 문자, 문자열, 논리가 크기가 없는것은 잘 모르기 때문이다. 죄송 (몰라도 상관없다)

 

하드웨어 자체 성능이 뛰어나진 요즘 임베디드 시스템 개발이 아니면 크기는 크게 신경 쓰면서 개발 하지는 않는다.

 

그래도 뭐 의미상 따져보자면 1byte는 8bit 이다. 즉 0000 0000 ~ 1111 1111 까지의 정보 크기를 담을 수 있다.

 

1111 1111은 255이다. 컴퓨터를 사용하다 보면 한 번씩 255를 본 적이 있다. 

 

색을 나타낼 때 RGB (0~255, 0~255, 0~255)로 표현하기도 한다.

 

즉 1 byte의 크기를 가진 byte 타입의 선언자는 총 256의 숫자를 표현할 수 있는데 0부터 255 가 아니라 -도 포함해서

 

-128 부터 127 까지 사용할 수 있다.

 

그럼 short는 2 byte 이므로 16 비트 이다.

 

그러면 1111 1111 1111 1111 이렇게 2진수로 범위를 찾을 수 있는데 이게 궁금하신 분들은 따로 계산해보시거나 검색해보시길..

 

 

 

 

정수형

정수 타입의 선언은 주로 int로 한다. 크기도 적당하고 무난 하기 때문에...

int a;	//int 타입의 변수 a 선언
a = 10; //a 변수에 10의 정수값으로 초기화

int b = 20; //변수 b를 선언하면서 20의 값을 저장

int c;      //변수 c를 int 타입으로 선언

c = a;  	//변수 c에 변수 a의 값(10)을 저장

변수 선언과 초기화는 대부분 이렇게 사용가능하다. 물론 int는 정수 타입이기 때문에 문자나 소수를 집어 넣으면 인식을 못한다.

 

실수형

float f1;	//실수형 변수 f1 선언
	
f1 = 2.3;	//f1 변수에 2.3으로 초기화
	
float f2 = 3.14; //float 변수 f2선언과 동시에 3.14로 초기화

float f3;		//float f3 선언

f3 = f1;		//f3에 f1의 값 2.3 저장

보다시피 정수형이랑 똑같이 사용 가능하다. 

 

실수형에 물론 소수가 아니라 2 또는 3 이런 값들도 저장된다.

 

다만 출력할 땐 3.0 이런식으로 출력이 된다.

 

 

 

 

문자형

char a;		//문자형 변수 a 선언

a = 'C';	//a 변수 C로 초기화

char b = '김';	//char형 변수 b선언 '김'으로 초기화

char c;			//char형 변수 c선언

c = a;			//c를 a의 값('C')으로 초기화

//char 변수 a, b, c 출력
System.out.println(a);
System.out.println(b);
System.out.println(c);

 

char변수도 int, float와 마찬가지로 비슷하게 사용한다.

char의 특징은 문자 단 1개만 저장이 가능하며 '' 작은 따옴표안에 값을 입력해야 한다.

그리고 문자에는 '1' 이런식으로 숫자도 입력가능 하긴 하다. 단지 표현만 할 뿐 연산은 할 수 없다.

 

문자열

c언어에서는 문자열 타입의 선언자가 없었다. 그래서 char[100] 이런 문자타입 배열로 사용하곤 했는데 뭐..

자바에서는 String 타입이 있다. 자바도 c로 만들었고 까보면 char형 배열이란 뭐 그런 소리를 들었던거 같은데 중요한 건 아닌거 같고 바로 사용하는 법으로 넘어가자.

String s1 = "Hello";	//String 선언과 초기화
    	
String s2;				//선언
    	
s2 = "world";			//초기화
    	
String s3 = s1;			//선언과 초기화(값을 s1의 값으로)
    	
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);

주석이 되게 성의가 없어졌다.

뭐 여기까지 읽으면 이 정도만 되어도 이해할 거 같다.

 

변수 선언과 초기화에 대해서 대충 여기까지 보면 선언과 동시에 초기화가 가능하며 또는 선언해 놓고 나중에 초기화도 가능하다.

 

상황에 맞게 필요에 맞게 코드를 작성하면 되겠다.

 

 

 

 

논리형

boolean b1 = true;
    	
boolean b2;
    	
b2 = false;
    	
boolean b3 = b1;
    	
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);

주석은 생략하도록 하겠다. 

보다시피 true 혹은 false를 저장할 수 있는 데이터 타입이다. c 언어 에서는 bool 타입이 없어서 1과 0으로 값을 넣고 사용하곤 했다.

 

c++에선 bool 이고 자바에서는 boolean 이다.

 

사실 System.out.println()으로 출력하긴 했는데 

true와 false 이 문자를 저장하는게 아니다. true false 참, 거짓 이 의미 자체를 뜻한다.

 

참일때 실행하는 혹은 거짓일 때 실행하는 분기하는 코드를 작성할 때 쓸 수 있다.

 

천천히 예재를 보면서 하면 뭐 금방 이해가 쏙쏙 될 것 같다.

 

그리고 변수명을 정하는데 나름대로 규칙이 있다.

 

변수명

위에 예시같은 경우에는 대충대충 s1, s2.. 이런식으로 지었는데

 

실제 개발을 할 때는 변수이름을 보고 의미를 알 수 있게 지어 주는게 좋다. 주석을 달아주는것도 필요하다.

 

int count;

String userName;

 

이런식으로 대략적인 느낌을 알 수 있게 해줘야 한다.

그리고 또 몇 번 해보면 알겠지만 우선 예약어로는 변수명을 사용할 수 없다.

예약어는 예를 들어 int, String 이런것들 이다.

 

int int

int Integer

이런식으로는 에러가 된다는 의미다. 뭐 빨간줄 그어져서 바로 깨달을 수 있다.

 

예약어 X (ex int, float, class.. 등등)

숫자로 시작 X (ex 1count 안됨)

대소문자 구별됨 ( 이것은 변수 a 와 A는 다르다는 의미이지만 좋은 프로그래밍 습관은 아니다.)

특수문자는 _ 가능 

 

그래서 위의 userName 이렇게 여러 단어가 붙어있는 경우 첫 번째는 소문자 두번째 나타나는 단어의 머리부터 대문자로 하는 경우를 카멜 케이스라고 부른다.

 

혹은 user_name 이렇게 언더바로 구분하는 경우는 스네이크 케이스

 

혹은 UserName 이것은 파스칼 케이스라고 부른다.

 

변수명을 짓는 음.. 규칙? 아무튼 이런식으로 많이 한다. 나중에 디비와 연동할때도 중요한 포인트가 된다.

 

 

 

 

 

반응형

댓글