Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- CI/CD
- 프로그래머스
- http
- docker
- githubactions
- 국제화
- JIRA
- 스프링
- 파이썬
- 네트워크
- kotlinglogging
- 도커
- 스프링부트
- 메시지
- 이펙티브 자바
- HandlerExceptionResolver
- restControllerAdvice
- 벨먼-포드
- http 완벽가이드
- 토이프로젝트
- java
- AWS
- 데이터베이스
- 트랜잭션
- Effective Java
- yaml-resource-bundle
- 커스텀예외
- 자바
- 백준
- Spring
Archives
- Today
- Total
땃쥐네
변수의 선언과 초기화 본문
1. 변수(Variable)란?
단 하나의 데이터를 저장할 수 있는 메모리 공간
2. 변수의 선언 및 초기화
1) 변수의 선언
저장하는 데이터에 맞는 변수 타입를 지정해야하고, 그 변수를 어떤 이름으로 사용할 것인지 설정해야함.
타입 변수명;
int age; (int 타입의 변수 a 선언)
2) 변수의 초기화
변수를 사용하기 전에 처음으로 값을 저장하는 것
메모리는 여러 프로그램이 공유하는 자원이므로 다른 프로그램에 읭해 저장된 알 수 없는 값이 남아있을 수 있다.
변수를 사용하기 전에 변수에 적절한 값을 처음으로 저장해주는 작업을 해줘야 변수를 사용할 수 있다.
변수를 사용하기 전에 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다.
(참고) 대입연산자 '=' : 우변의 데이터를 좌변의 변수에 저장
타입 변수명; 변수명 = 데이터; int age; age = 14; // 14를 age에 저장
타입 변수명 = 초기화할 값; int age = 14;
같은 타입의 변수를 여러개 선언 및 초기화가 가능하지만, 가급적 지양하는게 좋을 듯.
타입 변수명1 = 값1, 변수명2 = 값2; int x = 7, y = 8;
3) 두 변수의 값 변경하기 (swap)
두 변수에 저장된 값을 직접적으로 바로 변경하는 것은 불가능.
값을 바꾸는 중간 과정에서 임시 저장용 변수를 하나 생성하여 이를 이용해 교체해야한다.
int x = 1;
int y = 2;
int tmp = x; // x의 값을 임시로 저장할 변수
x = y; // y에 저장된 값을 x에 저장
y = tmp; // tmp에 저장된 값(기존 x값)을 y에 저장
3. 변수명 명명 규칙
프로그래밍에서 사용하는 모든 언어는 '식별자(identifier)'라고 하며, 식별자는 같은 영역 내에서 서로 구분(식별)할 수 있어야함.
1) 필수로 지켜야할 규칙
- 대소문자 구분, 길이 제한 없다.
- 예약어를 사용해선 안 된다.
- 예약어(reserved word, keyword)
- 프로그래밍 언어의 구문에 사용되는 단어. 클래스, 변수, 메서드의 이름(identifier)로 사용할 수 없다.
(예시) abstract, assert, boolean, break, byte, ... - 예약어 목록 : java tutorial를 참조하면 될 것. 그 이후 업데이트 된 내역은 반영되어있지 않다.
- 프로그래밍 언어의 구문에 사용되는 단어. 클래스, 변수, 메서드의 이름(identifier)로 사용할 수 없다.
- 예약어(reserved word, keyword)
- 숫자로 시작해서는 안 된다.
- 특수문자는 '_'와 '$'만을 허용.
2) 권장 사항
- 클래스의 첫 글자는 항상 대문자, 패키지명, 변수와 메서드의 이름의 첫 글자는 항상 소문자로 함.
- 여러 단어로 이루어진 이 름은 단어의 첫 글자를 대문자로 한다.
예> lastIndexOf, StringBuilder, ArrayList - 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다.
예> Math.PI, Integer.MAX_NUMBER
4. 선언 위치에 따른 변수의 종류
1) 클래스 변수
클래스의 (메서드 바깥)에 선언된 변수
- static 변수(cv)
- 객체를 생성하지 않고 사용할 수 있음
- 클래스가 JVM의 클래스로더에 의해 메모리의 메서드 영역에 올라갈 때 자동으로 초기화 (참조형 : null, boolean : false, char : '\u0000', byte/short/int : 0, long : 0L, float : 0.0f, double : 0.0d 또는 0.0)
- 인스턴스 변수(iv)
- 인스턴스가 힙(Heap)에 생성된 순간부터 사용할 수 있음.
- 객체가 생성된 순간 자동으로 초기화됨. (참조형 : null, boolean : false, char : '\u0000', byte/short/int : 0, long : 0L, float : 0.0f, double : 0.0d 또는 0.0)
2) 지역 변수
메서드 영역(메서드 안)에 선언된 변수
- 메서드 영역(매개변수 및 메서드 안)에 선언된 변수
- 자동으로 초기화되지 않기 때문에 수동으로 초기화 코드를 작성해야 호출해서 사용할 수 있다.
- 참조 : 자바의 정석 3판(남 궁성 저)
'Programming Languages > Java' 카테고리의 다른 글
[Java] 자바 시작하기 (0) | 2023.01.29 |
---|---|
Scanner(java.util.Scanner) 클래스 (0) | 2021.11.05 |
주석 (0) | 2021.11.03 |
Comments