
int a = 1; // 정수 (정수 리터럴)
double b = 1.5; // 실수 (실수 리터럴)
boolean c = false; // boolean (불리언 리터럴), true/false 입력 가능
char d = 'A'; // 문자 하나 (문자 리터럴), 작은 따옴표('') 사용
String e = "string"; // (문자열 리터럴) "문자열"을 다루는 특별한 타입, 큰 따옴표("") 사용

// 정수
byte b = 127; // -128 ~ 127
short s = 32767; // -32,768 ~ 32,767
int i = 2147483647; // 약 +- 20억 (정수 기본)
long l = 9,223,372,036,854,775,807; // -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
// 실수
float f = 10.0f;
double d = 10.1; // (실수 기본)
// 정밀도 : float < double
1. 정수 : int , long : 자바는 기본으로 int 를 사용한다.만약 20억이 넘을것 같으면 long 을 쓰면 된다. 만약 파일을 다룬다면 byte 를 사용한다.
2. 실수 : double: 고민하지 말고 double 을 쓰면 된다.
3. Boolean : boolean
4. 문자열 : String : 문자 하나든 문자열이든 모두 String 을 사용하는 것이 편리하다.(큰 따옴표"" 사용)
USER_LIMIT)org.spring.boot)
- 객체를 참조한다.
- 변수는 객체의 메모리 주소를 저장하며, 이를 통해 객체에 접근한다.
- 참조 변수의 기본값
- 초기화되지 않은 참조 변수의 기본값은
null이다.- 동적할당
- 객체는
new키워드를 사용해 동적으로 생성되며, 가비지 컬렉터에 의해 관리된다.- 주소 저장
- 힙 메모리를 사용해 객체를 저장하고 관리한다.
- 클래스 기반
- 사용자 정의 클래스 타입 또는 자바가 제공하는 클래스 타입을 사용할 수 있다.
사용자가 정의한 클래스 또는 자바 라이브러리의 클래스 인스턴스
String str = 'class';
MyClass object = new MyClass();
동일한 타입의 여러 요소를 저장하는 컬렉션
int[] numbers = new int[0];
String[] strings = new String[5];
구현된 메서드 없이 메서드의 시그니처만 정의한 타입
List<String> list = new ArrayList<>();
⛔️ caution!
참조 자료형을 사용할 때엔 객체의 생성, 접근, 메모리 관리에 주의해야 한다.
객체는
new키워드로 생성되며 가비지 컬렉터가 더 이상 사용되지 않는 객체를 자동으로 정리하긴 하지만, 개발자 또한 메모리 누수 방지를 위해 불필요한 참조를 제거하는 것이 좋다.
💡핵심 키워드
- Array : 고정된 크기, 빠른 접근, 기본 및 참조 타입 모두 지원
- ArrayList : 동적 크기 조정, 다양한 메서드, 객체만 저장 가능
고정된 데이터 세트를 다룰 때는 Array을, 데이터의 크기가 자주 변경되거나 복잡한 데이터 조작이 필요할 때는 ArrayList를 사용하는 것이 좋다.
기본 자료형이나 객체 참조를 위한 고정된 크기의 연속적인 메모리 공간이다.
int[] numbers = new int[5];
String[] names = {"Alice", "Bob", "Charlie"};
int, double 등) 또는 객체 참조(String, MyClass 등)를 저장할 수 있다.[])를 사용해 선언한다.
ArrayList는java.util패키지의 일부로, 크기가 동적으로 변하는 배열을 말한다. 주로 배열을 사용해 요소를 저장하는 용도로 사용한다.
ArrayList<String> list = new ArrayList<>();
list.add('Cat');
lst.add('Puppy');
Collection Framework는 데이터 그룹을 저장하는 클래스들을 표준화한 설계를 말한다.
자바 1.2 이전까지 Vertor, Hashtable, Properties와 같은 컬렉션 클래스나 다수 데이터를 저장할 수 있는 클래스들은 서로 다른 방식으로 다뤄야 하는 번거로움이 있었다.
하지만 자바 1.2버전부터 컬렉션 프레임워크(java.util 패키지) 를 지원하면서 모든 컬렉션을 표준화된 방법으로 작성할 수 있게 되었다.

👉 컬렉션 프레임워크의 지원으로 이전보다 객체지향적이고 재사용성 높은 코드 작성이 가능해졌는데, 주요 장점은 다음과 같다.

순서가 있는 데이터 집합으로 데이터 중복을 허용한다.
O(N))push, pop 메서드를 사용한다.처음 들어온 원소가 처음으로 나가는 FIFO(First-In-First-Out) 특징을 가진다.
순서가 없는 데이터 집합으로 데이터 중복을 허용하지 않는다.
hashCode() 메소드를 호출한다.equals()로 두 객체를 비교하여 동등성을 판단한다.Key - Value 쌍으로 이루어진 데이터의 집합으로, 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다. 그리고 순서는 유지되지 않는다.
get(), put(), remove() 등 sycronized 키워드가 붙어있다.Map.Entry를 저장한다.📂 참고자료