이 게시글은 남궁성님의 JAVA의 정석 3판과 유투브를 보고 정리한 내용입니다.
변수는 하나의 값을 저장할 수 있는 메모리공간이다.
여기서 '메모리'란 RAM을 말한다.
RAM은 1byte 단위로 데이터를 저장하며, 물리적으로 연속된 저장공간처럼 다룬다. 연속된 번호로 각 메모리 공간에 이름을 붙이는데 이를 메모리 주소라고 한다.
메모리 주소는 사람이 기억하기 어렵기 때문에 구별하기 쉬운 이름을 붙여서 메모리 공간에 값을 쓰기, 수정, 삭제 등을 하는데 이때 그 이름을 변수라고 한다.
메모리에 데이터를 저장하고 사용하기 위해서는 먼저 변수를 선언하고 값을 저장해야한다.
int year;
//변수의 선언
int age;
//변수에 값 저장
age = 19;
//두 개 한 번에 하기
int age = 19;
int birthYear = 0, age = 10;
year = 2022 - age;
year = 2022 - 10; //변수가 값으로 변한다.
year = 2012;
변수는 하나의 값을 저장할 수 있는 메모리 공간이라고 했다. 하지만 그 공간에 모든 값을 저장할 수 있는 것은 아니다.
int year = 2021;
year = 'year'; //에러 발생
저장할 값의 타입과 변수의 타입을 일치시켜야한다.
가장 기본이 되는 저장할 데이터 타입은 총 8개로 분류할 수 있다.
문자 : char ('a', '1', '')
숫자
정수 : byte, short, int, long(가장 많이 쓰이는 정수는 데이터의 크기와 용도에 따라 타입을 선택하면 된다. 프로그래밍에서 메모리의 효율적인 사용을 중요하게 생각하는 것을 정수 타입의 갯수를 통해 알 수 있다.)
실수 : float, double
논리 : boolean(true, false)
변수는 하나의 값을 저장할 수 있는 공간
파란색은 변수, 공간에 저장된 값을 수정할 수 있다.
상수는 값을 한번만 저장할 수 있는 공간
초록색은 상수 값을 한 번만 할당할 수 있어 수정이 불가하다. 원래는 상수의 선언과 동시에 초기화를해야했지만, 지금은 분리할 수 있다. 하지만 동시에 초기화를 하는 것이 바람직하다. 실수를 덜 수 있으니까.
리터럴은 값 그 자체
String str = ""; //OK
char ch = ''; //error
문자열의 + 연산은 연산의 방향이 왼쪽 -> 오른쪽 이기 때문에
문자열의 위치에 따라 연산의 결과가 달라질 수 있다.
String result = ""+7+1; //"71"
String result2 = 7+1+""; //"8"
기본형
참조형