값 자체가 아닌 **값이 저장된 위치(주소)**를 저장하는 타입 변수 안에 실제 데이터가 아니라 메모리 주소가 들어있다.

데이터 타입 ( 자료형 분류)

기본타입 (primitive type) 실제 값을 저장

정수 타입 byte char short int long
실수 타입 float double
논리 타입 boolea

참조 타입 (reference type) 객체 메모리 주소(참조)를 저장

배열타입 열거타입 클래스 인터페이스

문자열(String) 타입

string은 문자들의 문자열을 저장하는 참조 타입 String은 클래스이자 참조형 자료형

String name = "이이섭";

// name은 "이이섭"이라는 문자열이 저장된 메모리 주소를 참조
// 문자열은 변수에 직접 저장되는 게 아니라 힙(Heap)영역에 메모리의 String객체를 가리킴

문자열 비교

문자열은 == 으로 비교하면 안 됨 반드시 equals() 사용

String a = new String("hi");
String b = new String("hi");

System.out.println(a == b); // false (주소 비교)
System.out.println(a.equals(b)); // true (내용비교)

배열(Array) 타입

배열은 같은 타입의 값들을 하나로 묶음으로 저장하는 참조타입. int, String, double 같은 단일 값이 아니라 여러 개의 값을 한 번에 저장하고 관리하는 자료형

후(배열사용)
int a = 10; int[ ] nums = {10, 20, 30};
int b = 20;
int c = 30;