1. 자료형(변수)
데이터를 저장할 수 있는 메모리
ex) 스타*스에서 커피를 주문한다면 스몰(small), 쇼트(short), 톨(tall), 그란데(grande)이 크기가 있다.
카페에서 자신의 원하는 컵의 크기를 선택하는 것처럼 변수(컵)도 데이터(음료)를 담는 그릇이다.
때문에 변수(컵)은 여러가지 크기가 존재한다.
1.1 변수의 종류
(원시)변수: 원시변수에는 값이 저장된다. ex) int i = 7; => i는 111(2)의 값을 저장 함.
인스턴스 변수: 객체(인스턴스) 내부에 있는 변수
레퍼런스변수(레퍼런스) : C언어에서의 포인터, 객체에 접근하는 주소를 갖고 있음(값이 X)
ex) Dog myDog = new Dog(); => myDog의 객체의 접근하는 주소를 갖고있다.
2. 기본 자료형 (총 8개)
2.1. 리터럴
소스 코드의 고정 된 값을 대표하는 용어
ex) 진하게 표시된 것이 리터럴
int i = 100;
float f = 10f;
char ch = "Oh!";
*리터럴과 상수(Constant)는 다름!!!
- 리터럴: 변수 및 상수에 저장되는 값 자체 ex) int i = 100;
- 상수 : 값을 초기화 한 이후에 값 변경이 불가능한 상수 ex) public static final int i = 100;
2.2 종류
| 1 byte | 2 byte | 4 byte | 8 byte |
논리형 | boolean | | | |
문자형 | | char | | |
정수형 | byte | short | int | long |
실수형 | | | float | double |
* 회색 부분은 default(기본) 자료형
2.3 변수선언
[public/protected/private] [static] [final] 변수타입 변수명;
* [ ]안의 것은 때에 따라 생략가능
1) 변수이름 짓는 법
변수는 알파벳, 숫자, _, $ , 문자(한, 중, 일 국가 문자 다 가능)
단, 변수의 첫 문자는 숫자가 올 수 없다.
가능한 $는 변수이름으로 사용하지 말것(보통 $는 자동화 도구에서 값을 대치하는 특수기호로 많이 사용 ex)jQuery)
패키지 멤버 클래스는 영어 외에 문자를 사용하지 말아라.(운영체제에서 인지X), 내부 클래스는 한글 사용가능 but 영어를 쓰는 것이 현명
대소문자를 구분한다.
변수 이름 짓는 규칙: camel표기법 ex) firstName, createDate
널리 알려진 약어의 경우는 변수명으로 사용해도 되지만, 가능한 약어 사용을 자제하라 => source code의 가독성을 위해
변수는 소문자로 시작한다.
메서드명은 동사로 시작, 일을 시키는 식으로 이름을 지어라!
2) 사용 예
- boolean i = true; //true or false 밖에 사용 못함.
- char i = 'A';(작은 따움표로 감싸 주어야 함) // 하나의 문자만 저장 가능
- byte i = 1;
- short i =1;
- int = i =1;
- long i =1;
- float i = 1.2f;("f"를 꼭!!!! 써야함! => 자바에서는 소수점이 들어가 있는 것은 기본적으로 double로 간주 하기때문에)
* "1.2f"가 의미하는 것은?
커피를 주문할때에 "아메리카노 small사이즈, 시럽추가, 샷추가" 라고 주문을 한다고 해보자
그렇다면, 커피를 주문받는 사람은 위와같이 모든 글자를 다쓰지 않고, "사이즈:s, 시럽O, 샷O"과 같이 간결하게 나타낼 것이다.
커피에서의 "s"가 의미하는 것이 small의 크기를 갖고있는 컵을 의미하듯이,
프로그래밍에서의 "f"가 의미하는 것은 flaot의 크기를 갖고있는 변수를 의미한다.
3) Error
byte test1 = 128; //error 내용: type mismatch:cannot convert from int to byte (type이 잘못매치되었다: int는 byte로 변환할 수 없다.) |
- 128은 1바이트 이상이므로 int형이 되어야 한다!! => 1byte인 byte에 넣을 수 없다.
- 따라서, 변수의 크기와 할당 내용의 크기를 맞춰서 변수 선언을 하여라!!
3. 참조 자료형
객체의 주소를 저장, 변수의 타입이 클래스의 이름을 사용
2.1 종류
- String : 문자열 사용 시
- 사용자 지정 클래스
2.2 사용방법
String str = "Hello, World!"; (변수타입 첫글자 => 대문자, 큰따움표로 감싸줌)
4. 기본 자료형 VS 참조 자료형
| 기본 자료형 | 참조 자료형 |
저장 하는 값 | 실제 값 | 객체의 주소 |
크기제한 | 有 | 無 |
변수타입 첫 글자 | 소문자 | 대문자 (클래스 이므로) |
사용예시 | int a = 100; | Date today = new Date(); |