자바의 정석 Chapter02 변수
1. 변수
1.1 변수(variable)
단 하나의 값을 저장할 수 있는 메모리 공간
1.2 변수의 선언과 초기화
int age = 25;
정수(int)값을 저장할 수 있는 age 변수를 선언하고 25로 초기화
- 변수 선언 시 메모리의 빈 공간에
변수타입
에 알맞은 크기의 저장공간이 확보되고,변수이름
을 통해 사용가능 - 변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것
- 지역변수는 사용되기 전에 반드시 초기화를 해야 하지만, 클래스변수와 인스턴스변수는 초기화 생략 가능
메모리는 여러 프로그램이 공유하는 자원이기 때문에 전에 다른 프로그램에 의해 저장된 쓰레기값이 남아있을 수 있기 때문에 초기화를 해줘야한다.
두 변수의 값 교환하기
public class Main {
public static void main(String[] args) {
int x = 10;
int y = 20;
int tmp = 0; // x값을 임시로 저장할 변수 선언
System.out.println("x = " + x + " y = " + y);
tmp = x;
x = y;
y = tmp;
System.out.println("x = " + x + " y = " + y);
}
}
1.3 변수의 명명규칙
- 대소문자가 구분되며 길이에 제한이 없다.
- 예약어를 사용해서는 안 된다.
- 숫자로 시작해서는 안 된다.
- 특수문자는 '_'와 '$'만을 허용한다.
2. 변수의 타입
자료형(data type) : 값(data)의 종류(type)에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것
기본형(primitive type)
논리형(boolean), 문자형(char), 정수형(byte,short,int,long), 실수형(float,double) 총 8개로 실제 값 저장
참조형(reference type)
객체의 주소 저장, 8개의 기본형을 제외한 나머지 타입
2.1 상수와 리터럴(constatnt & literal)
상수
변수와 마찬가지로 값을 저장할 수 있는 공간이지만, 변수와 달리 한 번 값을 저장하면 다른 값으로 변경할 수 없음
final int MAX_SPEED = 10;
상수 MAX_SPEED를 선언하고 초기화
반드시 선언과 동시에 초기화해야 한다.
리터럴
그 자체로 값을 의미
long 타입의 리터럴에 접미사 L, float 타입의 리터널에 접미사 f 생략 불가
- 문자 리터럴과 문자열 리터럴
- 문자 리터럴 : 작은 따옴표로 문자 하나를 감싼 것
반드시 ''안에 하나의 문자가 있어야 한다. - 문자열 리터럴 : 큰 따옴표로 두 문자 이상을 감싼 것
""안에 아무런 문자도 넣지 않은 것(빈 문자열)을 허용한다.
어떤 타입의 변수와 문자열과 덧셈연산 수행 시 문자열을 반환한다.
- 문자 리터럴 : 작은 따옴표로 문자 하나를 감싼 것
3. 형변환
3.1 형변환(casting)
변수 또는 상수의 타입을 다른 타입으로 변환하는 것
- 자동 형변환 :
float f = 1234;
int -> float : 좁은 범위에서 넓은 범위로 형변환 - 명시적 형변환 :
char ch = (char) 1000;
int -> char : 넓은 범위에서 좁은 범위로 형변환, 값 손실 발생
- boolean을 제외한 나머지 7개의 기본형은 서로 형변환이 가능하다.
- 기본형과 참조형은 서로 형변환할 수 없다.
- 서로 다른 타입의 변수간의 연산은 형변환을 하는 것이 원칙이지만, 값의 범위가 작은 타입에서 큰 타입으로의 형변환은 생략할 수 있다.
출처
- 자바의 정석 - 남궁성 지음
Author And Source
이 문제에 관하여(자바의 정석 Chapter02 변수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@im_lily/자바의-정석-Chapter02-변수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)