1] 변수
변수란 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 즉 값의 위치를 가리키는 상징적인 이름이다.
1) 사용하는 이유
- 메모리에 직접적으로 접근하는 경우 임의로 바꾸다가 중요한 데이터가 변경될 수 있다.
- 저장해야할 변수가 늘어날수록, 각각의 메모리 주소를 기억하는것은 점점 더 어려워진다.
2)변수 선언과 할당
- 변수를 선언한다는 것은 프로그래밍을 하는동안 사용해야할 메모리들의 공간을 미리 확보하는 것 이다.
- 할당이라는 것은 선언된 변수에 값을 주는것이다. (=값을 초기화한다)
- ex) int a = 10
2] 상수
변수와 비슷하게 메모리 공간을 확보하고 값을 할당할 수 있지만, 한번 할당한 뒤엔 재할당이 불가능한 변수를 말한다.
1) 사용하는 이유
- 프로그램이 실행되면서 값이 변하면 안되는 경우
- 프로그래머가 실수로 상수에 값을 재할당하고자 하면 에러가 발생하여 실수를 방지할 수 있다.
- 코드 가독성을 높이고 싶은 경우
- 상수를 사용하면 값을 저장하고 있는 상수명으로 값을 사용할 수 있기 때문에 코드 가독성이 향상된다.
- 코드 유지관리를 손쉽게 하고자 하는 경우
3] 타입
타입은 어떤 값의 유형 및 종류를 의미하며, 타입에 따라 값이 차지하는 메모리 공간의 크기와, 값이 저장되는 방식이 결정된다.
1) 종류
- 기본 타입(primitive type)
- 실제 값이 저장되는 타입들로 아래에서 좀더 자세하게 알아보자
- 정수
- 실수
- 문자
- 논리형
- 참조 타입(reference type)
- 값이 저장된 메모리의 주소가 저장된 타입
- 기본 타입외 타입들로 객체 같은 것들을 뜻한다.
4] 리터럴
그 자체로 값이 되는 것들을 뜻하는데, 사람들과 흔히 약속된 아라비아 숫자로 표현되는 값 또는 문자와 문자열 그 자체를 가리킨다.
5] 정수타입
정수 타입은 숫자를 나타내는 타입으로, byte, short, int, long 의 총 4개의 타입으로 분류 된다.
- byte는 1byte 2^(8) 값까지 표현 할 수 있다.
- short는 2byte 2^(16) 값까지 표현 할 수 있다.
- int는 4byte 2^(32) 값까지 표현 할 수 있다.
- long는 8byte 2^(128) 값까지 표현 할 수 있다.
1)특징
- 오버플로우 또는 언더플로우가 발생 할 수 있다.
- 먼저 여기서 말하는 오버플로우나 언더플로우는 어떤 정수타입에서 가지는 값이 표현할 수 있는 범위를 넘어 섰을 때를 가리킨다.
- 예를들어 1바이트는 2^(8)까지 표현이 가능해 -128 ~ 127 까지의 값을 가질 수 있는데, 내가 표현하고자 하는 값이 128인 경우엔 127 다음을 넘어서 -128이 된다.
- 이와 반대로 언더 플로우는 -129를 할당하고자 하면 바이트 변수에서는 그 값이 127로 언더플로우가 발생하게 된다.
- 타입종류가 메모리가 커지는 방향으로 자동 타입변환이 가능하다
6] 실수타입
실수는 소수점을 가지는 값을 의미하며, float형과 double형으로 분류된다.
- float형은 4byte를 가지는 데이터 타입으로 리터럴에는 반드시 접미사 f를 붙여주어야 한다.
- double형은 8byte를 가지는 데이터 타입으로 리터럴은 그냥 사용해도 된다. 그리고 double은 float보다 두배의 메모리를 사용하여 값을 표현하기 떄문에 실수를 표현함에있어 그 정밀도가 훨씬 높다.
7] 논리타입
참과 거짓을 표현하는 데이터 타입으로 첫글자도 소문자를 쓰는 true과 false를 쓴다.
8] 문자형 타입
문자열이 아닌 문자형으로 2byte 크기의 char형 오직 하나만 있다.
- 문자형 리터럴을 작성할 땐 큰 따옴표(””)가 아닌 작은 따옴표(’’)를 사용해야 한다. 큰 따옴표를 사용한 리터럴은 문자형 리터럴이 아니라 문자열 리터럴로 인식된다.
- 자바는 유니코드로 문자를 저장한다. 유니코드는 전 세계의 모든 문자를 컴퓨터에서 일관되게 다루기 위한 국제 표준으로, 각 문자에 숫자 코드 번호를 부여한 것을 말한다.