일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- TIL
- REST API
- node.js
- 프로그래머스
- javascript
- html
- java
- 인접행렬
- Spring
- nestjs
- css
- 코딩테스트
- MySQL
- bean
- OOP
- GraphQL
- puppeteer
- Deep Dive
- 알고리즘
- 탐욕법
- LifeCycle
- typescript
- JWT
- 인접리스트
- dfs
- Linux
- 자료구조
- Interceptor
- Kubernetes
- winston
- Today
- Total
목록java (26)
처음부터 차근차근

날짜와 시간 라이브러리가 필요한 이유우리가 프로그래밍을 하면서, 로그를 남기거나, 혹은 회원 생성 시간 및 게시글 생성 시간 등 날짜와 시간에 대한 기록이 필요하다.단순히 날짜와 시간만 기록하면 되는게 아닌가? 싶지만, 날짜와 시간을 계산하는 것은 의외로 복잡하다.날짜와 시간 차이 계산윤년 계산일광 절약 시간 변환타임존 계산이를 위해서 Java에서는 라이브러리를 제공하고 있다.Java 날짜와 시간 라이브러리*: 초는 나노초 단위의 정밀도로 캡처된다. (밀리초, 나노초 가능)**: 이 클래스는 이 정보를 저장하지는 않지만 이러한 단위로 시간을 제공하는 메서드가 있다.***: ZonedDateTime 에 Period 를 추가하면 서머타임 또는 기타 현지 시간 차이를 준수한다.LocalDate, LocalTi..

