본문 바로가기
반응형

java37

Java Map - HashMap, TreeMap, LinkedHashMap 비교, 차이점 데이터를 모아서 관리할 수 있는 클래스를 컬렉션이라고 한다. 컬렉션은 그 타입에 따라 내부에 데이터를 저장하는 구조와 처리하는 방법이 다르다. 내부에서 처리하는 방법에 따라 데이터의 탐색이 빠른 경우가 있고, 추가/제거가 빠른 경우가 있다. 사용하는 컬렉션의 특성을 잘 알고 사용해야 불필요한 성능 저하를 피할 수 있다. 자바에서 제공하는 컬렉션의 대표적인 예로 List, Map, Set 등이 있다. 그 중에 이번 포스트에서 알아볼 Map 종류는 Key 값과 Value 값을 관리해주는 컬렉션이다. Key - Value 쌍은 java.util.Map.Entry 클래스로 정의되며 이 Entry 들을 저장, 관리 해주는 컬렉션이 Map이다. Map 컬렉션은 다음과 같이 사용할 수 있다. 가장 많이 사용하는 Ha.. 2019. 5. 28.
자바 'for each' 구문 - Java의 향상된 for 문 자바를 이용해서 컬렉션 데이터를 처리할 때 반복문을 많이 사용한다. for 문을 이용해서 컬렉션 데이터 하나하나를 처리하는 코드는 일반적으로 다음과 같을 것이다. public static void main(String[] args) { int array[] = {1, 2, 3, 4, 5}; for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } // 출력 // 1 // 2 // 3 // 4 // 5 초기부터 자바를 사용해 왔거나 C 언어 같은 언어를 사용하던 프로그래머라면 이런 형태의 코드가 자연스럽게 받아들여질 것이다. 하지만 JDK 5.0 버전부터 for each 구문을 제공하면서 더 간결하게 컬렉션 데이터를 사용할 수 있.. 2019. 5. 27.
[Java] System.currentTimeMillis() 값(유닉스 시간, Unix Time)을 Date 포맷으로 변경하기 자바에서 현재 시간 정보는 System.currentTimeMillis() 메소드를 이용해서 가져올 수 있다. System.currentTimeMillis() 메소드에서 얻어지는 값은 long 타입으로 세계 표준시(UTC)로 1970년 1월 1일 00시 00분 00초를 기점으로 현재까지 몇 밀리초(ms)가 흘렀는지를 기록한 값이다. 프로그래밍 세계에서는 흔히 '유닉스 시간(Unix Time)' 혹은 '파직스 시간(POSIX Time)'이라고 부른다. 자바를 이용해서 유닉스 타임을 얻어오는 코드는 다음과 같다. long time = System.currentTimeMillis(); 유닉스 타임을 이용해서 특정 코드의 수행 시간도 측정할 수 있다. long start = System.currentTimeMi.. 2019. 5. 18.
[Gson 사용법] 자바 객체와 JSON을 다루는 쉬운 방법, 몇 가지 예제 Java 클래스를 다른 곳으로 전송할 때 사용할 수 있는 직렬화(Serialize) 포맷으로 JSON이나 XML 같은 텍스트 포맷을 사용하는 경우가 많다. 문자열을 사용하는 만큼 데이터를 처리하는데 상당히 높은 수준의 유연성을 제공하기 때문이다. 자바 객체를 JSON으로 바꾸는 작업은 Gson 이라는 패키지를 이용하면 쉽게 할 수 있다. Gson은 구글에서 만든 자바 오브젝트의 직렬화/역직렬화 라이브러리다. 내부적으로 리플렉션(Reflection)을 사용하기 때문에 사용자가 귀찮게 이런저런 옵션을 넣어주지 않아도 되어 편하다. Maven 설정 Gson을 사용하기 위한 Maven 설정은 다음과 같다. com.google.code.gson gson 2.8.0 Java 객체를 JSON으로 직렬화(Seriali.. 2019. 5. 17.
[Java] org.w3c.dom.Node 클래스를 Document로 변환하기 XML의 특정 서브 트리의 Node 객체를 이용해서 해당 객체가 Root인 새로운 Document 를 만들고 싶을 때가 있다. 예를 들어 다음과 같은 XML Document가 있다고 하자. value 1 value 2 value 3 XPath 등을 이용해서 에 해당하는 Node 객체를 얻어왔을 때 노드의 서브 트리를 Root로 하는 새로운 Document를 얻어오고 싶을 경우가 있다. value 3 org.w3c.dom.Document 인터페이스에는 importNode() 라는 메소드가 있으며, 이 메소드를 이용해서 새로운 Document를 만들 수 있다. org.w3c.dom.Node 클래스를 Root로 하는 새로운 org.w3c.dom.Document를 만드는 예제 코드는 다음과 같다. public .. 2019. 5. 16.
자바 빈(Java Bean)이란 무엇인가? (자바 빈 예제) 자바 프로그래밍 관련 문서를 찾아보다가 '자바 빈즈(Java Beans)'라는 단어를 듣게 되었다. 자바빈즈(Java Beans)는 자바(Java)로 작성된 소프트웨어 컴포넌트를 일컫는 말로 데이터 표현을 목적으로하는 자바 클래스다. 자바 빈즈 클래스는 'Java Beans Convention'을 지켜야 하며, Java Beans Convention은 다음과 같다. 클래스는 인자(Argument)가 없는 기본 생성자(Default constructor)를 갖는다 클래스의 멤버 변수는 프로퍼티(Properties)라고 하며 private 접근 제한자를 가져야 한다. 클래스의 프로퍼티들은 Getter/Setter를 통해 접근할 수 있어야 한다 Getter의 이름은 get{프로퍼티 이름} 이며, Setter의.. 2019. 5. 15.
[Java] json-simple을 이용한 JSON 데이터 다루기 예제 (JSONParser, JSONObject, JSONArray 클래스를 이용한 예제) 자바에서 JSON 데이터를 다룰 일이 많다. 특히 REST API를 통해 데이터를 가져오는 경우 JSON 포맷을 사용하는 경우가 많기 때문에 JSON을 다루는 예제를 알아두면 좋다. 자바에서 JSON 포맷을 다루는 방법은 다양하지만 가장 간단한 방법인 'json-simple' 패키지를 이용하는 방법을 정리해보겠다. Maven 설정 json-simple 패키지를 사용하기 위해서 다음과 같은 메이븐(Maven) Dependency 설정이 필요하다. com.googlecode.json-simple json-simple 1.1 버전 정보는 적당한 걸 넣어주면 된다. JSON 파싱해보기 JSON으로 표현된 데이터를 다루기 위해서 json-simple 패키지에서 다음 클래스들을 사용하면 된다. JSONParser .. 2019. 5. 13.
자바(Java)의 박싱과 언박싱(Boxing & Unboxing), 오토박싱과 오토 언박싱(Auto Boxing & Auto Unboxing) 그리고 래퍼 클래스(Wrapper Class) 자바는 int, long, boolean 같은 변수의 기본 자료형(Primitive Type)을 제공한다. 하지만 이런 기본자료형은 컬렉션(Collection)이나 지네릭(Generic)에서 제한적으로 사용가능하다. 따라서 자바는 각 기본 자료형에 대응되는 래퍼 클래스(Wrapper Class) 제공하고 있다. 자바 변수의 기본형에 대응되는 래퍼 클래스(Wrapper Class)는 다음과 같다. 기본 자료형(Primitive Type) 래퍼 클래스(Wrapper Class) boolean Boolean short Short int Integer long Long float Float double Double char Character byte Byte 변수의 기본 자료형 이름의 첫 번째 글자만 대문자로 .. 2019. 4. 19.
Jps, jmap, jhat을 이용한 자바 메모리 덤프 분석 (Java Heap Memory Dump Analysis) 분석 도구 사용법 자바를 이용한 애플리케이션으로 구동되는 시스템에서 가장 조심해야 할 부분이 메모리 사용량이다. 힙 메모리(Heap Memory) 사용량이 이상하게 많거나 점점 증가해서 OutOfMemory 에러가 발생하기도 한다. 메모리 사용량 측면에서 이상 동작이 감지되었을 때, 자바 애플리케이션을 분석할 방법이 필요하다. 이와 관련하여 각종 상용 제품들이 있지만 가장 기본적인 툴들인 jps, jmap, jhat을 알고 있으면 큰 도움이 된다. 이 분석 도구들은 JDK 디렉토리에 포함되어 있다. (일부 버전이나 플랫폼에서는 제공되지 않을 수 있다고 한다. 또 한 추후 버전에서는 제공되지 않을 수도 있다는 말이 있다.) 자바를 정상적으로 설치했다면 $PATH 중 하나에 설치가되어 있을 것이다. 만약 없다면 $JAVA_H.. 2019. 4. 7.
반응형