변수는 하나의 값을 저장하기 위한 메모리 공간
1. 변수의 타입은 저장할 값의 타입에 의해 결정된다.
int age = 25; //일치
int age = 3.14; //불일치
int는 정수타입이고 25는 정수기 때문에 일치, 3.14는 실수기 때문에 불일치
2. 저장할 값의 타입과 일치하는 타입으로 변수를 선언한다.
char ch = '가'; //문자 타입
double pi = 3.14; //실수 타입
8개의 기본형 값의 타입
값
- 변수(variable) : 하나의 값을 저장하기 위한 공간(변경 가능)
- 상수(constant) : 한 번만 값을 저장 가능한 변수(변경 불가)
- 리터럴(literal) : 그 자체로 값을 의미하는 것(기존의 우리가 알고 있는 상수의 개념)
final int MAX = 100; //MAX는 상수
MAX = 200; //에러
1. 범위가 '변수 > 리터럴' 인 경우는 가능
int i = 'A'; //int > char, i에는 A의 문자코드인 65가 저장됨
long l = 123; //long > int
double d = 3.14f; //double > float
2. 범위가 '변수 < 리터럴' 인 경우는 에러
int i = 30_0000_0000; //30억은 int의 범위인 -20억 ~ +20억에 벗어남
ling l = 3.14f; // long < float
float f = 3.14; // float < double
char ch = 'A';
String s = "ABC"; // 문자열
String s = ""; // 빈 문자열(empty string)
char ch = ''; // 에러
숫자를 문자열로 바꾸는 방법
"" + 7 + 7 -> "7" + 7 -> "7" + "7" -> "77" 7 + 7 + "" -> 14 + "" -> "14" + "" -> "14"
문자열 + any type -> 문자열
any type + 문자열 -> 문자열
int x = 10, y = 20;
int tmp;
tmp = x; // x의 값을 tmp에 저장
x = y; // y의 값을 x에 저장
y = tmp; // tmp의 값을 y에 저장
기본형(Primitive type)
참조형(Reference type)
종류/크기(byte) | 1 | 2 | 4 | 8 |
---|---|---|---|---|
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
예시) 1byte의 범위
1byte = 8bit, n = 8
부호 있는 정수의 범위 : ~ = ~
부호 없는 정수의 범위 : 0 ~ = ~
출력 형식 지정 불가
지시자 | 설명 |
---|---|
%b | 불리언(boolean) 형식으로 출력 |
%d | 10진(decimal) 정수의 형식으로 출력 |
%o | 8진(octal) 정수의 형식으로 출력 |
%x | 16진(hexa-decimal) 정수의 형식으로 출력 |
%f | 부동 소수점(floating-point) 의 형식으로 출력 |
%e | 지수(exponent) 표현식의 형식으로 출력 |
%c | 문자(character) 로 출력 |
%s | 문자열(string) 로 출력 |
%n | 개행(줄바꿈) 문자 |
정수를 2진수로 출력하는 법
System.out.printf("%s", Interger.toBinaryString(15));
"1111" 2진수 문자열로 표기됨
System.out.printf("%#o", 15); // 017
System.out.printf("%#x", 15); // 0xf
3 + '0' -> '3'
'3' - '0' -> 3
3 + ""(빈 문자열) -> "3"
'3' + "" -> "3"
"3" Integer.parseInt("3") -> 3
"3.14" Double.parseDouble("3.14") -> 3.14
"3".charAt(0) -> '3'