Enum Typeenum은 Enumeration의 줄임말로, 번역하면 열겨라는 뜻이다.enum은 일련의 명명된 상수들의 집합을 정의하는 것을 의미하며, 프로그래밍에서는 이러한 상수들을 사용하여 코드 내에서 미리 정의된 값들의 집합을 나타낸다.Enum은 왜 만들어졌을까??Enum은 타입 안전 열거형 패턴(Type-Safe Enum Pattern)으로부터 만들어졌다.간단한 예시로, 특정 문자열을 사용해서 회원을 구분하는 경우, 아래와 같은 문제점이 발생할 수 있다.문자열은 오타가 발생하기 쉽고, 유효하지 않은 값이 입력될 수 있다."Gold", "gold" 등 다양한 형식으로 문자열을 입력할 수 있다.이러한 문제를 해결하기 위해 특정 범위로 값을 제한할려고 하였으며, 나열한 항목만 사용할 수 있도록 아래 예..
Wrapper Class란??Wrapper Class란 기본형을 객체로 감싸서 더 편리하게 사용하도록 도와주는 클래스이다. 즉, 기본형의 객체 버전이다.실제 현업에서도 기본형보다는 래퍼 클래스를 많이 사용한다.byte -> Byteshort-> Shortint -> Integerlong -> Longfloat -> Floatdouble -> Doublechar -> Characterboolean -> Boolean기본 래퍼 클래스는 다음과 같은 특징을 가지고 있다.불변이다equals로 비교해야 한다.간단한 예시를 통해 사용해보자.package lang.wrapper;public class WrapperClassMain { public static void main(String[] args) { ..

String 클래스란??자바에서 문자를 대표적인 타입은 char, String 2가지가 존재한다.기본형인 char 는 문자 하나를 다룰 때 사용한다. char 를 사용해서 여러 문자를 나열하려면 char[] 을 사용해야 한다. 하지만 이렇게 char[] 을 직접 다루는 방법은 매우 불편하기 때문에 자바는 문자열을 매우 편리하게 다룰 수 있는String 클래스를 제공한다.String 클래스를 통해 문자열을 생성하는 방법은 2가지이다.package lang.string;public class StringBasicMain { public static void main(String[] args) { String str1 = "hello"; String str2 = new Strin..
기본형과 참조형의 공유자바의 데이터 타입을 가장 크게 보면 기본형과 참조형이 있다.기본형 : 하나의 값을 여러 변수에서 절대 공유하지 않는다.참조형 : 하나의 객체를 참조값(주소)을 통해 여러 변수에서 공유할 수 있다.참조형을 자세히 살펴보면x라는 객체를 a와 b에서 참조하고 있다.이때 x의 속성 하나를 변경한다면, a와 b 둘 다 속성이 변하는 것을 알 수 있다.이는 추가적인 부수 효과를 가져온다.사이트 이펙트 를 가지고 오는데, 특정 부분에서 발생한 변경이 의도치 않게 다른 부분에 영향을 미치는 경우라고 생각하면 편하다.이런 경우를 막아야 하는데, 방법으로는a와 b가 처음부터 다른 인스턴스를 참조하면 된다.그러나, 이것은 근본적으로 참조값을 공유하는 방법을 막을 수 없다.불변 객체지금까지 발생한 문제..

java.lang 패키지란?자바에서 기본으로 제공하는 패키지로써, 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지입니다.Object : 모든 자바 객체의 부모 클래스String : 문자열Integer, Long, Double : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class : 클래스 메타 정보System : 시스템과 관련된 기본 기능들을 제공이 패키지는 모든 자바 애플리케이션에 자동으로 임포트 됩니다.Object 클래스자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object 클래스입니다. 이것은 묵시적으로 상속 받기 때문에, 따로 extend를 사용하지 않아도 자동으로 상속을 받습니다.클래스에 상속 받을 부모 클래스를 명시적으로 지정하면 Object를 상속받지 않지만,..

추상이란?? 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용. 즉, 추상화란 '형상을 뽑아내어 변화시키는 것'이라고 정의할 수 있습니다. 고양이, 강아지, 소에서 추상을 하면 동물, 포유류 등을 추상화 할 수 있습니다. 쉽게 말하자면 '일반화' 같은 것입니다. 추상 클래스 클래스를 설계도에 비유한다면, 추상 클래스는 미완성 설계도라고 비유할 수 있습니다. 추상 클래스는 이름 그대로 추상적인 개념을 제공하는 클래스입니다. 따라서 실체인 인스턴스가 존재하지 않습니다. 대신에, 상속을 목적으로 사용되고 부모 클래스 역할을 맡는 중요한 의미를 갖습니다. abstract class AbstractAnimal {...} 추상 클래스는 클래스를 선언할 때 앞에 추상이라는 의미의 ab..

객체 지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 존재합니다. 좋은 개발자가 되기 위해서는 다형성에 대한 이해가 필수입니다. 다형성(Polymorphism)이란? "다양한 형태", "여러 형태", 즉, 여러 가지 형태를 가질 수 있는 능력을 의미 프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻합니다. 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현했습니다. 다형성을 이해하기 위해서는 크게 2가지 핵심 이론을 알아야 합니다. 다형적 참조 메서드 오버라이딩 다형적 참조 다형적 참조를 이해하기 위해 간단한 상속 관계 코드를 만들어보겠습니다. package poly.basic; public class P..

Final이란? Final 키워드는 말 그대로 '마지막의' 또는 '변경될 수 없는' 의미를 가지고 있으며, 이름 그대로 끝이라는 뜻입니다. 거의 모든 대상에 사용될 수 있습니다. Final이 사용될 수 있는 대상 Class 변경할 수 없는 클래스, 즉, 확장될 수 없는 클래스를 의미합니다. 즉, 다른 클래스의 조상이 될 수 없습니다. Method 변경될 수 없는 메서드를 의미하며, Overriding을 통해 재정의 될 수 없습니다. 멤버 변수, 지역 변수 변수 앖에 final이 붙으면, 값을 변경할 수 없는 상수가 됩니다. 재할당을 할 경우, 컴파일 오류가 발생합니다. Final 사용해보기 지역변수 package final1; public class FinalLocalMain { public static..

Static이란? 정적(static)은 고정된이란 의미를 가지고 있습니다. Static이라는 키워드를 사용하여 Static변수와 Static메소드를 만들 수 있는데 다른말로 정적필드와 정적 메소드라고도 하며 이 둘을 합쳐 정적 멤버라고 합니다.(클래스 멤버라고도 합니다.) 정적 필드와 정적 메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버입니다. 그렇기에 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할때 클래스별로 관리됩니다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있습니다. Static 멤버 생성 Static 키워드를 통해 생성된 정적멤버들은 Heap영역이 아닌 Static영역에 할당됩니다. Static 영역에 할당된 메모리는 모든 객체가 공유하여 하나의 멤..