일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- throws
- 초보개발자
- 상속
- 배열
- node.js
- try-catch
- 코딩
- 자바
- Java
- 코린이
- 파이팅
- exception
- 문자 단위 스트림
- SSR
- 새벽공부
- 예외 처리
- 인터페이스
- 인스턴스
- 메서드
- 바이트 단위 스트림
- 다형성
- MPA
- 자료형
- FileInputStream
- 보조 스트림
- 졸리다
- ArrayList
- 개발자
- 백엔드
- 변수
- Today
- Total
SHUSTORY
02-3 변수가 저장되는 공간의 특성, 자료형 본문
변수와 메모리
변수를 선언한다는 것은 선언한 변수 이름으로 어떤 위치에 있는 메모리를 얼마만큼의 크기로 사용하겠다는 의미이다.
기본 자료형의 종류
자바는 기본 자료형과 참조 자료형을 제공한다.
기본 자료형은 자바 라이브러리에서 기본으로 제공하며, 얼마만큼의 메모리를 어떻게 사용할 것인지가 이미 정해져있다.
정수형 | 문자형 | 실수형 | 논리형 | |
1바이트 | byte(-128~127) | - | - | boolean |
2바이트 | short(-32,768~32,767) | char | - | - |
3바이트 | int | - | float | - |
4바이트 | long | - | double | - |
* 컴퓨터에서 정수로 연산을 할 때 4바이트 단위로 처리하는 것이 가장 효율적이기 때문에 정수 자료형으로 int형을 가장 많이 사용한다.
표현할 수 있는 범위를 초과하여 선언할 경우 오류가 발생한다.
또한 프로그램이 실행되어 정수 값을 연산할 때 4바이트를 기본 단위로 사용하기 때문에, 두 정수를 더하기 전에 두 정수는 모두 int형으로 변환되며, 더한 결과 값도 정수의 기본형인 int형으로 저장된다.
그렇기 때문에 다른 자료형을 사용할 경우 그 뒤에 식별자를 붙여주어야 한다.
long자료형의 경우 뒤에 식별자 l 또는 L을 붙여준다.
예제
char 자료형으로 선언한 변수에 아스키 코드가 아닌 숫자를 넣으면 오류가 발생한다.
\uD55C는 한글 '한'의 유니코드이다.
유니코드란 전 세계의 모든 문자를 처리할 수 있도록 만든 표준 문자 전산 처리 방식이다.
프로그램에서 문자를 사용할 때는 항상 작은따옴표(' ')를 사용한다.
문자를 여러 개 이은 문자열을 사용할 때는 큰따옴표(" ")를 사용한다.
문자형 변수에 음수값을 넣으면 오류가 발생한다.
음수 값을 대입한 b를 char 자료형의 a2 변수에 대입하면 오류(?)가 발생한다.
* 자바는 모든 문자를 2바이트로 표현하는 UTF-16 인코딩을 사용한다.
유니코드를 표현하는 인코딩 방법은 크게 UTF-8과 UTF-16이 있다.
보다 메모리 낭비가 적고 전송 속도가 빠른 UTF-8은 인터넷 환경에서 주로 사용된다.
실수 자료형
자바에서 실수는 double형을 기본으로 사용한다.
float(4byte)형에 비해 double(8byte)형이 더 정밀하게 실수를 표현할 수 있다.
float형을 사용하려면 뒤에 식별자 F 또는 f를 붙여야 한다.
논리 자료형
논리 자료형은 어떤 변수의 참, 거짓을 나타내는 데 사용하며, 종류는 boolean 한 가지 뿐이다.
boolean형 변수는 1바이트로 값을 저장하며, true와 false 두 가지 값만 가진다.
자료형 없이 변수 선언하기
자바 10부터 생긴 문법으로, 자료형을 쓰지 않고도 변수를 사용할 수 있게 되었다.
주의할 점은 이는 지역 변수 자료형 추론으로,
1. 한번 선언한 자료형 변수를 다른 자료형으로 사용할 수 없다.
2. var로 자료형 없이 변수를 선언하는 방법은 '지역 변수'만 가능하다.
* 지역 변수는 프로그램의 { } 내에서 사용할 수 있는 변수이다.
문자열은 기본 자료형으로 작성할 수 없으므로 String형으로 컴파일된다. (주석 무시하기..예전에 씀)
'프로그래밍 > JAVA' 카테고리의 다른 글
04-1 조건문 (0) | 2023.02.20 |
---|---|
03-1 기본 연산자 (0) | 2023.02.20 |
02-5 형 변환 (1) | 2023.02.19 |
02-4 상수와 리터럴 (0) | 2023.02.19 |
02-2 변수란 무엇일까? (1) | 2023.02.19 |