Programming(174)
-
[JAVA] 스태틱 팩토리 (Static Factory)
생성자를 사용하는 것 대신 Static Factory Method를 고려하자.Static Factory Method란?클래스의 인스턴스를 static public 매서드를 이용하여 리턴하는 방법. 글로는 어렵게 설명 되어 있으나 코드를 보면 아주 단순하다.public class Test{public Test(){...}위의 예시는 일반적인 생성자 함수 방식이고, 아래의 방식이 static Factory Method를 활용한 방식이다.public class Test{private static final Test INSTANCE = new Test();private test(){}public static Test getInstance(){return INSTANCE;}그렇다면 Static Factory Me..
2013.01.15 -
[JAVA] static 초기화
오픈 소스를 분석하다가 의문(?)스러운 코드를 접하게 되었다.C, C++ 개발자로서는 이해할 수 없는... ㅋㅋ저 static {} 는 도대체 모지??? 함순가.. property인가..구글링을 해 본 결과, JAVA에서는 static 변수를 초기화 할 때 위와 같이 사용한다고 한다.간단히 static int a = 3; 이렇게 선언할 경우도 있지만, 위와 같은 코드일 경우엔 마땅히 선언할 방법이 없기 때문이다.그렇다고 생성자 함수에서 선언하고자 한다면, 인스턴스를 만들어야 하기 때문에 비효율적이다.신기한 JAVA의 세계..
2013.01.11 -
[JAVA] 맵 사용에 따른 메모리 누수
가비지 컬렉터에서는 논리적으로 더이상 사용하지 않는 객체에 대한 정리 작업을 실행한다. 하지만 만약 이러한 객체가 맵 안에 존재하고 있다면 어떻게 될까?정리 작업을 실행해야 할까 말아야 할까??정답은 '정리 작업을 실행하지 않음' 이다.아래의 예제 소스를 보면,public class Manager {private Map map = new Hashmap();public void setData(Key k, Value v){map.put(k, v);}public Object getData(Key k){ return map.get(k);}public void removeData(Key k){map.remove(k);}해시 맵을 사용할 때 위와 같은 방법으로 사용을 많이 한다.위의 코드에서 발생할 수 있는 잠재..
2013.01.08 -
[JAVA] failed to load the JNI shared library jvm.dll
몬가 해서 봤더니 64bit 운영체제에서 32bit 이클립스를 설치해서 생긴 오류..64bit로 다시 다운받아서 하니 잘된다!
2013.01.04 -
[C#] 강제 종료 이벤트
Console에서 Ctrl + C를 눌렀을 경우에 이벤트를 발생하고 싶을 때는 다음과 같이 해주면 된다.프로세스 강제 종료시 이벤트 받을 수는 없을까...
2013.01.04 -
[WDF] PS/2 Mouse Filter 드라이버
WPF 책을 독파하고 난 후, DDK에 있는 Mouse Filter 드라이버 코드를 분석하기 시작했다.일단은 Mouse Filter 드라이버가 삽입되어야 할 위치를 알아야 하고, 어떤 IRP를 가로채야 하는지 등에 대해 알아야 하기 때문에 PS/2 마우스 드라이버의 스택 구조를 알 필요가 있었다.Mouclass Filter (FIDO Driver - Class upper Filter Driver) I8042prt Driver (FDO Driver) ACPI Bus Driver (PDO Driver)PS/2 마우스 드라이버의 스택 구조는 위의 그림과 같이 하위의 ACPI Bus Driver(PDO), 기능 드라이버 역할의 I8042prt Driver(FDO), 그리고 맨 상위에 Mouclass Filte..
2013.01.04