🔍 내가 배운 내용 요약
자바의 참조 자료형이란 무엇인지, 기본형과의 차이를 이해
String
, 배열(Array)
, 클래스(Class)
, 인터페이스
, 컬렉션(Collection)
등
다양한 참조 자료형의 예시를 학습
참조형 변수는 **객체의 주소(참조 값)**를 저장한다는 점에 주목
📚 내가 배운 내용
✅ 기본형 vs 참조형 차이
구분 | 기본형(Primitive) | 참조형(Reference) |
---|---|---|
저장 값 | 실제 데이터 | 객체의 메모리 주소(참조값) |
예시 | int , double , char , boolean |
String , int[] , Scanner , 사용자 정의 클래스 |
메모리 | 스택(stack)에 저장 | 힙(heap)에 저장되고, 스택엔 참조값만 저장됨 |
null 가능 여부 | 불가 | 참조형은 null 값을 가질 수 있음 |
✅ 주요 참조 자료형 종류
자료형 | 설명 | 예시 |
---|---|---|
String |
문자열을 표현하는 클래스 | String name = "Java"; |
배열(Array) | 같은 타입의 값 여러 개를 저장 | int[] arr = {1, 2, 3}; |
클래스(Class) | 사용자 정의 타입 | Person p = new Person(); |
인터페이스(Interface) | 클래스가 구현해야 할 메서드 정의 | Runnable r = new MyThread(); |
열거형(Enum) | 고정된 상수 집합을 정의 | enum Day { MON, TUE, ... } |
컬렉션(Collection) | List, Set, Map 등 자료 구조 | List<String> list = new ArrayList<>(); |
✅ String은 특이한 참조형
String
은 참조형이지만 기본형처럼 쓸 수 있는 편의 기능이 많음Java
String a = "hello";
String b = "hello";
System.out.println(a == b); // true (같은 리터럴이면 주소 공유)
String c = new String("hello");
System.out.println(a == c); // false (new로 생성하면 새 주소)
System.out.println(a.equals(c)); // true (값은 같음)