java
결국은 Call by Reference가 아닌 Call by Value
결국은 Call by Reference가 아닌 Call by Value
2023.01.17프로그래밍 언어를 배우면 Call by Reference와 Call by Value에 대한 내용이 나옵니다. 최근에 이 부분에 대한 오해(?)가 있었는데 이를 해소하면서 배운 점들을 블로그에 정리해보고자 합니다. 📌 Call by Reference? public class CallByReferenceAndValue { static void changeObjectValue(Person target) { target.setName("changed"); } public static void main(String[] args) { Person person = new Person(); person.setName("hello"); System.out.println("before method - Person name..
JUnit5를 이용한 EntityManager로 QueryDSL 테스트해보기
JUnit5를 이용한 EntityManager로 QueryDSL 테스트해보기
2022.02.18QueryDSL을 공부해보면서 간단하게 프로젝트 구성해보고 QueryDSL 사용에 대한 간단한 테스트를 해보았습니다. JUnit을 이용한 QueryDSL 테스트를 진행해보았는데 테스트 진행을 위한 JUnit 환경 설정하는데에 꽤나 시간이 걸렸던 것 같습니다. Repository를 이용한 테스트가 아닌 EntityManager를 가져와서 QueryDSL에 대한 간단한 테스트를 해보려 합니다. EntityManager를 이용한 테스트를 위해서 JUnit 설정이 살짝 달랐는데요. 이에 대한 내용을 정리해보고자 합니다. 📌 1. 기본적인 프로젝트 구성 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' impl..
[Collection] ArrayList 특징 (add할 때의 내부동작)
[Collection] ArrayList 특징 (add할 때의 내부동작)
2021.07.25Overview ArrayList의 add 과정 DEFAULT_CAPACITY를 넘겼을 때 ArrayList는 copy의 문제를 가지고 있다. ArrayList는 어떻게 사용해야될까 정리 📌 Overview ArrayList하면 코딩테스트나 실제 개발에 가장 많이 쓰이는 Collection Framework이지 않을까 생각합니다.그만큼 가장 기본적이면서도 아주아주 중요한 클래스이기 때문에 ArrayList의 내부 동작을 중점으로 특징을 한번 정리해보고자 합니다. ArrayList에 대한 메서드나 어떤 클래스 계층구조를 가졌는지에 대해서는 잘 정리된 블로그 글들이 많기 때문에 이에 대한 설명은 줄이고 내부적으로 어떤 동작을 하는지에 초점을 맞추었습니다. 📌 ArrayList의 add 과정 public vo..
[프로그래머스] 힙(Heap) - 라면공장 (Java)
[프로그래머스] 힙(Heap) - 라면공장 (Java)
2020.03.29프로그래머스 코딩테스트 연습 - 힙(Heap) : 라면공장(https://programmers.co.kr/learn/courses/30/lessons/42629) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Heap에서 우선순위 큐(Priority Queue)를 사용하는 문제입니다. 우선순위 큐는 java document에 자세히 설명되어 있습니다. 그중에 메서드 부분을 살펴보면 위의 메서드들을 이용했습니다. 우선순위큐는 Queue 인터페이스를 상속받고 있기 때문에 Queue에 대한 doc 내용도 확인하면 좋습니다. 저는 위의 문제의 핵심은 suppli..
[프로그래머스] Hash(해시) - 베스트앨범 (Java)
[프로그래머스] Hash(해시) - 베스트앨범 (Java)
2020.03.27프로그래머스 코딩테스트 연습 - 해시(Hash) : 베스트앨범(https://programmers.co.kr/learn/courses/30/lessons/42579) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 복잡하고 어렵네요. 저는 머리가 나쁘기 때문에 이 문제를 보자마자 한번에 풀 수가 없습니다. 이 문제를 풀기전에 무작정 코드를 작성해보는 것이 아니라 겸허한 자세로 노트에다가 적으면서 어떻게 문제를 해결할 것인지 구상을 하는 것이 저에게는 좋았습니다. 이 문제는 특이하게 genres 배열의 index가 개별 음악의 고유번호로 설정했습니다. 저는 ..
[프로그래머스] Hash(해시) - 전화번호 목록 (Java)
[프로그래머스] Hash(해시) - 전화번호 목록 (Java)
2020.02.21프로그래머스 코딩테스트 연습 - 해시(Hash) : 네트워크 (https://programmers.co.kr/learn/courses/30/lessons/42577) 코딩테스트 연습 - 전화번호 목록 | 프로그래머스 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 r programmers.co.kr 우선..