-> 문자열을 표현하기 위한 자료형이다
(첫글자 대문자 주의)
-> 글자 수에 상관 없이 쌍따옴표(")로 묶인 내용을 할당할 수 있다.
-> 숫자값의 경우 쌍따옴표로 묶이게 되면 문자열로 취급되므로,
숫자와 문자열을 분명하게 구별해야 한다.
변수를 사용하는 방법은 "선언"
과 "할당"
의 두 영역으로 구분된다.
변수의 선언
- 선언은 데이터 형과 사용하고자 하는 변수의 이름을 지정한 후,
세미콜론(;)으로 한 라인을 종료한다.
데이터형 변수이름;
변수의 할당
- 선언된 변수에 원하는 값을 대입하는 과정을 의미한다.
값의 대입은 대입연산자(=)를 사용하며, 우변에서 좌변으로 대입된다.
변수이름 = 값;
변수의 선언과 할당의 통합
데이터형 변수이름 = 값;
String 형의 변수를 선언하고, 쌍 따옴표로 묶인 값을 대입한다.
빈 문자열이나 공백도 문자열 데이터이다.
String msg = "안녕하세요. 자바"; // 문장을 표현,공백포함
String blank = ""; // 빈 문자열 값
String age = "20"; // 숫자값이 쌍따옴표로 묶였다면
// 문자열 이다.
문자열 + 문자열 : 두 문장을 하나로 합쳐준다.
String language = "JA" + "VA"; // "JAVA"
문자열 + 기본자료형 : 기본 자료형의 데이터가 문자열로 변환되고, 두 문장이 합쳐진다.
int age = 20;
String name = "자바학생";
String result = name + age; // "자바학생" + 20 -> "자바학생" + "20"
// -> "자바학생20"
boolean은 true 참, false 거짓 중의 한 가지만 갖는다.
boolean isKorean = true;
char는 홑따옴표(')로 감싸진 한 글자만 대입할 수 있다.
char first = '이';
long, float, double은 다른 데이터 형과의 구별을 위해 갑 뒤에 데이터형의 첫 글자를
접미사로 가질 수 있다. 접미사는 대/소문자를 가리지 않지만 가급적 대문자로 사용하는 것이 좋다.
생성된 변수는 다른 변수에 대입될 수 있다.
int num1 = 100;
int num2 = num1;
반복하여 다른 값이 할당될 수 있지만, 선언은 중복 불가
int num1 = 100;
num1 = 200;
int num1 = 300; // 이미 선언된 변수이므로 에러
선언되지 않은 변수는 사용할 수 없다.
int num1 = 100;
num1 = 200;
num2 = 300; // 선언되지 않은 변수이므로 에러
값이 대입되지 않은 변수는 다른 변수에 대입하거나 출력할 수 없다.
int num1;
int num2 = num1; // 할당되지 않은 변수를 대입하였으므로 에러
System.out.println( num1 ); // 할당되지 않은 변수를 출력하였으 므로 에러
int num = 100;
if( num == 100 ){
// num이 현재 블록의 바깥에서 선언되었으므로 유효
System.out.println( num );
}
int num = 100;
for( int i = 0; i<10; i++ ){
// 변수 num이 현재 블록 밖에서 생성되었으므로 사용가능
System.out.println( num + i );
}
자신이 선언된 블록 밖으로는 빠져나갈 수 없다.
int num = 100;
if( num == 100 ){
int result = num + 100;
}
// 변수 result 가 if블록 안에서 생성되었으므로 사용불가
System.out.println( result );
for( int i=0; i<10; i++ ){
...
}
// i가 for문을 위한 괄호 안에서 사용되었으므로 사용불가
System.out.println( i );
블록안에서 선언된 변수는 블록 밖에서 존재하는 동일한 이름의 변수와는 이름만 동일할 뿐,
다른 값으로 인식된다.
int target = 100;
if( target == 100 ){
int num = target + 100;
} else {
int num = target - 100;
}
2-1. 상수 = 변하지 않은 수
변수와 마찬가지로 메모리상에 존재하지만, 값이 변경될 수 없는 데이터
final 키워드를 사용하여 선언된 변수는 상수로 생성된다.
final int age = 20;
final float PI = 3.14F;
메모리상에 이름이 생성되므로 접근은 가능하지만, 할당한 값을 변경할 수는 없다.(읽기 전용)
final int age = 20;
age = 21; // 상수의 값을 변경하므로 에러