예외
·
개발/Java
자바(Java) 예외 처리 자바에서 예외(Exception)란 프로그램 실행 중 예기치 않게 발생하는 오류나 비정상적인 상황을 의미한다. 예외 처리는 이러한 상황에 대비하여 프로그램이 비정상적으로 종료되는 것을 막고, 오류 상황을 적절히 처리하여 프로그램의 안정성과 견고성을 높이는 중요한 메커니즘이다.1. 예외 계층 구조 (Exception Hierarchy)자바의 모든 예외 클래스는 Throwable 클래스를 상속받는다. Throwable은 다시 Error와 Exception으로 나뉜다.Error: 시스템 레벨에서 발생하는 심각한 오류로, 주로 JVM 자체의 문제(메모리 부족 - OutOfMemoryError, 스택 오버플로우 - StackOverflowError 등)로 발생. 애플리케이션 코드 수준에..
java.time
·
개발/Java
java.time 패키지 (Java 8 Date and Time API)java.time 패키지는 Java 8에서 새롭게 도입된 날짜와 시간 API. 기존의 java.util.Date와 java.util.Calendar 클래스의 문제점(가변성, 부족한 기능, 일관성 없는 API, 타임존 처리의 어려움 등)을 해결하고, 더 직관적이고 강력하며 스레드 안전한(thread-safe) 날짜/시간 기능을 제공.java.time 패키지의 주요 특징:불변성 (Immutability): java.time 패키지의 모든 클래스는 불변(immutable). 즉, 객체의 상태를 변경할 수 없다. 날짜/시간을 변경하는 모든 작업은 새로운 객체를 반환. 이 덕분에 멀티스레드 환경에서 안전하게 사용할 수 있고, 예기치 않은 버그..
java.util.Date
·
개발/Java
java.util.Date는 Java 초기부터 제공된 날짜와 시간을 표현하는 클래스.하지만 여러 문제점과 부족한 기능으로 인해 Java 8부터는 java.time 패키지의 클래스들(LocalDate, LocalDateTime, ZonedDateTime 등)을 사용하는 것이 권장됨. java.util.Date의 특징:날짜와 시간 표현: java.util.Date는 특정 시점의 날짜와 시간을 나타낸다. 내부적으로는 1970년 1월 1일 00:00:00 GMT(그리니치 표준시)부터 경과한 밀리초(milliseconds)를 long 값으로 저장한다.가변성 (Mutable): java.util.Date 객체는 가변(mutable). 즉, setDate(), setMonth(), setYear() 등의 메서드를 사..
Enum 타입
·
개발/Java
Java enum (열거형) Java의 enum (enumeration, 열거형)은 서로 관련된 상수들을 모아둔, 고정된 집합을 표현하는 특별한 데이터 타입이다. enum을 사용하면 코드의 가독성과 안정성을 높이고, 오류 발생 가능성을 줄일 수 있다.1. enum이란?상수 집합: 요일(월, 화, 수, ...), 계절(봄, 여름, 가을, 겨울), 색상(빨강, 초록, 파랑), 카드 패(스페이드, 하트, 다이아몬드, 클로버) 등과 같이 미리 정해진 몇 가지 값(상수)만을 가질 수 있는 타입을 정의할 때 사용.클래스: enum은 내부적으로 java.lang.Enum 클래스를 상속하는 클래스. 따라서, 필드(멤버 변수), 메서드, 생성자를 가질 수 있다.타입 안전성 (Type Safety): 컴파일 타임에 타입 ..
[Java] equals() 와 hashCode()
·
개발/Java
equals()와 hashCode()는 Java에서 객체의 동등성(equality) 비교와 해싱(hashing) 을 위해 사용되는 중요한 메서드다.equals()는 객체의 논리적 동등성을 비교하고, hashCode()는 객체의 해시 코드를 반환한다.1. equals() 메서드:역할: 두 객체가 논리적으로 같은지 비교한다. 즉, 두 객체가 동등한(equivalent) 지를 판단한다.기본 구현: Object 클래스에 정의된 equals() 메서드는 객체의 참조(reference)를 비교. 즉, 두 객체가 동일한 메모리 주소를 가리키고 있는지 확인한다.재정의(Overriding): 객체의 참조가 아닌 내용(필드 값)을 기반으로 동등성을 비교하려면 equals() 메서드를 재정의해야 한다. 예를 들어, Stri..
[Java] 자바 객체와 관련된 용어 정리
·
개발/Java
1. 객체 (Object):실제 세상의 사물이나 개념을 소프트웨어적으로 표현한 것상태(state)와 행동(behavior)을 가지며, 이를 통해 자신의 역할을 수행클래스의 인스턴스(instance) 라고도 한다.2. 클래스 (Class):객체를 생성하기 위한 틀 또는 설계도.객체가 가져야 할 상태(필드)와 행동(메서드)을 정의.클래스는 객체가 어떻게 구성되고 동작해야 하는지에 대한 청사진을 제공.예: "자동차"라는 클래스는 "색상", "모델" 과 같은 필드와 "가속", "정지" 와 같은 메서드를 가질 수 있다.3. 인스턴스 (Instance):클래스를 기반으로 메모리에 생성된 실체.객체와 동의어로 사용되기도 한다.new 키워드를 사용하여 클래스로부터 인스턴스를 생성 할 수 있다.예: Car myCar =..