본문 바로가기
반응형

전체 글99

[JAVA] 객체 복제(clone)와 Shallow Copy, Deep Copy 객체를 복제하기 위해서는 Cloneable을 구현하고, clone() 메소드를 오버라이드하면 되서 간단하다! @Getter @Setter public class Person implements Cloneable{ private String name; private int age; @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } } 그리고 아래와 같이 person1.clone(); 을 사용하여 person1의 객체를 복제하였다. Person person1 = new Person(); person1.setName("홍길동"); person1.setAge(30); try { Person pers.. 2022. 2. 16.
[Eclipse/STS] Marketplace에서 Decompiler 설치하기 지난주에 jadClipse를 이용하여 디컴파일시키는 방법을 포스팅했었는데.. 적용이 잘 될때도 있고 안될때도 있어서 새로운 방법을 찾았다. [Eclipse/STS] Decompiler Plugin 적용하기 인텔리제이에선 기본적으로 디컴파일해주기 때문에 개발할 때 라이브러리 소스를 볼 수 있어서 편리했다 반면 이클립스나 STS에선 기본적으로 제공해주지 않아 인텔리제이를 쓰다 돌아오니 불 ynzu-dev.tistory.com 1. 이클립스 마켓플레이스에서 Enghanced Class Decompiler 설치 (help>Eclipse Marketplace) 2. Decompiler의 Default Class Decompiler를 FernFlower로 선택 3. *.class, *class without sou.. 2022. 2. 16.
[JAVA] 싱글톤 패턴(Singleton Pattern) : 멀티 스레드 환경에서의 문제점 싱글톤 패턴이란? 한마디로 정의하자면 '객체를 단 하나만 생성하도록 하는 디자인 패턴'! static이기 때문에 고정된 메모리 영억을 얻으며, 모든 클라이언트(클래스)에서 해당 인스턴스를 사용할 수 있어서 공통된 객체를 다수의 클라이언트에서 사용해야하는 상황에서 주로 사용 된다. 싱글톤 패턴의 예제를 보면 아래와 같은 형태가 대부분이다. 본인도 싱글톤 클래스를 작성할 때 이렇게 작성하였는데, 이런 경우 멀티스레드 환경에선 두개 이상의 스레드가 getInstance()를 하게 될 경우 두개의 인스턴스가 생성되는 문제가 생길 수 있다. (= 동시성 문제, thread unsafe) public class Singleton { private static Singleton singleton = null; pri.. 2022. 2. 10.
[Eclipse/STS] Decompiler Plugin 적용하기 인텔리제이에선 기본적으로 디컴파일해주기 때문에 개발할 때 라이브러리 소스를 볼 수 있어서 편리했다 반면 이클립스나 STS에선 기본적으로 제공해주지 않아 인텔리제이를 쓰다 돌아오니 불편함을 많이 느꼈고.. 예전에 디컴파일해주는 플러그인이 있다고 들은 기억이 있어 서치해보았다! 1. 플러그인 및 jad.exe 파일 다운로드 plugin : https://sourceforge.net/projects/jadclipse/ jad.exe : http://varaneckas.com/jad/ 위 url에서 다운받은 jad.exe는 작동하지 않는 경우가 있다고 하니.. 안되는 경우 아래 파일을 다운로드 받으면 된다~! 2. net.sf.jadclipse_3.3.0.jar 파일 plugin 디렉토리로 이동 다운로드 받은 .. 2022. 2. 9.
[Eclipse] import 에러 : No projects are found to import 프로젝트 파일 내부에 .project, .classpath와 같은 파일이 없으면 eclipse 혹은 sts에서 프로젝트로 인식하지 못해서 import할 때 'No projects are found to import' 에러가 발생한다. 이럴 경우 File>Import가 아닌 File>Open Projects from File System 을 통해 프로젝트를 불러와야 한다. Directory 버튼을 눌러 프로젝트를 선택한 뒤 Finish 버튼을 누르면 프로젝트가 불러와진 것을 확인할 수 있다. 2022. 2. 8.
[JAVA] Priority Queue(우선순위 큐) 우선순위 조건 변경하기 Priority Queue FIFO(First In First Out)인 일반적인 Queue와 다르게 Priority Queue는 우선순위가 높은 데이터가 먼저 Out된다. 기본적으로 오름차순 정렬을 하게 되는데 정렬 기준을 바꾸고 싶다면 람다식을 이용하거나 Comparator, Comparable를 이용해야 한다. Integer는 Collections.reverseOrder()를 통해 간단하게 내림차순 정렬을 할 수 있다. PriorityQueue pq = new PriorityQueue(Collections.reverseOrder()); pq.add(5); pq.add(7); pq.add(10); pq.add(3); System.out.println(pq.poll()); // 10 출력 add가 아닌.. 2022. 2. 7.
728x90
반응형