Java 18

CT | 백준 - 11286번 절대값 힙

https://www.acmicpc.net/problem/11286문제 설명이 문제는 정수들을 입력받아 다음과 같은 두 가지 작업을 수행하는 프로그램을 작성하는 것입니다.정수 입력: 정수 x를 입력받았을 때, x가 0이 아닌 경우 해당 숫자를 우선순위 큐에 추가합니다.0 입력: 만약 0이 입력되면, 현재 큐에 있는 수 중에서 절대값이 가장 작은 수를 출력하고 해당 수를 큐에서 제거합니다. 만약 절대값이 동일한 수가 여러 개 있다면, 그 중에서 가장 작은 수를 출력합니다. 큐가 비어있을 경우에는 0을 출력합니다.public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextI..

Coding Test 2024.08.27

JAVA | JVM(Java Virtual Machine)이란? JVM의 작동원리

JVM이란 무엇인가?JVM은 Java 애플리케이션을 실행하기 위한 가상 기계입니다. 직역하면 '자바를 실행하기 위한 가상 컴퓨터'라고 할 수 있습니다.이 가상 컴퓨터는 Java 프로그램이 운영체제(OS)와 독립적으로 실행될 수 있도록 도와줍니다. Java의 플랫폼 독립성과 JVMJava의 가장 큰 특징 중 하나는 OS에 종속되지 않는다는 점입니다. 이는 Java 프로그램이 다양한 운영체제에서 동일하게 동작할 수 있다는 의미입니다. 하지만, 이를 실현하기 위해서는 운영체제와 Java 프로그램 사이에서 중개 역할을 하는 무언가가 필요합니다. 이 역할을 수행하는 것이 바로 JVM입니다.  JVM은 CPU가 JAVA 프로그램을 인식하고 실행할 수 있도록 하는 가상 컴퓨터입니다. 실제 컴퓨터처럼 Java 애플리케..

Java 2024.08.21

Effective Java | Item 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라.

Effective Java 3/E 판을 읽고 정리한 기록입니다. "private 생성자나 열거타입으로 싱글톤을 보장한다"는 말은 객체지향 프로그래밍에서 사용되는 디자인 패턴 중 하나인 싱글톤(Singleton) 패턴을 의미합니다.  싱글톤 패턴은 애플리케이션에서 인스턴스가 단 하나만 생성되도록 보장하는 패턴입니다.  Private 생성자클래스의 생성자를 private 로 선언하여 외부에서 직접적으로 인스턴스를 생성할 수 없도록 합니다. 이는 외부에서 새로운 인스턴스를 생성하는 것을 막아, 오직 클래스 내부에서만 인스턴스를 생성할 수 있도록 합니다.  열거타입(Enum)Java에서는 열거타입을 이용해 싱글톤을 구현할 수 있습니다. 열거타입은 JVM에 의해 클래스가 로딩될 때 하나의 인스턴스로 보장되기 때문..

Effective Java 2024.03.28

Effective Java | Item 2. 생성자에 매개변수가 많다면 빌더를 고려하라.

Effective Java 3/E 판을 읽고 정리한 기록입니다. "생성자에 매개변수가 많다면, 빌더를 고려하라"는 것은자바에서 객체를 생성할 때, 매개변수가 많은 경우, 가독성이 떨어지고 실수를 범하기 쉬워지며 코드 유지보수가 어려워질 수 있다는 의미입니다. 따라서 많은 매개변수를 가진 생성자 대신 객체를 생성하기 위한 빌더 디자인 패턴을 고려해야 한다는 것을 나타냅니다.  점층적 생성자 패턴(Telescoping constructor pattern) 점층적 생성자 패턴은 객체를 생성할 때 선택적 매개변수를 포함한 여러 개의 생성자를 제공하는 방식입니다. 이 패턴은 생성자의 매개변수 수가 늘어날수록 코드의 가독성과 유지보수가 저하될 수 있어, 선택적으로 사용되는 생성자를 제공해 불필요한 복잡성을 줄이는 ..

Effective Java 2024.03.27

Effective Java | Item 1. 생성자 대신 정적 팩터리 메서드를 고려하라.

Effective Java 3/E판을 읽고 정리한 기록입니다. 정적 팩터리 메소드란? https://yujin-17.tistory.com/entry/Java-%EC%A0%95%EC%A0%81-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9CStatic-Factory-Method Java | 정적 팩토리 메서드(Static Factory Method)정적 팩토리 메서드(Static Factory Method) 클래스의 인스턴스를 생성하고 반환하는 정적 메서드 입니다. 주로 생성자 대신 사용되며, 객체 생성 로직을 숨기고 객체 생성을 유연하게 다룰 수 있게 합yujin-17.tistory.com미리 정적 팩토리 메서드가 무엇인지에 대해 정리를 해놨습니다.미리..

