이 게시글은 인프런 "김영한의 자바 입문" 강의를 바탕으로 작성했습니다:)
package variable;
public class Var1 {
public static void main(String[] args) {
System.out.println(10);
System.out.println(10);
System.out.println(10);
}
}
실행결과
10
10
10
❇️ 패키지(package)
variable라는 패키지를 만들었다면, 해당 패키지에 들어가는 자바 파일 첫줄에 package variable;와 같이 소속된 패키지를 선언해주어야 한다.package variable 선언 위치가 같아야 한다.package variable;
public class Var2 {
public static void main(String[] args) {
int a;//변수 선언 - 숫자를 담을 수 있는 그릇
a = 10;//변수 초기화
System.out.println(a);
System.out.println(a);
System.out.println(a);
}
}
실행결과
10
10
10
코드 분석
변수 선언

int a
integer)를 보관할 수 있는 이름이 a라는 데이터 저장소를 만든다. 이것을 변수라 한다.int는 숫자 정수를 보관할 수 있다.변수에 값 대입

a=10
=은 오른쪽에 있는 값을 왼쪽에 저장한다는 뜻이다.a에 값10을 저장한다.변수 값 읽기

System.out.println(a)
a에 10이 들어가 있다면 자바는 실행 시점에 변수의 값을 읽어서 사용한다.System.out.println(a) //변수 a의 값을 읽음System.out.println(10) //a의 값인 10으로 변경, 숫자 10 출력변수는 이름 그대로 변할 수 있는 수이다. 변수 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);
}
}
실행 결과
10
50
변수 값 변경

변수를 선언하면 컴퓨터의 메모리 공간을 확보해서 그곳에 데이터를 저장할 수 있다. 그리고 변수의 이름을 통해서 해당 메모리 공간에 접근할 수 있다. 즉, 데이터를 보관할 수 있는 공간을 만들고, 그곳에 이름을 부여한다.
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;
한 번에 여러 변수를 선언할 수도 있다.
변수를 선언하고, 선언한 변수에 처음으로 값을 지정하는 것을 변수 초기화라 한다.
package variable;
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);
}
}
실행 결과
1
2
3
4
int b를 사용해서 변수 b를 만들고 그 다음에 바로 b=2를 사용해서 변수 b에 값 2를 저장한다.초기화 하지 않은 변수 읽기
변수가 초기화되지 않았다는 다음과 같은 컴파일 에러가 발생한다.
java: variable a might not have been initialized
❇️ 참고
//System.out.println(a); //주석을 풀면 컴파일 오류 발생변수는 데이터를 다루는 종류에 따라 다양한 형식이 존재한다. 이러한 형식을 타입(type)이라 하고, 형식또는 형이라 한다.
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);
}
}
실행결과
100
10.5
true
A
Hello Java
int : 정수를 다룬다. ex) 1,100,1000double : 실수를 다룬다. ex) 0.2,1.5,100.121boolead : true,false값만 사용할 수 있고, 주로 참과 거짓을 판단하는 곳에서 사용한다.char : 문자 하나를 다룰 때 사용한다. 작은따옴표(')를 사용해서 감싸야한다. ex)A,가String : 문자열을 다룬다. 큰따옴표를 사용해야 한다. ex)"hello java"리터럴
코드에서 개발자가 직접 넣은
100,10.5,true,'A',"Hello Java"와 같은 고정된 값을 프
로그래밍 용어로 리터럴(literal)이라 한다.
int a = 100; //정수 리터럴
double b = 10.5; //실수 리터럴
boolean c = true; //불리언 리터럴
char d = 'A'; //문자 하나 리터럴
String e = "Hello Java"; //문자열 리터
변수의 값은 변할 수 있지만 리터럴은 개발자가 직접 입력한 고정된 값이라, 리터럴 자체는 변하지 않는다.
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; //float보다 더 큰 범위의 숫자를 실수로 사용 가능
}
}
메모리를 적게 사용하면 작은 숫자를 표현할 수 있고, 많이 사용하면 큰 숫자를 표현할 수 있다.
변수를 선언하면 표현 범위에 따라 메모리 공간을 차지한다.
변수와 메모리 공간 크기
byte : -128 ~ 127 (1byte, 2⁸)short : -32,768 ~ 32,767 (2byte, 2¹⁶)int : -2,147,483,648 ~ 2,147,483,647 (약 20억) (4byte, 2³²)long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (8byte, 2⁶⁴)float : 대략 -3.4E38 ~ 3.4E38, 7자리 정밀도 (4byte, 2³²)double : 대략 -1.7E308 ~ 1.7E308, 15자리 정밀도 (8byte, 2⁶⁴)boolean : true,false (1byte)char : 문자 하나(2byte)String : 문자열을 표현한다. 메모리 사용량은 문자 길이에 따라 동적으로 달라진다.리터럴 타입 지정
int를 기본으로 사용한다. 따라서 int범위까지 표현할 수 있다.int 범위인 약 20억을 넘어가면 L을 붙여서 정수 리터럴을 long으로 변경해야 한다. double형을 사용한다. float형을 사용하려면 f를 붙여서 float형으로 지정해야 한다byte, short : 표현 길이가 너무 작다. 또 자바는 기본으로 4byte(int)를 효율적으로 계산하도록 설계되어 있다. → int 를 사용하자byte 타입을 직접 선언하고 여기에 숫자 값을 대입해서 계산하는 일은 거의 없다.float : 표현 길이와 정밀도가 낮다. 실수형은 doubl 을 사용하자char : 문자 하나를 표현하는 일은 거의 없다. 문자 하나를 표현할 때도 문자열을 사용할 수 있다.String a = "b" 와 같이 사용하면 된다.※ 참고: 메모리 용량은 매우 저렴하다. 따라서 메모리 용량을 약간 절약하기 보다는 개발 속도나 효율에 초첨을 맞추는 것이 더 효과적이다.
int, long : 자바는 정수에 기본으로 int 를 사용한다. 만약 20억이 넘을 것 같으면 long 을 쓰면 된다.byte 를 사용한다.double : 실수는 고민하지 말고 double 을 쓰면 된다.boolean : true,false 참 거짓을 표현한다. 이후 조건문에서 자주 사용된다.String : 문자를 다룰 때는 문자 하나든 문자열이든 모두 String 을 사용하는 것이 편리하다.1num , 1st) myVar1 , num1)int , class , public)a-z , A-Z ), 숫자( 0-9 ), 달러 기호($) 또는 밑줄(_)만 사용할 수 있다orderDetail, myAccount) 클래스는 대문자로 시작, 나머지는 소문자로 시작
Person , OrderDetailfirstName , userAccountUSER_LIMIT) org.spring.boot)❇️ 참고 : 변수 이름은 의미있고, 그 용도를 명확하게 설명해야 한다
studentCount , maxScore , userAccount , orderCount : 용도를 명확하게 설명한다.