본문 바로가기

LECTURE/# java basic

[초급 JAVA]자바 문법 및 자료형 - 1

반응형

자바 문법 및 자료형 - 1 


Intro

안녕하세요 commin 입니다. 주말을 맞아서 엄청많이 포스팅 하겠다는 어제의 다짐은 역시 주말이되면 나태해지는 저때문에 지켜지지 않았습니다. 뭐, 저는 예상 하고있었습니다만.. 어쨌든 어쩌다보니 11시가 훌쩍 넘은 11시 30분(저녁)이 되어서야 졸린 눈을 억지로 떠가며 어제의 다짐을 그래도 지키는 시늉이라도 하자는 의미에서 하나를 포스팅 하려합니다. 안드로이드도 할려했는데 내일해야겠습니다. 

지금부터 제가 포스팅 할 것은 자바의 기본중에 기본이고 모든 프로그래밍 언어에서 기본으로 알아두어야할 내용인 자료형에 관한 내용입니다. 지난 시간에 제가 설명에있어서 애를 먹었던 것 중 하나가 자료형에대해 언급하지 않았는데 자료형들을 막 쓰다보니 저도 헷깔리고 자바언어를 처음 접하시는 분들도 이게 뭔소리야 하면서 뒤로가기를 누르셨을 겁니다. 다 압니다. 제부족한 진행 능력때문이니 너그럽게 봐주세요. 


Explanation


자료형에 대해 설명드리기 전에 앞서 수학 시간에 배우는 '상수'와 '변수'에 대해 먼저 설명드리고 넘어가겠습니다.
수학시간에 배우는 것과는 약간 다른 프로그래밍에서의 상수란 고유한 Data의 값으로써 항상 동일한 의미를 가지는 개체 라는 뜻입니다. 
그리고 변수란 상수를 저장하거나 보관하는 공간이라고 생각 하시면 됩니다. 여기서 변수의 이름이 변수명 이됩니다.

그렇다면 자료형이란 무엇일까요 자료형이란 변수의 크기를 규정지어 미리 만들어 둔 크기의 약속 이라고 정의되어있습니다. 그러니까 예를 들자면 자료형이란 어떤 물건을 넣을 상자인지 이해관계자끼리 약속한 상자입니다. 어떤 상자에 야구공만 넣을 수 있고 야구공을 몇개까지 넣을 수 있는지까지 정의해논 상자가있다면 이것이 프로그래밍에서의 자료형이 된다라는 말이지요. 

자료형은 크게 논리형 자료형정수형 자료형, 실수형 자료형, 클래스형 자료형으로 나뉩니다. 

논리형  자료형

논리형 자료형에는 boolean이 있는데요, 논리적으로 맞다 틀리다를 넣을 수있는 상자입니다. value 값에는 'true','false'가 있고 형변환은 안됩니다. 형변환이란 자료형의 형태를 다른 형태로 변환시킨다는 것인데요. 이건 좀더 밑에서 설명하겠습니다. 

정수형 자료형

  • byte : 바이트라고 읽으며 1byte의 크기를 가집니다. 1byte는 1bit 8개이므로 2의 8승 즉 128개이지만 +와 - 값이있으므로 범위는 -128~ 127 입니다. 중간에 0이 껴있어서 +127까지 이지요. 
1
2
3
//byte의 선언 
byte a = -128;//byte의 최저값
byte b = 127;//byte의 최대값
cs
  • short : 쇼트는 2byte입니다. 1바이트가 1비트 8개이므로 얘는 1비트 16개네요. 범위는 -32768~32767 입니다. 
1
2
3
//short의 선언 
short a = -32768;//short의 최저값
short b = 32767;//short의 최대값
cs
  • char : 2byte 입니다. 다만 char는 character의 약자로써 다른 자료형과 다르게 '문자'를 담는 자료형입니다. 문자에는 음양의 구분이 없으므로 범위는 0~65535 입니다. 문자 대신에 숫자를 넣으면 아스키 코드 값으로 인식하여서 해당하는 문자를 저장합니다. 
1
2
3
4
5
//char의 선언 
char a = 'a';//char는 문자를 저장하는 상자.
char b=97;//ASCII 코드의 97은 'a'
char c='\u0061'//unicode 값 으로 'a'를 뜻함
//모두 같은 'a'가 저장.
cs
  • int : 4byte 자료형이며 프로그래밍을 하면서 가장많이 쓰는 자료형중에 하나입니다. 범위도 외우세요. -2147483648 ~2147483647 입니다. 외우세요. 프로그래밍을 하다보면 저범위를 넘어가는 데이터의 양도 다루게됩니다. 그땐 더 큰 상자를 가져다써야하니 범위를 알고있어야 오류도 안나게 하고 적절한 자료형으로 좀더 괜찮은 소스가 짜지겠죠? 
1
2
3
//int의 선언
int a =  -2147483648;//int의 최저값
int b = 2147483647;//int의 최대값
cs
  • long : 8byte 입니다. 범위는 -922경 ~ 922경 입니다. 크죠? 근데 얘는 끝에 L이라는 식별자를 넣어야합니다. 좀 쓰기 까탈스러운 아이죠. 그래도 고급프로그래밍으로갈수록 많이 쓰이는 아입니다.
1
2
3
4
5
//char의 선언 
long a = 123567890L;//끝에 L 을 붙입니다.
long b = 123567890l;//소문자로 써도 됩니다. 
//소문자 l은 붙이지 않는 것이 좋습니다. 
//숫자 1과 l은 잘 구분이 되지 않기때문이지요 ^^
cs


                                  byte a = 128;

                                  a == ?

* 여기까지 읽으셨다면 중요한 궁금증이 하나 생기셔야됩니다. 예를 들어 byte 자료형은 최대 127이라는 데이터를 넣을 수 있습니다. 그런데 코더가 128이란 데이터를 넣었다면 byte에는 어떤 값이 들어갈까요? 아니면 오류가나서 실행자체가 안될까요? 오류는 나지 않습니다. 대신 byte에는 -128이란 데이터가 들어갑니다. 

그림이 이해가되시나요? byte 뿐아니라 다른 자료형에도 해당하는 내용입니다. 자료형은 순환합니다. 최대값보다 커지면 최소값으로 돌아가서 시작되고 최소값보다 작아지면 최대값에서부터 내려갑니다. -130을 넣으면 값이 어떻게될까요? 그렇죠. 최소값 보다 -2 만큼 작으니까 126이 되겠죠 데이터 값은? 네 그런 식입니다. 그러니 자료형의 크기를 잘 알고 써야 되겠죠? ^^ 129를 넣어야 제대로 동작하는 프로그램에서 byte자료형을 쓰면 값이 -127 이 되버릴 테니까요 ! 

closing

왜 설명하다말고 closing이냐고요? 제가 졸리기때문이지요.. 아직 못쓴 내용들은 내일 아침에 포스팅 하기로 했습니다.(제가..ㅠ) 내일 뵈요.
궁금증이나 제 글에 오류가 있다면 댓글 달아주세요. 졸려서 막 쓰다보니 오류가 있을 수 있겠습니다. 제가 부족해서 그런거니 너그러이 봐주세요. 댓글이없다면 완벽한거겠죠. . . (무관심은 아닐거야)





반응형