변수 / 기본자료형 / ..etc
15 Aug 2021 -
1 minute read
변수(Variable)
-
하나의 값을 저장할 수 있는 메모리 공간, 특정 메모리 영역에 이름을 붙이고 값을 저장
-
변수의 선언 :
변수타입 변수이름;
변수의 초기화 :변수이름 = 값;
변수의 선언과 초기화 :int a = 1;
-
변수의 타입은 저장할 값의 타입에 의해 결정된다.
- 변수명 :
- 영문자or숫자, 특수문자는 &, _ 만 사용
- 숫자로 시작할 수 없음
- 자바 예약어는 사용할 수 없음
- 변수명 길이는 상관 없으니 언제 누가 보더라도 뭐하는 변수인지 이해할 수 있도록!
- Camel Case : 소문자로 시작, 두번째 단어부터 첫글자는 대문자 (ex) int numberOfStudents;)
-
+) 상수(constant) : final 키워드 사용하여 선언 / “변하지 않는 값을 반복하여 사용할 때” (값이 변하더라도 선언한 부분만 수정하면 되기 때문에 good) / 한번 초기화 하면 값 바꿀 수 없다 / 주로 대문자로 표현 (ex)
final int MAX_NUM = 100;
)
기본자료형 (Primitive Data Type)
- 리터럴(실제 값)을 저장
- 참조형(Reference type) : 메모리 주소 값을 저장(4byte or 8 byte)
- 리터럴(literal) : 그 자체로 값을 의미
(ex)
int a = 100;
a=변수, 100=리터럴)
-
- 문자
- char(하나의 문자만을 저장할 수 있음)
'A' : 2byte문자 != "A" : 문자열(String클래스)
- char(하나의 문자만을 저장할 수 있음)
- 숫자
- 정수 : byte, short, int(4byte), long(8byte, 숫자 뒤에 L을 써서 long형임을 표시)
- 실수 : float(4byte, 숫자 뒤에 f), double(8byte)
- 정수 : byte, short, int(4byte), long(8byte, 숫자 뒤에 L을 써서 long형임을 표시)
- 논리형
- boolean : true/false
- 문자
아스키코드(ASCII) / 유니코드(Unicode)
- 아스키코드 : 1byte(=8bit)의 데이터를 사용
char ch = 'A';
System.out.println((int)ch); //강제형변환 > 65 출력
char ch2 = 66;
System.out.println(ch2); //B 출력
- 유니코드 : 아스키코드로는 모든 언어를 표현하는데 한계 -> 전 세계 언어의 문자를 정의하기 위한 국제 표준 코드 등장
Local Variable Type Inference
-
지역변수 자료형 없이 사용하기 (JAVA10부터 지원)
-
추론 가능한 변수에 대한 자료형 선언 X
-
한 번 선언, 추론된 변수에 이후 다른 타입의 값을 대입할 수 X
public class LocalVariableInfer {
public static void main(String[] args) {
var i = 10;
var j = 10.0;
var str = "test";
System.out.println(i);
System.out.println(j);
System.out.println(str);
str = "hello"; //가능
// str = 3; //불가능
}
}
두 수의 값 교환하기
두 변수의 값을 바꾸기 위해서는 값을 담을 하나의 변수가 더 필요하다! => 임시 변수(temp) 만들기
int x = 10, y = 20;
int temp;
temp = x; //x의 값을 temp에 저장
x = y; //x의 값을 y에 저장
y = temp; //temp의 값을 y에 저장
활용 문제 : 숫자 내림차순 정렬하기