프로그래밍/Java Leejisoo 2016. 8. 16. 16:43
Map InterfaceKey와 Value를 하나의 쌍으로 묶어서 저장하는 클랙션 클래스를 구현하는데 사용한다. Key는 Value와 매칭되기 때문에 Key는 중복이 불가능하고, Value는 중복이 가능하다. 기존에 저장된 Key에 새로운 Value를 저장하면 새로운 Value로 덮어쓰여 진다. Hashtable, HashMap, LinkedHashMap, SortedMap, TreeMap등이 있다. Method 설명 void clear() Map의 모든 객체를 삭제한다. boolean containsKey(Object key) 지정된 Key객체와 일치하는 Map의 Key객체가 있는지 확인. boolean containsValue(Object value) 지정된 Value객체와 일치하는 Map의 Valu..
프로그래밍/Java Leejisoo 2016. 8. 6. 16:45
Set InterfaceSet인터페이스는 중복을 허용하지 않고 입력순서가 유지되지 않는 컬렉션 클래스를 구현하는데 사용된다. Set인터페이스를 구현한 클래스로는 HashSet, TreeSet등이 있다. HashSet은 HashMap을 사용하여 데이터를 저장하고, TreeSet은 이진검색트리를 이용하여 데이터를 저장한다. HashSetHashSet은 Set인터페이스의 특징대로 중복된 요소를 저장하지 않으며, 입력순서를 보장하지 않는다. add, addAll을 통해서 데이터를 저장하고 만약 중복 된 데이터를 추가하는 경우 false를 반환한다.내부적으로는 HashMap을 이용하여 데이터를 저장한다. LinkedHashSetHashSet은 저장순서를 보장하지 않지만, LinkedHashSet은 저장 순서를 보..
프로그래밍/Java Leejisoo 2016. 8. 1. 00:25
List Interface가장 많이 쓰이는 Collection Framework중에 하나이다. 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현하는데 사용된다. List인터페이스를 구현한 클래스로는 ArrayList, LinkedList, Vector, Stack등이 있다. 기본적으로 내부에서 어떤 자료구조가 Collection 데이터를 보관 관리하느냐에 따라서 클래스명을 결정한다. 예를들어 ArrayList는 데이터를 배열(Array)에 저장하고, LinkedList는 next Element와 prev Element를 저장하는 Linked Node로 구성된 자료구조 형태에 데이터를 저장한다. List Interface의 메소드는 아래와 같다. 물론 Collection Interface의 내용은 모두 ..
프로그래밍/Java Leejisoo 2016. 7. 31. 18:00
Collection FrameworkCollection Framework란 다수의 데이터를 쉽게 처리할 수 있는 표준화 된 방법을 제공하는 클래스들을 말한다. 핵심 인터페이스는 List, Set, Map이 존재하고 이를 상속받아 구현 한 다양한 타입의 클래스가 존재한다. 각 인터페이스의 특성을 파악하고, 이를 구현하는 하위 클래스의 별도 특성과 동작 방식이 중요 한 것 같다. Interface 특징 List 입력 순서유지, 중복가능 (ArrayList, LinkedList, Stack, Vector등) Set 입력 순서무시, 중복불가 (HashSet, TreeSet 등) Map Key, Value로 이루어진 데이터 집합 순서개념 없음, Key중복불가, Value중복가능. (HashMap, TreeMap,..
프로그래밍/Java Leejisoo 2016. 1. 18. 00:02
Apache POI Grid 형태의 데이터를 핸들링 하는 화면에는 보통 '엑셀다운로드', '엑셀업로드' 버튼이 존재한다. 이를 구현하기 위해서 Apache에서 제공하는 POI 라이브러리를 이용하는 방법을 알아보도록 하자. Java로 작성된 Client 어플리케이션의 경우 엑셀업로드는 Client 어플리케이션이 실행되는 로컬에서 파일에 접근하여 내용을 read하여 서버로 전송할 데이터로 변경하면 되기 때문에 본 포스트는 엑셀 파일에 접근하고 내용을 read하는 방법을 다루기로 한다. [위키백과] 아파치 POI(Apache POI)는 아파치 소프트웨어 재단에서 만든 라이브러리로서 마이크로소프트 오피스 파일 포맷을 순수 자바 언어로서 읽고 쓰는 기능을 제공한다. 주로 워드, 엑셀, 파워포인트와 파일을 지원하며..
프로그래밍/Java Leejisoo 2016. 1. 17. 15:06
프로그래밍/Java Leejisoo 2016. 1. 3. 17:10
byte to HexString byte를 HexString으로 변환 하는 방법을 구글에서 찾아보면 아래 소스를 볼 수 있다. 1 Integer.toString(((byteData & 0xff)+0x100, 16).substring(1); cs Integer.toString(int값, 16) 메소드를 통해서 정수값을 16진수로 변환하는 것은 소스코드를 보고도 명확히 알 수 있다. 그런데 왜 byteData에 &0xff 비트연산을 해주고, 0x100을 더해주는지에 대한 설명은 아무리 찾아봐도 없다. 그래서 같은 고민을 가지고 계신 분들을 위하여 &0xff와 +0x100에 대한 의문을 풀어보고자 한다. byte&0xff byte형은 8비트의 공간을 차지한다. int는 32비트의 공간을 차지한다. 비트연산자 ..
프로그래밍/Java Leejisoo 2015. 12. 13. 18:07
WAS상에서 JAVA 기반 어플리케이션을 구동시키다 보면 OOM 관련 에러를 심심치 않게 볼 수 있다. 특히나 현재 수행하고 있는 PJT는 한개의 서버를 여래개의 가상서버로 분할하여 사용하고 있어 메모리 사용량이 심심치 않게 100% 가까이 올라가곤 한다. 그래서 메모리 최적화 까지는 아니더라도, 메모리 관련 옵션이 어떤 의미인지 정리해두고 조금이나마 메모리 사용 구조에 대한 이해를 하고자 했다. JVM 메모리 구조 Heap = Edn + Survivor + Old Non-Heap = Perm 이다. 메모리는 우선, Heap과 Non-Heap 으로 나뉜다. 상세 역할과 구분은 아래를 참고 하자. CG와 Heap영역의 기본 동작원리 : cg는 Eden과 ss1을 클리어 (살아있는 녀석은 ss2로 피신), ..