JAVA - 1. 변수

CodeModel·2024년 1월 12일
0

자바

목록 보기
2/8

변수 상수

데이터를 담을 수 있는 메모리 공간 메모리 공간
변수 - 메모리에 데이터 저장 후 바꿀 수 있다.
상수 - 메모리에 데이터를 한번 저장하면 다시는 바꿀 수 없다.

  1. 상수는 변수 앞에 final을 붙여준다.
  2. 상수는 대문자로만 구성된 명사를 사용하는 것이 관례
  3. 단어와 단어 사이는 _(언더바)로 구분한다
final double PI;
J = 10; // 처음 선언
// 이후 변경 불가

final int OIL_PRICE = 1450;

기본형 타입, 참조형 타입

기본형 타입
논리형 : boolean
문자형 : char
정수형 : byte,short,int,long
실수형 : float,double

참조형 타입
기본형을 제외한 모든 타입 ex) 배열, 클래스
참조형은 가르킨다는 의미이다
즉 직접 메모리의 값을 갖는게 아니라 메모리의 위치 값을 가지고 있는 것 이다.

String 클래스

new 연산자를 이용하지 않고 인스턴스를 만들 수 있다.
new 연산자를 통해 만들면 힙 영역에 저장하기 때문에 같은 영역을 참조하지 않고 개별적으로 생성한다.

String str1 = "hello"; // 메모리중 상수(변하지 않는 값)가 저장되는 곳에 저장이 된다.
String str2 = "hello"; // 참조형 타입이기 때문에 메모리에 "hello"가 있는지 확인한 후 같으면 같은 값을 참조한다.
// 즉 str1과 str2는 같은 곳을 참조하는 것 이다.

String str3 = new String("hello"); // 상수에서 가져오지 않고 힙 영역에 만든다
String str4 = new String("hello"); // 상수에서 가져오지 않고 힙 영역에 만든다

둘을 비교할 때 == 을 이용하면 레퍼런스 주소를 비교하기 때문에 str1과 str2는 같은 값이라고 나온다 하지만 str3과 str4를 비교하면 다른 값이라고 나온다.

equals()함수를 사용하면 레퍼런스 주소가 아닌 값으 비교하기 때문에 str3.equals(str4) 를 하면 같은 값이라고 나온다.

묵시적 형 변환

크기가 작은 타입을 크기가 더 큰 타입으로 바꿀 때는 컴파일러에 별도의 명령을 하지 않아도 됩니다.

ex) int -> long 변환 시

int intValue = 200;
long longValue = intValue;

명시적 형 변환

크기가 큰 타입을 크기가 더 작은 타입으로 바꿀 때는 명시적으로 변환 해주어야 한다

ex) long -> int 변환 시

long longValue = 20;
int intValue = (int) longValue;

++ 위치

++를 앞에 붙일 시 먼저 값에 +1을 해준 후 대입한다. ++가 뒤에 있을 시 먼저 대입한 후 값에 +1을 해준다

int i = 1;
int j = i++; // j에 i를 대입한 후 i에 1을 더해준다
// j = 1 , i = 2

int k = 1;
int l = ++k; // k에 1을 더한 후 l에 대입한다
// l = 2 , k = 2
profile
개발자가 되기 위한 일기

0개의 댓글