variable
)와 자료형(data type
)variable
variable
는 data
를 저장하기 위해 이름을 할당받은 메모리 공간
을 의미한다.대소문자를 구분한다.
변수의 이름은 숫자로 시작할 수 없다.
$
과 _
이외의 특수문자는 사용할 수 없다.
키워드 (지정된 예약어)는 변수의 이름으로 사용할 수 없다.
권장사항
시작문자는 소문자
로 문자 사이에 공백은 없도록 한다.
합성어일 경우 첫 문자는 소문자
, 두번째 단어부터 첫 문자는 대문자
(camelCase
)
상수의 이름은 모두 대문자
, 단어 사이의 구분은 _
로 한다.
합성어의 경우 상수의 경우
userName PI
telNumber MAX_NUMBER
타입 | 예약어 |
---|---|
기본자료형 | boolean, char, byte, short, int, long, float, double |
접근지정자 | private, protected, public |
클래스 | class, abstract, interface, extends, implements, enum |
메서드 | void, return |
제어문 | if, else, swich, case, default, for, do, while, break, continue |
논리 | true, false |
예외 처리 | try, catch, finally, throw, throws |
기타 | transient, volatile, package, import, synchronized, native, final, static, strictfp, assert, this, super, instanceof, new, etc. |
// 변수는 선언만 할 수도 있고, 선언과 초기화를 동시에 할 수도 있다.
int userNumber; // 선언만 하는 경우.
userNumber = 7; // 선언된 변수에 값을 할당.(초기화)
---------------------
int userNumber = 7; // 선언과 초기화를 동시에 하는 경우.
// [타입] [변수명] [대입연산자] [변수값]
// 타입 : int
// 타입은 기본자료형과 참조자료형이 있다.
// 변수명 : userNumber
// 대입연산자 : =
// 변수값 : 7
---------------------
int number1, number2; // 같은 타입의 변수를 동시에 선언을 할 수 있다.
---------------------
int num1=1, num2=2; // 같은 타입의 변수는 동시에 선언과 초기화 할 수 있다. 다른 타입은 불가능하다.
---------------------
// 잘못된 예시
// 같은 타입이면 동시에 선언이 가능하다. 하지만 이미 선언된 변수는 동시에 초기화는 불가능하다.
int num7, num8;
num7=7, num8=8; // ERROR 발생
---------------------
final double CONSTANT_VALUE_PI = 3.14; // 상수는 자료형 앞에 final을 붙여 선언한다.
//잘못된 예시
// 할당한 값은 변경할 수 없다.
final double CONSTANT_VALUE_PI = 3.14;
CONSTANT_VALUE_PI = 5.14; // ERROR 발생
data type
data type
은 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 역할을 한다.Data type
Primitive type
Character
char
Interger
byte
short
int
long
Boolean
boolean
Floating-point
float
double
Reference type
String
Array
etc.
primitive type
실제 값을 저장한다.
사용하기 전에 반드시 선언을 해야한다.
기본값이 존재한다.
기본자료형들은 모두 소문자로 시작한다.
null
을 가질 수 없다. 기본형 타입에 null
을 넣고 싶다면 래퍼클래스( wrapper class
)를 활용한다.
기본자료형에는 8가지 유형이 있다.
byte
, short
, int
, long
, default : int
연산시 결과 값은 정수형 int
로 표현된다.
값의 범위를 벗어나게 되면 오버플로우(overflow
)와 언더플로우(underflow
)가 발생하고 전혀 다른 값이 저장된다. 최소값부터 다시 반복되는 순환형 구조이다. byte
의 경우 127을 벗어나면 -128부터 다시 시작된다.
byte
: 1byte
자료형. 동영상, 음악파일, 실행파일의 자료를 처리할 때 사용.
short
: 2byte
자료형. C/C++ 언어 호환 시 사용.
int
4byte
자료형으로 정수에 대한 default
자료형이다.
모든 숫자(리터럴)은 int로 저장된다.
32bit 를 초과하는 숫자는 long 자료형으로 처리해야한다.
long
8byte
자료형
숫자 뒤에 알파벳 L
또는 l
을 써서 long
자료형임을 표시해야한다.
int num = 123456789000; //오류
long lnum = 123456789000; //오류
long lnum = 123456789000L;
float
, double
, default : double
실수는 부동소수점 방식으로 가수부와 지수부로 표현한다.
3.141592 = 0.3141592 X 101이므로 가수는 0.3141592 , 지수는 1 이다.
실수형의 경우 값의 범위 중 최대값을 벗어나면 오버플로우(overflow
), 최소값을 벗어나면 언더플로우(underflow
)가 발생하고 각각의 경우 값은 Infinity
, 0.0
으로 변환된다.
float
: 4byte
자료형.
부호 bit 1 + 지수 bit 8 + 가수 bit 23 = 32bit = 4byte
default 자료형은 double 이므로 실수 값 끝에 F
또는 f
로 float를 표기한다.
유효자릿수(정밀도)는 6~7 자리
double
: 8byte
자료형. 실수에 대한 default
자료형이다.
부호 bit 1 + 지수 bit 11 + 가수 bit 52 = 64bit = 8byte
실수 값 끝에 D
또는 d
로 double을 표기한다. 생략도 가능하다.
유효자릿수(정밀도)는 15~16자리
float fnum = 3.141592F; // default 자료형은 double 이므로 F 또는 f로 float 를 표기
double dnum = 3.141592; // D 또는 d를 표기. 생략도 가능하다.
// 지수표기법
// 빈칸없이 연결되어 있어야 한다. 3.14e +6 같은 경우는 안된다.
double d1 = 3.14e+6; // 3140000
double d2 = 3.14e6; // 3140000
double d3 = 3.14E+6; // 3140000
double d4 = 3.14E6; // 3140000
char
, default : '\u0000'
2byte
자료형. 데이터 표현 범위는 0 ~ 65,535
'
로 감싸주어야 한다.UNICODE
를 기본으로 사용한다.ASCII
, 유니코드 UNICODE
, etc.char c1 = 'A'; // 문자
char c2 = 65; // ASCII
char c3 = '\u0041'; // UNICODE , 0041은 65의 16진수.
// 모두 문자 A 를 표현한다.
boolean
, default : false
1byte
자료형
true
, false
두 가지만 나타낸다.
값이 존재하는지, 배열이 비었는지, 결과가 참인지 거짓인지등을 표현한다.
Summary table
유형 | 자료형 | 기본값 | 자료크기 | 값의 범위 |
---|---|---|---|---|
논리 | boolean | false | 1byte | true,false |
문자 | char | '\u0000' | 2byte | 0 ~ 216 -1 |
정수 | byte | 0 | 1byte | -27 ~ 27 -1 |
short | 0 | 2byte | -215 ~ 215 -1 | |
int | 0 | 4byte | -231 ~ 231 -1 | |
long | 0L | 8byte | -263 ~ 263 -1 | |
실수 | float | 0.0f | 4byte | 1+8+23 |
double | 0.0d | 8byte | 1+11+52 |
reference type
기본자료형은 실제 값이 저장되지만 참조자료형은 자료가 저장된 공간의 주소를 저장한다.
실제 값이 있는 주소를 가지고 있어서 그 주소를 참조해서 값을 가져온다.
메모리의 힙 heap
에 실제 값을 저장하고, 그 주소를 가지고 있는 변수는 스택 stack
에 저장한다.
참조형 변수는 null로 초기화 시킬 수 있다
배열 array
, 클래스 class
, etc.
참조자료형의 자세한 설명은 후에 객체지향에서 다룬다.