java.lang 패키지란? lang: Language의 줄임말 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지 자바 애플리케이션에 자동으로 import 된다. 대표적인 클래스들 Object: 모든 자바 객체의 부모 클래스 String: 문자열 Int
Object 클래스란? 자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object 클래스이다. 묵시적(implicit) 묵시적이라는 말은 개발자가 코드를 직접 작성하지 않아도 컴파일러에 의해 자동으로 수행되는 것을 의미한다. 다음의 코드를 보면, 명시적으로 Obj
불변 객체(Immutable Object)는 한 번 생성되면 내부 상태가 변경되지 않는 객체이다. 불변 객체를 사용하는 이유와 사용 방법을 자세히 알아보자. 기본형과 참조형 기본형(Primitive Type): 하나의 값을 여러 변수에 절대로 공유하지 않음 b
String 클래스 구조 java9 전: private final char[] value; java9 이후: private final byte[] value; char는 2byte를 차지하지만, 영어나 숫자는 보통 1byte로 표현이 가능하다. 즉, char[]에서
String 클래스의 문제 내부 값을 변경할 수 없기 때문에 변경된 값을 기반으로 새로운 객체를 생성한다. 중간에 만들어진 객체는 제대로 사용되지 않고, GC 대상이 된다. CPU, 메모리 등의 자원을 많이 사용하게 된다. StringBuilder 클래스 String
기본형의 한계 자바는 객체지향 언어이지만, 객체가 아닌 int, double같은 기본형(Primitive Type)이 있다. 기본형은 객체가 아니기 때문에 한계가 존재한다. 객체가 아니므로 메서드를 제공할 수 없다. 컬렉션 프레임워크를 사용할 수 없다. 제네릭을 사용할
Class 클래스는 클래스의 정보(메타 데이터, meta data)를 다루는데 사용된다. Class 클래스를 실행중인 자바 애플리케이션 내에서 필요한 클래스의 속성과 메서드에 대한 정보를 조회 및 조작할 수 있다.타입 정보 얻기클래스의 이름, 슈퍼클래스, 인터페이스,
System 클래스는 Java에서 표준 입출력, 에러 출력 스트림과 같은 시스템 관련 기능을 제공하는 클래스이다. 이 클래스는 인스턴스화할 수 없고, 모든 메서드와 필드는 정적(static)이다.System.outSystem.inSystem.errSystem.curre
Math 클래스는 기본적인 수학 연산을 수행하는 데 사용되는 메서드로, 모든 메서드가 정적(static)이다. 모든 메서드는 객체를 생성하지 않고도 호출할 수 있으므로, 직접 클래스 이름을 사용하여 어디서든 접근할 수 있다.메서드가 매우 많다. 대략 많이 사용하는 메서
Random 클래스는 java.util 패키지에 소속되어 있으며, 난수를 생성하기 위해 사용된다. 정수나 실수처럼 다양한 타입의 난수를 생성할 수 있는 메서드를 제공하고, 난수 시드(seed)를 설정하여 동일한 난수 시퀀스를 재현할 수 있다. Random 클래스 기능
열거형(enums)은 enumeration의 줄임말로, 어떤 항목을 나열하는 것을 의미한다.서로 관련된 상수를 편리하게 선언하기 위한 것으로, 여러 상수를 정의할 때 사용한다.열거형(Enum Type)을 제대로 이해하기 위해서는 열거형이 생겨난 이유를 아는 게 좋다.1
날짜와 시간 라이브러리가 필요한 이유
기본 날짜와 시간 기본이 되는 날짜와 시간 클래스는 LocalDate, LocalTime, LocalDateTime이다. 이 클래스들은 세계 시간대를 고려하지 않아 타임존이 적용되지 않는다. 그래서 주로 특정 지역의 날짜와 시간만 고려하면 되는 경우에 사용한다. Lo
참고 Class LocalDate Java의 정석 김영한의 실전 자바 - 중급 1편
Instant란? Instant는 UTC(협정 세계시)를 기준으로하는, 시간의 한 지점을 나타낸다. 날짜와 시간을 나노초 정밀도로 표현하며, UTC 기준(1970년 1월 1일 0시 0분 0초)으로 경과한 시간으로 계산된다. 초 데이터이기 때문에 날짜와 시간을 계산하는
Period와 Duration 클래스는 시간의 간격(기간, amount of time)을 표현하는데 사용된다. Period Period는 날짜와 날짜의 차이로, 두 날짜 사이의 간격을 년, 월, 일 단위로 나타낸다. 프로젝트의 기간: 프로젝트 시작일과 종료일 사이의
시각과 기간의 인터페이스 날짜와 시간은 특정 시점의 시간(시각)과 시간의 간격(기간)으로 나눌 수 있다. 이에 따라, 인터페이스도 두 종류로 나뉜다. 1. 특정 시점의 시간 TemporalAccessor 인터페이스 날짜와 시간을 읽기 위한 기본 인터페이스 (
자주 쓰일만한 날짜 계산들을 대신 해주는 메서드를 정의해놓은 클래스이번 달의 2번째 금요일은 며칠인지2주 전의 수요일이 며칠인지DayOfWeek: 월~일을 나타내는 열거형참고Class TemporalAdjustersJava의 정석
참고 Class Period Java의 정석 김영한의 실전 자바 - 중급 1편
중첩 클래스란? 중첩 클래스(Nested Class)는 클래스 안에 클래스를 중첩해서 정의한 클래스이다. 중첩 클래스 분류 중첩 클래스는 클래스를 정의하는 위치에 따라 분류할 수 있다. 정적 중첩 클래스(Static Nested Class) 내부 클래스 내부
예외 처리가 필요한 이유 외부 서버와 연결, 데이터 통신, 종료시에 발생할 수 있는 문제를 해결하기 위해 예외 처리 메커니즘이 존재한다. 오류 상황 발생 외부 서버와 연결 실패 데이터 전송 실패 반환 값 오류 로그 자바는 프로그램 실행 중에 발생할 수 있는 예
체크 예외와 언체크 예외에 대해서 살펴보자.Exception과 그 하위 예외는 모두 컴파일러가 체크하는 체크 예외이다. 단, RuntimeException은 그렇지 않다.체크 예외는 잡아서 처리하거나, 밖으로 던지도록 선언해야 한다. 그렇지 않으면 컴파일 오류가 발생한