Programming/JAVA(16)
-
[JAVA] File Encoding 2013.05.16
-
[JAVA] C:\Program Files\Java\jre6\..\lib\tools.jar 에러가 날 때
maven 프로젝트를 다운 받고 maven install을 눌렀는데C:\Program Files\Java\jre6\..\lib\tools.jar라는 error 표시와 함께 install이 안되는 문제가 발생하였다. 열심히 구글링을 한 결과.JDK와 JRE를 함께 깔았을 경우 JRE의 VM을 참조함으로써 생기는 문제..JDK 내의 JRE VM을 추가한 후 default로 해주면 위의 문제가 해결된다.JDK 변경 후 maven update project는 필수!!1. 프로젝트의 property -> Java Build Path -> Add Library 클릭 2. JRE System Library 클릭 후 Next 클릭 3. Alternate JRE 선택 후 Installed JREs 클릭 4. Search..
2013.02.22 -
[JAVA] equals와 ==의 차이
equals는 객체 안에 있는 내용을 비교하고 ==은 객체 자체를 비교한다.예를 들어, String s1 = "abc";String s2 = "abc";이런 객체가 생성되었을 시, true가 되지만s1.equals(s2) == true만약String s1 = "abc";String s2 = new String("abc");이렇게 s2에 대해 새로운 객체를 생성할 시에는 false가 된다.(s1 == s2) == false
2013.01.24 -
[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