참고도서
이것이 자바다
변수
하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름
- 컴퓨터 메모리(RAM)은 수많은 번지들로 구성된 데이터 저장 공간
- 메모리 관리를 위해 변수 사용
변수 선언
데이터타입 변수명;
캐멀 스타일
코드 작성시 여러 단엉를 혼합해 명명하는 경우, 낙타의 등처럼 대소문자를 섞어 작성하는 스타일
- 자바 소스 파일명은 대문자로 시작하는 것이 관례
ex) HelloWorld.java - 변수명은 소문자로 시작하는 것이 관례
ex) helloWorld
변수 초기화
변수에 값을 대입하는 행위
이 때 메모리에 값이 할당된다.
초기화 되지 않은 변수는 메모리에 할당되지 않았기 때문에 변수를 통해 메모리 값을 읽을 수 없다.
데이터 타입
정수 | byte, char, short, int, long |
실수 | float, double |
논리 | boolean |
- 최상위 bit는 부호 bit로 사용된다.
- 양수 : 0
- 음수 : 1
리터럴(literal)
코드에서 프로그래머가 직접 입력한 값
2진수 | 0b || 0B로 시작 |
8진수 | 0으로 시작 |
10진수 | |
16진수 | 0x || 0X로 시작 |
// 2진수
int x = 0b1111;
int y = 0B1111;
// 8진수
int x = 013;
// 10진수
int x = 12;
// 16진수
int x = 0x123;
int y = 0X123;
데이터 타입 허용 범위 초과 값 대입
컴파일 에러 발생
long
기본적으로 컴파일러는 정수 리터럴을 int 타입으로 간주하기 때문에, int 허용 범위 초과 시 맅터럴은 뒤에 소문자 l || L을 붙여 long 타입임을 컴파일러에게 알려야 한다.
long x = 10000000000; // 컴파일 에러
long y = 10000000000L;
char
어떤 문자도 대입하지 않고, 단순히 초기화 목적으로 ''를 대입하면 컴파일 에러 발생
이 경우 공백 포함해 초기화 해야 한다.
char c = ''; // 컴파일 에러
char c = ' ';
실수 타입
float | 부호 bit (1) | 지수 bit (8) | 가수 bit (23) |
double | 부호 bit (1) | 지수 bit (11) | 가수 bit (52) |
- 컴파일러는 실수 리터럴을 기본적으로 double로 해석
- float 타입에 대입하고 싶다면 리터럴 뒤에 f || F를 붙여야 한다.
float x = 3.14f;
float y = 3.14F;
String
자바 기본 타입에 속하지 않는 참조 타입이다.
이스케이프(escape) 문자
문자열 내부에 역슬래쉬(\) 문자를 사용하는 것
- 큰 따옴표 3개로 감싸면 이스케이프 하거나 라인 피드 할 필요 없이 작성된 그대로 문자열로 저장된다.
- 아래 예제는 같은 결과값
String s1 = "" + "{\n" + "\t\"id\":\"winter\",\n" + "\t\"name\":\"눈송이\"\ㅜ + "}";
String s2 = """
{
"id" : "winter",
"name" : "눈송이"
}
"""
자동 타입 변환
자동으로 타입 변환이 일어나는 것
값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 대입될 때 발생
- char의 경우 int 타입으로 자동 변환
- byte 타입은 char 타입으로 자동 변환 불가
char 타입의 허용 범위는 음수를 포함하지 않기 때문이다.
따라서 컴파일 에러 발생
강제 타입 변환
큰 허용 범위 타입은 작은 허용 범위 타입으로 자동 변환될 수 없다.
따라서 큰 허용 범위 타입을 작은 허용 범위 타입으로 쪼개어 저장하는 것이다.
문자열을 기본 타입으로 변환
Byte.parseByte(str); |
Short.parseShort(str); |
Integer.parseInt(str); |
Long.parseLong(str); |
Float.parseFloat(str); |
Double.parseDouble(str); |
Boolean.parseBoolean(str); |
기본 타입을 문자열로 변환
String.valueOf(기본타입값);
키보드 입력 데이터를 변수에 저장
// 스캐너 객체 생성
Scanner scanner = new Scanner(System.in);
// 입력 데이터 저장
String s = scanner.nextLine();
- scanner.nextLine()은 Enter 입력 전까지 대기 상태
- Enter 입력 시 지금까지 입력된 내용을 문자열로 읽는다.
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 클래스 (0) | 2023.01.14 |
---|---|
[JAVA] 참조 타입 (2) | 2022.11.08 |
[JAVA] 조건문과 반복문 (0) | 2022.10.12 |
[JAVA] 연산자 (1) | 2022.10.11 |
[JAVA] JAVA란? (0) | 2022.10.06 |