일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- REST API
- bean
- typescript
- winston
- JWT
- nestjs
- OOP
- css
- node.js
- 인접행렬
- 인접리스트
- 프로그래머스
- puppeteer
- html
- javascript
- MySQL
- 자료구조
- 탐욕법
- LifeCycle
- dfs
- Deep Dive
- 코딩테스트
- 알고리즘
- GraphQL
- Kubernetes
- Spring
- TIL
- java
- Linux
- Interceptor
- Today
- Total
처음부터 차근차근
[Java] Java 변수 선언, 데이터 타입 본문
변수
프로그래밍을 하다 보면 값을 저장해 둘 공간이 필요한데, 그 공간을 변수라고 합니다.
변수(variable)는 이름 그대로 변할 수 있다는 뜻을 의미하며, 공간에 들어간 값은 변할 수 있습니다.
변수 선언
저장공간, 즉 변수가 필요하다면 먼저 변수를 선언해야합니다.
// 변수를 선언하는 방법
// 변수타입 변수이름;
int a;
- 숫자 정수( `integer` )를 보관할 수 있는 이름이 `a` 라는 데이터 저장소를 만든다. 이것을 변수라 한다.
- 이렇게 변수를 만드는 것을 변수 선언이라 한다.
- 이제 변수 `a` 에는 숫자 정수를 보관할 수 있다.
- 정수 뿐만 아니라 문자, 소수와 같이 다양한 종류의 값을 저장할 수 있다.
- 변수를 선언하면, 메모리의 빈 공간에 '변수타입'에 알맞은 크기의 저장공간이 확보되고, 변수 이름을 붙여서 이 이름을 통해 해당 저장공간을 사용할 수 있게 된다.
변수의 초기화
변수를 사용하기 전 처음으로 값을 저장하는 것을 의미합니다. (재할당과는 다르다!)
변수에 값을 대입하는 것이라고 봐도 무방하며, 대입 연산자를 통해 초기화를 진행합니다.
// 변수 초기화
a = 10;
- 숫자를 보관할 수 있는 데이터 저장소인 변수 a에 값 10을 저장한다.
- 이처럼 선언한 변수에 처음으로 값을 대입해서 저장하는 것을 변수 초기화라 한다.
//1 변수 선언, 초기화 각각 따로
int a;
a = 1;
System.out.println(a);
// 2. 변수 선언과 초기화를 한번에
int b = 2;
System.out.println(b);
// 3. 여러 변수 선언과 초기화를 한번에
int c = 3, d = 4;
System.out.println(c);
System.out.println(d);
위 코드와 같이 선언과 초기화를 같이 할 수도 있으며, 여러 개를 동시에 선언과 초기화를 같이 할 수 있습니다.
int a;
a = 10;
System.out.println(a);
// 변수의 값을 바꾸기
a = 50;
System.out.println(a);
또한 변수의 값을 재 할당 할 수 있습니다.
리터럴
그 자체로 값을 의미하는 것을 의미합니다.
코드에서 개발자가 직접 적은 100, 10.5, true, 'A', "Hello Java"와 같은 고정된 값을 프로그래밍 용어로 리터럴(literal)이라 한다.
기본형 타입 종류
변수를 선언할 때 변수에 저장할 값의 종류에 따라 변수의 타입을 선언해줘야 합니다.
변수의 타입은 참조형과 기본형이 있는데, 먼저 기본형부터 알아보겠습니다.
정수형
- byte : -128 ~ 127 (1byte, 2⁸)
- short : -32,768 ~ 32,767 (2byte, 2.⁶)
- int : -2,147,483,648 ~ 2,147,483,647 (약 20억) (4byte, 2..)
- long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (8byte, 2⁶⁴)
실수형
- float : 대략 -3.4E38 ~ 3.4E38, 7자리 정밀도 (4byte, 2..)
- double : 대략 -1.7E308 ~ 1.7E308, 15자리 정밀도 (8byte, 2⁶⁴)
기타
- boolean : true, false (1byte)
- char : 문자 하나(2byte)
- String : 문자열을 표현한다. 메모리 사용량은 문자 길이에 따라 동적으로 달라진다. (특별한 타입이다. 자세한 내용은 뒤에서 학습한다)
//정수
byte b = 127; //-128 ~ 127
short s = 32767; // -32,768 ~ 32,767
int i = 2147483647; //-2,147,483,648 ~ 2,147,483,647 (약 20억)
//-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
long l = 9223372036854775807L;
//실수
// float는 리터럴 접미사 뒤에 f를 붙여야 한다.
float f = 10.0f;
double d = 10.0;
실무에서 자주 쓰이는 변수 타입
- 정수 - int, long : 자바는 정수에 기본으로 int를 사용한다. 만약 20억이 넘을 것 같으면 long을 쓰면 된다.
- 파일을 다룰 때는 `byte` 를 사용한다.
- 실수 - double : 실수는 고민하지 말고 `double` 을 쓰면 된다.
- 불린형 - boolean : true, false 참 거짓을 표현한다. 이후 조건문에서 자주 사용된다.
- 문자열 - String : 문자를 다룰 때는 문자 하나든 문자열이든 모두 `String` 을 사용하는 것이 편리하다.
참고: 메모리 용량은 매우 저렴하다. 따라서 메모리 용량을 약간 절약하기 보다는 개발 속도나 효율에 초첨을 맞추는 것이 더 효과적이다.
변수 명명 규칙
Javascript와 마찬가지로 Java에도 변수 명명규칙이 존재합니다.
- 변수 이름은 숫자로 시작할 수 없다. (예: 1num, 1st )
- 그러나 숫자를 이름에 포함하는 것은 가능하다 (예: myVar1, num1 ).
- 이름에는 공백이 들어갈 수 없다.
- 자바의 예약어를 변수 이름으로 사용할 수 없다. (예: int, class, public )
- 변수 이름에는 영문자( `a-z` , `A-Z` ), 숫자( `0-9` ), 달러 기호( `$` ) 또는 밑줄( `_` )만 사용할 수 있다.
또한 Naming Convention이 존재합니다.
- Camel Case를 사용한다.
- 클래스 이름의 첫 글자는 무조건 대문자로 시작한다.
- 나머지(변수, 메서드 등)는 모두 소문자로 시작한다.
- 예외 사항이 딱 2개 존재합니다.
- package는 무조건 모두 소문자입니다.
- 상수는 모두 대문자를 사용하고 언더바로 구분합니다. (Ex: USER_LIMIT)
참고 : 변수 이름은 의미있고, 그 용도를 명확하게 설명해야 합니다.
참고
김영한의 자바입문
자바의 정석 기초편
https://catsbi.oopy.io/6541026f-1e19-4117-8fef-aea145e4fc1b
'Language > Java' 카테고리의 다른 글
[Java] 조건문, 반복문 (0) | 2023.12.15 |
---|---|
[Java] 연산자 (0) | 2023.12.14 |
[Java] 자바 프로그램 실행해보기 (0) | 2023.12.14 |
[Java] JVM?? JDK?? 용어 정리 (0) | 2023.12.14 |
[Java] Java란? (0) | 2023.12.14 |