Effective Java 2024.03.13

Utility Class(유틸리티 클래스)란?

Utility Class? 주로 특정한 목적을 위해 여러 메서드를 제공하는 클래스입니다. 이러한 클래스는 주로 정적(static) 메서드로만 구성되어 있으며, 인스턴스를 생성하지 않고도 직접 메서드를 호출할 수 있습니다. 특징 정적 메서드로만 구성되어 클래스의 인스턴스를 생성하지 않고도 직접 메서드를 호출할 수 있도록 합니다. 상태를 가지지 않고, 입력 값을 받아 결과를 반환하는 메서드들로 이루어집니다. 즉, 상태를 갖는 인스턴스 변수를 가지지 않습니다. 재사용 가능한 메서드들을 제공합니다. 유틸리티 클래스의 메서드들은 어떤 특정한 작업을 수행하는데 필요한 로직들을 캡슐화하고, 다양한 곳에서 재사용이 가능하도록 설계됩니다. 객체 생성이 필요 없습니다. 주로 객체 생성에 관련이 없거나 객체의 생성이 필요하..

개발지식공간 2024.03.11

Java | 정적 팩토리 메서드(Static Factory Method)

정적 팩토리 메서드(Static Factory Method) 클래스의 인스턴스를 생성하고 반환하는 정적 메서드 입니다. 주로 생성자 대신 사용되며, 객체 생성 로직을 숨기고 객체 생성을 유연하게 다룰 수 있게 합니다. 이러한 정적 팩토리 메서드는 해당 클래스의 이름을 갖지 않아도 되며, 호출할 때마다 새로운 객체를 생성할 필요가 없을 때 특히 유용합니다. 메서드 생성 public class MyClass { // 생성자 대신 사용되는 정적 팩터리 메서드 public static MyClass createInstance() { // 객체 생성 로직 return new MyClass(); } } 위의 생성된 메서드를 활용하여 객체 생성 MyClass instance = MyClass.createInstanc..

Java 2024.03.04

Java | Document Class / Element Class / Jsoup 크롤링 예제 코드

Document 및 Element 클래스는, XML 문서를 다루기 위한 DOM(Document Object Model) API에 속하는 클래스입니다. 1. Document 클래스 Document 클래스는 XML 문서의 전체 구조를 나타냅니다. Document 객체는 XML 문서의 루트 엘리먼트에 대한 진입점이며, 해당 문서의 전체 트리 구조를 포함합니다. 2. Element 클래스 Element 클래스는 XML 문서에서 특정 엘리먼트를 나타냅니다. Element 객체는 XML 문서의 특절 엘리먼트에 대한 정보를 포함하며, 이 엘리먼트의 하위 엘리먼트, 속성 등을 다룰 수 있습니다. 보통 XML 문서를 파싱할 때, XML 문서의 구조를 Document로 읽어오고, 그 다음에 원하는 정보 추출을 위하여, E..

Java 2024.02.29

Java | TrustManager이란? / SSL 인증서 없이 https 통신

TrustManager란? Java에서 SSL/TLS 연결에서 서버의 인증서를 검증하는 데 사용되는 인터페이스입니다. SSL/TLS 연결은 데이터의 암호화 및 보안 통신을 위해 사용되며, 서버의 인증서를 신뢰할 수 있는 것으로 확인하는 것이 중요합니다. TrustManager를 사용하면 클라이언트 애플리케이션이 서버의 인증서를 검증하고, 서버가 신뢰할 만한지 여부를 결정할 수 있습니다. TrustManager는 보통 X509 형식의 디지털 인증서에 대한 신뢰 관리를 담당합니다. X509TrustManager 인터페이스 TrustManager 인터페이스의 하위 인터페이스로, X509 디지털 인증서를 처리합니다. checkClientTrusted 및 checkServerTrusted 메소드를 제공하여 클라이..

Java 2024.02.29

Java | JSONObject 클래스란?

JSONObject? JSON 형식의 데이터를 표현하는 Java 클래스입니다. JSON(JavaScript Object Notation)은 경량의 데이터 교환 형식으로, 사람이 읽고 쓰기도, 기계가 분석하고 생성하기도 쉽습니다. JSONObject는 주로 자바에서 JSON 데이터를 다룰 때 사용됩니다. import org.json.JSONObject; public class JSONObjectExample { public static void main(String[] args) { // JSON 객체 생성 JSONObject jsonObject = new JSONObject(); // 키-값 쌍 추가 jsonObject.put("name", "John"); jsonObject.put("age", 25);..

Java 2024.02.29