1. 변수 시작
Var1
package variable;
public class Var1 {
public static void main(String[] args) {
System.out.println(10);
System.out.println(10);
System.out.println(10);
}
}
패키지(package)
- 자바 파일을 구분하기 위한 폴더
- variable이라는 패키지를 만들었다면, 해당 패키지에 들어가는 자바 첫줄에 package variable; 과 같이
소속된 패키지를 선언해주어야 한다.
숫자 10을 3번 출력하는 대신 숫자 20을 3번 출력하도록 코드를 변경하려면
package variable;
public class Var1 {
public static void main(String[] args) {
System.out.println(20); //변경 10->20
System.out.println(20); //변경 10->20
System.out.println(20); //변경 10->20
}
}
숫자 10을 모두 숫자 20으로 변경해야 한다. 지금은 3개라서 간단하지만
만약 코드가 1억개라면?
![](https://t1.daumcdn.net/keditor/emoticon/face/large/041.png)
어딘가에 값을 보관해두고 필요할 때 값을 꺼내서 읽을 수 있는 저장소. 즉, 데이터를 담을 수 있는 그릇이 필요하다.
→ 변수(variable) 기능 사용
Var2
a = 10 실행 결과
package variable;
public class Var2 {
public static void main(String[] args) {
int a; //변수 선언 (숫자를 담을 수 있는 그릇을 만듦)
a = 10; //변수 초기화 (10을 a에 대입)
System.out.println(a);
System.out.println(a);
System.out.println(a);
}
}
a = 20 실행 결과
package variable;
public class Var2 {
public static void main(String[] args) {
int a; //변수 선언 (숫자를 담을 수 있는 그릇을 만듦)
a = 20; //10 -> 20으로 변경
System.out.println(a);
System.out.println(a);
System.out.println(a);
}
}
a의 값을 변경하면 출력 결과가 모두 함께 변경된다.
* 개념 정리
1) int a
숫자 정수(integer)를 보관할 수 있는 'a'라는 데이터 저장소. 이것을 변수라고 한다.
변수 선언: 변수를 만드는 것
2) a = 10
= : 오른쪽에 있는 값을 왼쪽에 저장한다
변수 a에 값 10을 저장한다
변수 초기화: 선언한 변수에 처음으로 값을 대입해서 저장하는 것
3) System.out.printIn(a);
자바는 실행 시점에 변수의 값을 읽어서 사용한다.
System.out.printIn(a) // 변수 a의 값을 읽음
System.out.printIn(10) // a의 값인 10으로 변경, 숫자 10 출력
2. 변수 값 변경
변수 a에 저장된 값은 언제든지 바꿀 수 있다.
변수의 값을 변경하면 변수에 들어있던 기존 값은 삭제된다.
package variable;
public class Var3 {
public static void main(String[] args) {
int a; // 변수 선언
a = 10; // 변수 초기화 a(10)
System.out.println(a);
a = 50; // 변수 값 변경: a(10 -> 50)
System.out.println(a);
}
}
3. 변수 선언과 초기화
1) 변수 선언
변수를 선언하면 컴퓨터의 메모리 공간을 확보해서 그곳에 데이터를 저장할 수 있고, 변수의 이름을 통해서 해당 메모리 공간에 접근할 수 있다.
즉, 데이터를 보관할 수 있는 공간을 만들고, 그곳에 이름을 부여한다.
package variable;
public class Var4 {
public static void main(String[] args) {
int a;
int b;
int c,d;
}
}
변수는 하나씩 선언할 수도 있고
int a;
int b;
한번에 여러 변수를 선언할 수도 있다.
int c,d;
2) 변수 초기화
변수를 선언하고, 선언한 변수에 처음으로 값을 저장하는 것
public class Var5 {
public static void main(String[] args) {
//1. 변수 선언, 초기화 각각 따로
int a;
a = 1;
System.out.println(a);
int b = 2; //2. 변수 선언과 초기화를 한번에
System.out.println(b);
int c = 3, d =4; //3. 여러 변수 선언과 초기화를 한번에
System.out.println(c);
System.out.println(d);
}
}
* 변수는 초기화해야 한다.
package variable;
public class Var6 {
public static void main(String[] args) {
int a;
System.out.println(a);
}
}
4. 변수 타입(type) 1
Var7
package variable;
public class Var7 {
public static void main(String[] args) {
int a = 100; // 정수
double b = 10.5; // 실수
boolean c = true; // 불리언(boolean) true, false 입력 가능
char d = 'A'; //문자 하나
String e = "Hello Java"; // 문자열, 문자열을 다루기 위한 특별한 타입
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
}
}
변수 타입
- int: 정수 ex) 1, 100, 1000
- double: 실수 ex) 0.2, 1.5, 100.21
- boolean: 불리언 타입. true, false 값
- char: 문자 하나. 작은따옴표(')를 사용해서 감싸야 함 ex) 'A', '가'
- String: 문자열. 큰따옴표(")를 사용해서 감싸야 함 ex) "hello java"
※ String은 첫 글자가 대문자로 시작하는 특별한 타입
리터럴(literal)
코드에서 개발자가 직접 적은 100, 10.5, true, 'A', "Hello Java"와 같은 고정된 값
int a = 100; //정수 리터럴
double b = 10.5; //실수 리터럴
boolean c = true; //불리언 리터럴
char d = 'A'; //문자 하나 리터럴
String e = "Hello Java"; //문자열 리터럴
변수의 값은 변할 수 있지만 리터럴은 개발자가 직접 입력한 고정된 값이다.
따라서 리터럴 자체는 변하지 않는다.
5. 변수 타입(type) 2
package variable;
public class Var8 {
public static void main(String[] args) {
//정수
byte b = 127; //-128 ~ 127
short s = 32767; // -32,768 ~ 32,767
int i = 2147483647; // -2,147,483,648 ~ 2,147,483,647 (약 20억)
// -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
long l = 9223372036854775807L;
//실수
float f = 10.0f;
double d = 10.0;
}
}
○ 정수형
- byte: -128 ~ 127
파일 전송, 파일 복사 등에 주로 사용
- short: -32,768 ~ 32,767
- int: -2,147,483,648 ~ 2,147,483,647 (약 20억)
- long: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
정수 리터럴은 int을 기본적으로 사용한다.
숫자가 int 범위인 약 20억을 넘어가면 L을 붙여서 리터럴을 long으로 변경해야 한다.
(대문자 L, 소문자 l 모두 가능하지만 소문자 l은 숫자 1과 착각할 수 있어서 권장하지 않음)
○ 실수형
- float: 대략 -3.4E38 ~ 3.4E38, 7자리 정밀도
float형을 사용하려면 f를 붙여서 float형으로 지정해야 함
- double: 대략 -1.7E308 ~ 1.7E308, 15자리 정밀도
실수는 고민하지 말고 double을 쓰면 된다.
○ 기타
- boolean: true, false 참 거짓을 표현 - 조건문에서 자주 사용
- char: 문자 하나를 표현. but 문자 하나를 표현할 때도 문자열(String)을 사용할 수 있음
- String: 문자를 다룰 때는 문자 하나든 문자열이든 모두 String을 사용하는 것이 편리함
6. 변수 명명 규칙
○ 규칙 (필수)
- 변수 이름은 숫자로 시작할 수 없다. (ex: 1num, 1st) - cf) 숫자를 이름에 포함하는 것은 가능함 (ex: myVar1)
- 이름에는 공백이 들어갈 수 없다.
- 자바의 예약어를 변수 이름으로 사용할 수 없다. (ex: int, class, public)
- 변수 이름에는 영문자( a-z , A-Z ), 숫자( 0-9 ), 달러 기호( $ ) 또는 밑줄( _ )만 사용할 수 있다.
○ 관례 (필수는 아니지만 전세계 개발자가 따르는 관례)
●낙타표기법(Camel Case)
첫 번째 단어는 소문자로 시작하고 그 이후의 단어는 대문자로 시작하는 표기법
ex: orderDetail, myAccount
●클래스는 대문자로 시작, 나머지는 소문자로 시작 (둘 다 낙타표기법은 적용)
클래스: Person, OrderDetail
변수를 포함한 나머지: firstName, userAccount
cf) 예외 2가지
① 상수
상수는 모두 대문자를 사용하고 언더바로 구분한다.
ex: USER_LIMIT
② 패키지
패키지는 모두 소문자를 사용한다.
ex: org.spring.boot