프로그래밍 언어는 참 다양하게 있고 요즘 나오는 언어들도 어쩌다 어쩌다 접해보고 있는데..
이제는 데이터 타입 생략은 당연해진 것 같다. 문법 자체가 간소해지고 있달까...
아무튼 그러든가 말든가 자바를 사용하려면 데이터 타입, 변수 선언과 초기화 하는 법은 알아야 한다.
그런데 사실 뭐 간단한 코딩 예제 몇 개만 하다보면 금방 적응 된다.
구분 | 타입 | 크기(범위) |
정수 | 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 이것은 파스칼 케이스라고 부른다.
변수명을 짓는 음.. 규칙? 아무튼 이런식으로 많이 한다. 나중에 디비와 연동할때도 중요한 포인트가 된다.
'프로그래밍 > JAVA' 카테고리의 다른 글
이클립스 IDE 설치 Eclipse Download & Install (0) | 2021.02.17 |
---|---|
Java SE 11 설치 및 환경변수 설정 [자바설치] (0) | 2021.02.16 |
댓글