본문 바로가기

JAVA

(5)
[JAVA] 오토 박싱과 오토 언박싱이란? 1. 오토 박싱(Auto Boxing)과 오토 언박싱(Auto Unboxing)이란?오토 박싱은 자바에서 기본형(primitive type) 데이터를 자동으로 래퍼 클래스(wrapper class)로 변환하는 과정이고, 오토 언박싱은 그 반대로 래퍼 클래스 객체를 기본형으로 자동 변환하는 과정입니다. 자바 5에서 도입된 이 기능은 기본형과 객체형 간의 변환을 간편하게 만들어줍니다. 2. 기본형과 래퍼 클래스자바에는 8가지 기본형 데이터 타입이 있으며, 각각에 대응하는 래퍼 클래스가 존재합니다.기본형 (Primitive)래퍼 클래스 (Wrapper Class)byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoole..
[JAVA] Comparator와 Comparable의 차이점 1. Comparator와 Comparable의 차이점Comparator: 객체의 외부에서 두 객체를 비교할 때 사용됩니다. 주로 여러 기준으로 객체를 정렬할 필요가 있을 때 유용합니다.Comparable: 클래스 자체에서 비교 기준을 정의하며, compareTo() 메서드를 오버라이드하여 기본 정렬 방식을 제공합니다.Comparable을 구현하면 기본 정렬이 가능하지만, 필요할 때마다 정렬 기준을 다르게 적용하려면 Comparator를 사용하는 것이 좋습니다. 2. 메서드 체이닝으로 다중 조건 정렬Comparator를 사용하면 메서드 체이닝을 통해 다중 조건을 쉽게 설정할 수 있습니다. 예를 들어, 나이를 기준으로 정렬한 후 이름을 기준으로 다시 정렬하려면 thenComparing() 메서드를 활용할 ..
[백준] 11650번 좌표 정렬하기 JAVA 백준 : https://www.acmicpc.net/problem/11650 백준 알고리즘을 풀면서 이해가 되지 않았던 내용을 글로 남기고자 한다. 상기 좌표 정렬하기 문제에서 2차배열과 Array.sort() 사용해야 한다고 생각했지만, 조금 더 쉽게 구현하고자 생각하면서 찾은 내용이 람다식이었다.. 해당 방법은 아래 출처에서 참고했다. 이해하기 쉽게 잘 설명 해주었다.https://st-lab.tistory.com/110 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System...
[JAVA] Abstract Class(추상 클래스)와 Interface (인터페이스) 추상 클래스 (Abstract Class)설명정의: 추상 클래스는 하나 이상의 추상 메서드를 포함하는 클래스입니다. 추상 메서드는 구현이 없는 메서드로, 서브클래스에서 반드시 구현해야 합니다.특징:인스턴스를 직접 생성할 수 없음.추상 메서드뿐만 아니라 구현된 메서드도 포함할 수 있음.상태(필드)와 구현(메서드)을 가질 수 있음.단일 상속만 가능.용도기본 구현 제공: 공통된 기능을 자식 클래스에 제공하면서, 일부 메서드는 자식 클래스에서 구현하도록 강제하고 싶을 때 사용.코드 재사용: 상속을 통해 코드 재사용을 목적으로 할 때 사용.예제// 추상 (부모) 클래스abstract class Animal { // 필드 private String name; // 생성자 public Anima..
[알고리즘] 재귀와 메모이제이션 1. 소개재귀와 메모이제이션은 알고리즘 설계와 프로그래밍에서 매우 중요한 개념입니다. 이 글에서는 재귀의 기본 개념과 그것이 가지는 한계를 설명하고, 메모이제이션을 통해 재귀의 성능을 어떻게 향상시킬 수 있는지 알아보겠습니다. 2. 재귀(Recursion)재귀는 함수가 자기 자신을 호출하는 프로그래밍 기법입니다. 주로 복잡한 문제를 더 작은 하위 문제로 분할하여 해결할 때 유용합니다. 재귀 함수의 기본 구조function factorial(n) { if (n === 0) { return 1; } else { return n * factorial(n - 1); }}console.log(factorial(5)); // 120위 코드에서 factorial 함수는 자기 ..