본문 바로가기

Java7

[Kotlin,Java] 코틀린과 자바에서 MutableList 선언 및 조작의 차이점 탐구 코틀린과 자바에서 MutableList를 선언하는 방법은 언어의 특성에 따라 다소 차이가 있다. 아래에서는 각 언어에 따른 MutableList 선언 방법을 코드를 통해 설명하겠다. 코틀린에서의 MutableList 선언 코틀린에서는 mutableListOf 함수를 사용하여 간결하게 MutableList를 선언할 수 있다. 코틀린의 표준 라이브러리는 다양한 컬렉션 타입을 쉽게 생성할 수 있는 함수들을 제공한다. val mutableList: MutableList = mutableListOf(1, 2, 3) mutableList.add(4) // MutableList에 아이템 추가 println(mutableList) // 출력 결과: [1, 2, 3, 4] 코틀린에서는 타입을 명시적으로 지정해주거나, 타.. 2024. 4. 23.
[Kotlin,Java] 자바와 코틀린에서의 프로퍼티 선언 방식의 차이점 설명 자바와 코틀린 모두에서 프로퍼티는 클래스의 상태를 나타내는 중요한 구성 요소이다. 그러나 코틀린은 프로퍼티를 선언하고 사용하는 방법에서 자바에 비해 더 단순하고 강력한 기능을 제공한다. 자바에서의 프로퍼티 생성 자바에서는 프로퍼티를 만들기 위해 필드(변수)와 그 필드를 접근하기 위한 getter 및 setter 메소드를 명시적으로 선언해야 한다. java public class Person { private String name; // 필드 // Getter public String getName() { return name; } // Setter public void setName(String name) { this.name = name; } } 코틀린에서의 프로퍼티 생성 코틀린에서는 필드, gette.. 2024. 4. 21.
[Java] Map 인터페이스와 HashMap 구분과 Map 인터페이스를 통해 HashMap을 사용하는 것이 좋은 이유 자바에서 키와 값의 쌍으로 데이터를 관리할 때, Map 인터페이스가 기본적으로 사용된다. 이 인터페이스는 각 키가 고유한 값을 가지도록 보장하며, 이를 통해 데이터를 효율적으로 저장하고 검색할 수 있게 해 준다. Map 인터페이스의 여러 구현체 중에서도 HashMap이 가장 널리 사용되지만, TreeMap이나 LinkedHashMap 같은 다른 구현체들도 특별한 사용 사례와 이점을 제공한다. Map interface의 구현체들에 대한 내용은 추후에 공부 후 블로깅 해 보겠다. 이번 글에서는 특히, Map 인터페이스를 통해 HashMap을 사용하는 것이 가지는 이점에 초점을 맞춰 보겠다. 이러한 접근 방식은 자바 프로그래밍에서 데이터를 효율적으로 관리하는 방법에 도움이 될 것 이다. HashMap을 직접 .. 2024. 4. 9.
[Java] 자바 빌더 패턴: 복잡한 객체 생성의 단순화와 한계점 탐구 회사에서 담당하게 된 부분의 코드 분석 중, 자바에서 많이 사용되는 디자인패턴 중 하나인 "빌더 패턴"에 대해 알게 되었다. 이에 빌더패턴의 사용 목적, 방법 그리고 이점에 대해 알아본 내용들을 정리해 두고자 한다. 자바에서 빌더 패턴(Builder Pattern)은 주로 복잡한 객체의 생성 과정을 단순화하기 위해 사용된다. 이 패턴은 객체의 생성과 표현을 분리함으로써, 동일한 생성 과정을 통해 서로 다른 표현 결과를 얻을 수 있게 해 준다. 빌더 패턴은 특히 많은 수의 매개변수를 가진 객체를 생성할 때, 그리고 이 매개변수 중 일부는 필수적이고 일부는 선택적일 때 유용하다. 빌더 패턴사용의 목적과 결과 목적: 복합 객체의 생성 과정을 단계별로 진행하여 최종적으로 객체를 안정적으로 생성한다. 결과: 클라.. 2024. 4. 9.
[Java] 오버로딩과 오버라이딩: 객체 지향 프로그래밍에서의 메소드 다형성 이해하기 이슈 수정을 위해 생성자 오버로딩을 사용할 필요가 생겼다. 이를 잊지 않기 위해 오버로딩에 대해 정리하려고 한다. 그 과정에서 오버라이딩과의 비교가 자주 나오기 때문에, 이 두 개념을 함께 정리하고자 한다. 오버로딩과 오버라이딩은 비록 서로 다른 목적과 작동 방식을 가지고 있지만, 이들은 메소드 재정의의 중요한 형태로, 객체 지향 프로그래밍에서 메소드의 다형성을 구현하는 데 필수적인 기술이다. 오버로딩(Overloading) 오버로딩은 메서드 오버로딩과 생성자 오버로딩 두가지 형태로 나뉜다. 오버로딩은 같은 이름을 가진 메소드나 생성자를 여러 개 정의할 수 있게 하며, 매개변수의 타입, 개수, 순서에 따라 구분된다. 이를 통해 메소드나 생성자에 다양한 입력을 처리할 수 있는 유연성을 제공한다. 1. 메소.. 2024. 4. 2.
[ Java ] Java에서 문자열 처리의 효율성을 높이는 방법: StringBuilder 활용하기 StringBuilder는 Java에서 문자열을 효율적으로 처리하기 위한 클래스다. 문자열 알고리즘 문제를 풀다가 알게된 자바 클래스인데, 일반적으로 문자열을 연결하거나 수정할 때 사용되며, 가변적인 문자열을 다루는데 유용하다. 기존의 String 클래스는 불변 이기 때문에 문자열을 수정할 때마다 새로운 문자열 객체를 생성하게 된다. 이로 인해 문자열 연산이 많은 경우 메모리와 성능에 부담을 줄 수 있다. 이러한 문제를 해결하기 위해 나온 것이 바로 StringBuilder 클래스 이다. StringBuilder는 가변적이며, 내부적으로 가변 크기의 문자열 버퍼를 가지고 있다고 한다. 따라서 문자열을 추가하거나 수정할 때마다 새로운 객체를 생성하지 않고도 효율적으로 처리 할 수 있게 되는 것이다. Str.. 2024. 3. 22.
[ Java ] Integer.parseInt(String s, int radix)를 활용한 자바에서의 진법 변환 기술 2진수를 10진수로 바꿔주는 로직을 짜다가 알게 된 메서드이다. 처음에는 char[] stringArray = str.toCharArray(); String binaryNumber = String.valueOf(stringArray); int decimalNumber = 0; int power = 0; for (int i = binaryNumber.length() - 1; i >= 0; i-- ){ int digit = Character.getNumericValue(binaryNumber.charAt(i)); decimalNumber += digit * Math.pow(2, power); power++; } 이런식으로 일일히 반복문을 돌며 2의 제곱수를 곱해주는 방식으로 구현을 해 줬었는데, 자바에 주어.. 2024. 3. 20.