자바 언어를 배울 때 가장 먼저 배우는 것은 변수입니다 변수라는 것은 변할 수 있는 수를 뜻하며, 프로그래밍을 할 때 가장 많이 사용하는 것도 변수입니다 변수라는 것을 배우며 자바 언어의 기초를 시작해봅시다
ㅤ
변수는 수학적으로는 변할 수 있는 수로써 다양한 값이 대입될 수 있는 수를 말합니다.
컴퓨터의 세계에서도 변수는 정수 또는 실수 또는 그 외의 다양한 값을 대입할 수 있으나 이렇게 얘기하면 어렵고 헷갈릴 수 있기 때문에 코드라떼에서는 변수는 하나의 값을 저장할 수 있는 상자로 설명합니다.
자바의 변수를 상자로 비유하면, 변수는 값을 저장하는 상자라고 할 수 있습니다. 상자에는 다양한 형태와 크기가 있고, 상자에 담길 수 있는 물건의 종류가 다양하듯이, 자바의 변수에도 다양한 데이터 형태와 크기가 있습니다.
예를 들어, 상자에는 다음과 같은 특징이 있습니다.
상자에는 물건을 저장할 수 있습니다.
상자에는 고유한 이름이 있어 구분할 수 있습니다.
상자에는 특정한 물건만 담을 수 있습니다. (예: 작은 상자에는 큰 물건을 넣을 수 없습니다.)
자바의 변수도 마찬가지로 다음과 같은 특징이 있습니다.
변수에는 값을 저장할 수 있습니다.
변수에는 고유한 이름이 있어 구분할 수 있습니다.
변수에는 특정한 데이터 형식만 저장할 수 있습니다. (예: int형 변수에는 정수만 저장할 수 있습니다.)
ㅤ
변수의 구문
[자료형(종류)] [변수명(상자명)] = [값];
만약에 하나의 정수값을 저장하는 변수는 이렇게 작성할 수 있습니다. 상자를 준비하고 고유한 이름을 붙이는 것과 같습니다.
int number;
그리고 변수에 100이라는 값을 저장하려면 다음과 같이 합니다. 상자에 물건을 넣는 것과 같습니다.
int number;
number = 100;
처음부터 100의 값을 저장하도록 하는 변수는 이렇게 작성할 수 있습니다. 상자를 준비하는 동시에 물건을 넣는 것과 같습니다.
int number = 100;
변수는 자료형에 맞는 하나의 값만 저장할 수 있으며 값이 자료형이 맞지 않으면 저장할 수 없습니다.
// 틀린 구문, 정수형 자료형에 실수를 저장할 수 없다.
int number = 100.1;
큰 상자에 작은 물건을 넣을 수 있어도 작은 상자에 큰 물건을 못 넣듯이
값이 자료형의 종류뿐만 아니라 크기에 맞지 않으면 저장할 수 없습니다.
// 틀린 구문, short 자료형은 -32,768 ~ +32,767 범위의 값만 저장할 수 있다
short number = 100000000;
변수에는 하나의 값만 저장할 수 있으므로, 이러한 명령어를 작성하면 number 변수에 저장된 값은 100에서 200으로 변경됩니다.
int number = 100;
number = 200;
ㅤ
천 리 길도 한 걸음부터, 실습도구에 해당 코드를 작성해 봅시다.
ㅤ
코드 작성
System.out.println(20000);
출력
20000
ㅤ
코드 작성
System.out.println("Hello Codelatte!");
출력
Hello Codelatte!
ㅤ
byte
변수는 -128 ~ 127의 범위의 정수를 저장할 수 있는 변수입니다.
코드 작성
byte num = 100;
System.out.println(num);
출력
100
ㅤ
short
변수는 -32,768 ~ 32,767 범위의 정수를 저장할 수 있는 변수입니다.
코드 작성
short num = 10000;
System.out.println(num);
출력
10000
ㅤ
int
변수는 -2,147,483,648 ~ 2,147,483,647 범위의 정수를 저장할 수 있는 변수입니다
코드 작성
int num = 2100000;
System.out.println(num);
출력
2100000
ㅤ
long
변수는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 범위의 정수를 저장할 수 있는 변수입니다.
-2,147,483,648 ~ 2,147,483,647의 범위가 넘어가는 정수를 저장할 경우 접미사 L
을 붙여야 합니다.
코드 작성
long num = 10000000000L;
System.out.println(num);
출력
10000000000
ㅤ
작은 범위의 실수를 저장할 때 사용하는 변수이며 float
변수에 저장할 때 접미사 F
를 붙여야 합니다
코드 작성
float num = 21.3123F;
System.out.println(num);
출력
21.3123
ㅤ
더 많은 표현 범위의 실수를 저장할 때 사용하는 변수이며 double
변수에 저장할 때 접미사를 붙이지 않아도 됩니다.
코드 작성
double num = 21.312312312;
System.out.println(num);
출력
21.312312312
ㅤ
char
변수는 문자 하나를 저장하는 변수를 만들 때 사용하는 변수입니다.
코드 작성
char alphabet = 'A';
System.out.println(alphabet);
출력
A
ㅤ
String
변수는 문자열을 저장하는 변수를 만들 때 사용하는 변수입니다. 문자 하나를 저장할 때는 따옴표(')
를 사용한다면 문자열을 표기할 때는 쌍따옴표(")
를 사용합니다.
코드 작성
String text = "오늘 하루도 힘차게!";
System.out.println(text);
출력
오늘 하루도 힘차게!
ㅤ
boolean
변수는 true
또는 false
값을 저장하는 변수입니다.
코드 작성
boolean isSunday = true;
System.out.println(isSunday);
출력
true
ㅤ
자바 변수의 기본 자료형(Primitive Type) 은 다음과 같습니다.
자료형 | 키워드 | 기본값 | 크기 | 범위 |
---|---|---|---|---|
정수 | byte | 0 | 1 byte | -128 ~+127 |
정수 | short | 0 | 2 byte | -32,768 ~ +32,767 |
정수 | int | 0 | 4 byte | -2,147,483,648 ~ + 2,147,483,647 |
정수 | long | 0 | 8 byte | -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 |
실수 | float | 0.0 | 4 byte | 약1.4E-045 ~ 3.4E+038 |
실수 | double | 0.0 | 8 byte | 약4.9E-324 ~ 1.8E+308 |
문자 | char | \u0000 | 2 byte | 0 ~ 65,535 (유니코드문자) |
논리 | boolean | JVM dependent 컴퓨팅 시는 1 byte | true(1)또는false(0) |
정수형 자료형을 사용한다면 int를 선언하는 것을 권장드립니다.
그 이유는 다음과 같습니다.
자바에서 사용하는 기본 연산 단위는 4byte 입니다.
일반적인 상황에서는 약 21억이 넘어가는 수를 사용하는 경우가 많이 없습니다.
byte
, short
자료형은 int
로 암시적 형변환이 발생하기 때문입니다. (암시적 형변환은 '형변환' 강의에서 설명)
2023.03.25 : 수강 완료
왜 char에서 따옴표를 쓰고 String에선 쌍따옴표를 쓰나요? char에서 쌍따옴표 String에서 따옴표를 쓰면 안되는 이유가 뭔지 궁금합니다.
안녕하세요. 코드라떼입니다 :) 쌍따옴표와 따옴표는 자바 언어의 문법으로 정해졌습니다. 쌍따옴표는 문자열 리터럴을 구분할 때 쓰고, 따옴표는 문자 리터럴을 구분할 때 사용합니다. 감사합니다.
int num1 = 100; num1 = 200; 이걸 출력하면 200이 나오더라구요 int num1 = 100;이라고 선언을 했는데 그럼 100이 num1에 저장되어있을거잖아요 왜 200이 나오죠? 100은 어디로 간거죠?
안녕하세요. 코드라떼입니다 :) int num1 = 100; num1 = 200; 코드는 크게 두 개의 명령어로 나뉘어 있으며 첫 번째 줄과 두 번째 줄의 의미는 다음과 같습니다. 1. int num1 = 100; int 자료형이며 이름은 num1 변수를 생성하고, num1 변수에 정수 100을 저장하라 2. num1 = 200 num1 변수에 200을 저장하라.(num1 변수에 저장된 값이 갱신됨) 변수에는 하나의 값만 저장할 수 있으므로, 기존의 num1 변수에 정수 100이 저장되어 있다가 num1 = 200; 명령어를 만나면 num1 변수에 정수 200이 저장되며 기존에 저장된 100은 사라집니다. 감사합니다.
println과 byte 모두 제가 직접 타이핑을 하면 에디터가 인식을 못합니다. 복붙하면 인식이 되네요 무슨 차이일까요 바이트입력을 못해서 못넘어가네요 ㅠㅠ
안녕하세요. 코드라떼입니다 :) 에디터라 하심은 사이트 내의 에디터를 말씀하시는 걸까요 아니면 인텔리제이라는 에디터를 말씀하시는 걸까요. 바이트 입력을 못하신다는 부분을 좀 더 자세히 설명 부탁드려도 될까요? 혹시 라이브로 질문/답변을 받고 싶으신 경우 코스 '도전하기'를 하시면 질문을 할 수 있는 오픈채팅 주소가 노출됩니다. 감사합니다 :)
문자를 문자열로 쓰면 2byte를 할당하나요? String text = "A"; System.out.println(text);
안녕하세요. 코드라떼입니다. 변수(String text)와 리터럴("A")을 분리해서 생각해야 합니다. 일단 String은 참조 자료형 변수로 이후에 객체에 대해서 배우면 아시게 됩니다. 그리고 참조 자료형 변수는 64bit 컴퓨팅 환경에서 8byte의 메모리를 점유합니다. 그리고 문자열 리터럴은 자바 가상 머신에서 관리하는 것으로 특정한 메모리 공간(이후에 배웁니다)에 저장되며 2byte라고 확답할 수 없습니다. 문자 'A'는 2byte로 표현이 가능하나 문자열 "A"는 조금 다르게 관리합니다. 그래서 문자를 저장할 때는 2byte의 메모리 공간을 가지는 기본 자료형 char 변수에 저장하고, 문자열은 참조 자료형 String 변수에 저장합니다. 감사합니다.^^
자바 언어를 배울 때 가장 먼저 배우는 것은 변수입니다 변수라는 것은 변할 수 있는 수를 뜻하며, 프로그래밍을 할 때 가장 많이 사용하는 것도 변수입니다 변수라는 것을 배우며 자바 언어의 기초를 시작해봅시다
ㅤ
변수는 수학적으로는 변할 수 있는 수로써 다양한 값이 대입될 수 있는 수를 말합니다.
컴퓨터의 세계에서도 변수는 정수 또는 실수 또는 그 외의 다양한 값을 대입할 수 있으나 이렇게 얘기하면 어렵고 헷갈릴 수 있기 때문에 코드라떼에서는 변수는 하나의 값을 저장할 수 있는 상자로 설명합니다.
자바의 변수를 상자로 비유하면, 변수는 값을 저장하는 상자라고 할 수 있습니다. 상자에는 다양한 형태와 크기가 있고, 상자에 담길 수 있는 물건의 종류가 다양하듯이, 자바의 변수에도 다양한 데이터 형태와 크기가 있습니다.
예를 들어, 상자에는 다음과 같은 특징이 있습니다.
상자에는 물건을 저장할 수 있습니다.
상자에는 고유한 이름이 있어 구분할 수 있습니다.
상자에는 특정한 물건만 담을 수 있습니다. (예: 작은 상자에는 큰 물건을 넣을 수 없습니다.)
자바의 변수도 마찬가지로 다음과 같은 특징이 있습니다.
변수에는 값을 저장할 수 있습니다.
변수에는 고유한 이름이 있어 구분할 수 있습니다.
변수에는 특정한 데이터 형식만 저장할 수 있습니다. (예: int형 변수에는 정수만 저장할 수 있습니다.)
ㅤ
변수의 구문
[자료형(종류)] [변수명(상자명)] = [값];
만약에 하나의 정수값을 저장하는 변수는 이렇게 작성할 수 있습니다. 상자를 준비하고 고유한 이름을 붙이는 것과 같습니다.
int number;
그리고 변수에 100이라는 값을 저장하려면 다음과 같이 합니다. 상자에 물건을 넣는 것과 같습니다.
int number;
number = 100;
처음부터 100의 값을 저장하도록 하는 변수는 이렇게 작성할 수 있습니다. 상자를 준비하는 동시에 물건을 넣는 것과 같습니다.
int number = 100;
변수는 자료형에 맞는 하나의 값만 저장할 수 있으며 값이 자료형이 맞지 않으면 저장할 수 없습니다.
// 틀린 구문, 정수형 자료형에 실수를 저장할 수 없다.
int number = 100.1;
큰 상자에 작은 물건을 넣을 수 있어도 작은 상자에 큰 물건을 못 넣듯이
값이 자료형의 종류뿐만 아니라 크기에 맞지 않으면 저장할 수 없습니다.
// 틀린 구문, short 자료형은 -32,768 ~ +32,767 범위의 값만 저장할 수 있다
short number = 100000000;
변수에는 하나의 값만 저장할 수 있으므로, 이러한 명령어를 작성하면 number 변수에 저장된 값은 100에서 200으로 변경됩니다.
int number = 100;
number = 200;
ㅤ
천 리 길도 한 걸음부터, 실습도구에 해당 코드를 작성해 봅시다.
ㅤ
코드 작성
System.out.println(20000);
출력
20000
ㅤ
코드 작성
System.out.println("Hello Codelatte!");
출력
Hello Codelatte!
ㅤ
byte
변수는 -128 ~ 127의 범위의 정수를 저장할 수 있는 변수입니다.
코드 작성
byte num = 100;
System.out.println(num);
출력
100
ㅤ
short
변수는 -32,768 ~ 32,767 범위의 정수를 저장할 수 있는 변수입니다.
코드 작성
short num = 10000;
System.out.println(num);
출력
10000
ㅤ
int
변수는 -2,147,483,648 ~ 2,147,483,647 범위의 정수를 저장할 수 있는 변수입니다
코드 작성
int num = 2100000;
System.out.println(num);
출력
2100000
ㅤ
long
변수는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 범위의 정수를 저장할 수 있는 변수입니다.
-2,147,483,648 ~ 2,147,483,647의 범위가 넘어가는 정수를 저장할 경우 접미사 L
을 붙여야 합니다.
코드 작성
long num = 10000000000L;
System.out.println(num);
출력
10000000000
ㅤ
작은 범위의 실수를 저장할 때 사용하는 변수이며 float
변수에 저장할 때 접미사 F
를 붙여야 합니다
코드 작성
float num = 21.3123F;
System.out.println(num);
출력
21.3123
ㅤ
더 많은 표현 범위의 실수를 저장할 때 사용하는 변수이며 double
변수에 저장할 때 접미사를 붙이지 않아도 됩니다.
코드 작성
double num = 21.312312312;
System.out.println(num);
출력
21.312312312
ㅤ
char
변수는 문자 하나를 저장하는 변수를 만들 때 사용하는 변수입니다.
코드 작성
char alphabet = 'A';
System.out.println(alphabet);
출력
A
ㅤ
String
변수는 문자열을 저장하는 변수를 만들 때 사용하는 변수입니다. 문자 하나를 저장할 때는 따옴표(')
를 사용한다면 문자열을 표기할 때는 쌍따옴표(")
를 사용합니다.
코드 작성
String text = "오늘 하루도 힘차게!";
System.out.println(text);
출력
오늘 하루도 힘차게!
ㅤ
boolean
변수는 true
또는 false
값을 저장하는 변수입니다.
코드 작성
boolean isSunday = true;
System.out.println(isSunday);
출력
true
ㅤ
자바 변수의 기본 자료형(Primitive Type) 은 다음과 같습니다.
자료형 | 키워드 | 기본값 | 크기 | 범위 |
---|---|---|---|---|
정수 | byte | 0 | 1 byte | -128 ~+127 |
정수 | short | 0 | 2 byte | -32,768 ~ +32,767 |
정수 | int | 0 | 4 byte | -2,147,483,648 ~ + 2,147,483,647 |
정수 | long | 0 | 8 byte | -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 |
실수 | float | 0.0 | 4 byte | 약1.4E-045 ~ 3.4E+038 |
실수 | double | 0.0 | 8 byte | 약4.9E-324 ~ 1.8E+308 |
문자 | char | \u0000 | 2 byte | 0 ~ 65,535 (유니코드문자) |
논리 | boolean | JVM dependent 컴퓨팅 시는 1 byte | true(1)또는false(0) |
정수형 자료형을 사용한다면 int를 선언하는 것을 권장드립니다.
그 이유는 다음과 같습니다.
자바에서 사용하는 기본 연산 단위는 4byte 입니다.
일반적인 상황에서는 약 21억이 넘어가는 수를 사용하는 경우가 많이 없습니다.
byte
, short
자료형은 int
로 암시적 형변환이 발생하기 때문입니다. (암시적 형변환은 '형변환' 강의에서 설명)
2023.03.25 : 수강 완료
왜 char에서 따옴표를 쓰고 String에선 쌍따옴표를 쓰나요? char에서 쌍따옴표 String에서 따옴표를 쓰면 안되는 이유가 뭔지 궁금합니다.
안녕하세요. 코드라떼입니다 :) 쌍따옴표와 따옴표는 자바 언어의 문법으로 정해졌습니다. 쌍따옴표는 문자열 리터럴을 구분할 때 쓰고, 따옴표는 문자 리터럴을 구분할 때 사용합니다. 감사합니다.
int num1 = 100; num1 = 200; 이걸 출력하면 200이 나오더라구요 int num1 = 100;이라고 선언을 했는데 그럼 100이 num1에 저장되어있을거잖아요 왜 200이 나오죠? 100은 어디로 간거죠?
안녕하세요. 코드라떼입니다 :) int num1 = 100; num1 = 200; 코드는 크게 두 개의 명령어로 나뉘어 있으며 첫 번째 줄과 두 번째 줄의 의미는 다음과 같습니다. 1. int num1 = 100; int 자료형이며 이름은 num1 변수를 생성하고, num1 변수에 정수 100을 저장하라 2. num1 = 200 num1 변수에 200을 저장하라.(num1 변수에 저장된 값이 갱신됨) 변수에는 하나의 값만 저장할 수 있으므로, 기존의 num1 변수에 정수 100이 저장되어 있다가 num1 = 200; 명령어를 만나면 num1 변수에 정수 200이 저장되며 기존에 저장된 100은 사라집니다. 감사합니다.
println과 byte 모두 제가 직접 타이핑을 하면 에디터가 인식을 못합니다. 복붙하면 인식이 되네요 무슨 차이일까요 바이트입력을 못해서 못넘어가네요 ㅠㅠ
안녕하세요. 코드라떼입니다 :) 에디터라 하심은 사이트 내의 에디터를 말씀하시는 걸까요 아니면 인텔리제이라는 에디터를 말씀하시는 걸까요. 바이트 입력을 못하신다는 부분을 좀 더 자세히 설명 부탁드려도 될까요? 혹시 라이브로 질문/답변을 받고 싶으신 경우 코스 '도전하기'를 하시면 질문을 할 수 있는 오픈채팅 주소가 노출됩니다. 감사합니다 :)
문자를 문자열로 쓰면 2byte를 할당하나요? String text = "A"; System.out.println(text);
안녕하세요. 코드라떼입니다. 변수(String text)와 리터럴("A")을 분리해서 생각해야 합니다. 일단 String은 참조 자료형 변수로 이후에 객체에 대해서 배우면 아시게 됩니다. 그리고 참조 자료형 변수는 64bit 컴퓨팅 환경에서 8byte의 메모리를 점유합니다. 그리고 문자열 리터럴은 자바 가상 머신에서 관리하는 것으로 특정한 메모리 공간(이후에 배웁니다)에 저장되며 2byte라고 확답할 수 없습니다. 문자 'A'는 2byte로 표현이 가능하나 문자열 "A"는 조금 다르게 관리합니다. 그래서 문자를 저장할 때는 2byte의 메모리 공간을 가지는 기본 자료형 char 변수에 저장하고, 문자열은 참조 자료형 String 변수에 저장합니다. 감사합니다.^^