본문 바로가기

Language/Java

Java String interm String.intern() String클랫의 intern()은 String인스턴스의 문자열을 'constant pool'에 등록한다.'constant pool'에 이미 존재할 경우에는 해당 문자열의 주소를 반환한다. ------------------------------------------------------String s1 = "AAA"; String s2 = new String("AAA"); s2 = s2.intern();------------------------------------------------------ s2에는 s1과 같은 주소값이 저장되게 된다(기존의 s2의 인스턴스는 가비지 컬렉트 된다)intern은 Heap에 만들어진 객체를 놓아주고, String pool에 있는 객체를 가.. 더보기
OXM(Object XML Mapping) [XML 바인딩 기술들...] JAXB : JavaSE, JavaEE 표준에 포함이 되어 있음Castor XML : 설정파일이 필요 없는 인트로스펙션 모드를 지원하기도 하는 매우 간결하고 가벼운 바인딩 프레임워크JiBX : 뛰어난 퍼포먼스를 자랑하는 XML 바인딩 기술XmlBeans : 아파치 XML 프로젝트의 하나다. XML의 정보셋을 효과적으로 제공해준다.Xstream : 관례를 이용해서 설정이 없는 바인딩을 지원하는 XML 바인딩 기술의 하나다. 더보기
Java Doc JavaDoc 주석 다는 방법, 기본적인 예 여전이 주석이라는 것에 대해 긍정적인 면보다는 부정적인 면이 더 많다고 생각하고 있지만.. 소스 코드와 주석을 통해 멋지게 문서를 자동으로 생성해 주는 개념은 주석에 대한 부정적인 많은 부분을 불식시키고도 남는듯합니다. Java로 만든 어플리케이션(또는 서비스)의 소스를 협업자 또는 제3자에게 제공하기 위해 주석을 달때 JavaDoc의 도움을 받아 좀더 체계적으로 작업할 수 있도록 하기 위한 주석법입니다. 간단히 제 스스로 개발할때 참고하여 사용할만한 예제 코드로 정리해 봅니다. 먼저 클래스에 대한 주석의 예입니다. view plaincopy to clipboardprint?/** * 화면상에 윈도우를 나타내기 위한 클래스 * 사용 방법: * * Window .. 더보기
Java에서 직렬화(Serializable)가 불가능한 경우 1. 직렬화가 불가능한 경우 1) 직렬화가 불가능한 객체를 포함한 경우 2) 하위 클래스는 직렬화를 구현했지만 상위 클래스에서는 직렬화가 구현되지 않은 상태에서 상위 클래스의 생성자에 매개변수가 있는 경우 2. 직렬화 불가능한 클래스들 1) 이벤트 어댑터 2) 이미지 필터 3) AWT 클래스 4) beans 5) Socket 6) URLConnection ?1234567891011121314import java.io.IOException;import java.io.Serializable;import java.net.Socket; /** * Serializable은 구현했지만 직렬화할 수 없는 객체를 포함한 경우 */ public class MyNetwork implements Serializable { .. 더보기
Java enum java enumo 클래스처럼 보이게 하는 상수¡ 예를 들어 Config 라는 클래스를 만들고 맴버로 KVM,XenServer를 두고 싶음- 기존의 클래스로 구현하는 방식 (Config.java)public class Config { public static final int KVM = 1; public static final int XenServer = 2;}- 위와 같이 클래스로 구현한다.- 여기에서의 문제점은 1,2 값이 KVM, XenServer 만을 가르키지 않는다- 또한 3,4 와 같은 숫자가 들어 올 수도 있다 ¡ 이러한 문제점을 해결하기 위해서 JAVA 1.5 에서 enum 이 추가 되었다.public enum Config {KVM,XenServer} ¡ 출력public class Hell.. 더보기
Java Varargs (가변인자) 사용법 7.4.5 Varargs(자바 5.0) 자 바 5.0에서 소개되는 기법 중에서 가변인수(Varargs)라는 것이 있다. 가변인수라는 것은 필요에 따라 매개변수(인수)를 가변적으로 조정할 수 있는 기술이다. 가변인수가 없던 시절에는 가변인수 대신 컬렉션이나 배열을 이용해서 가변인수를 대체하고 있었다. □ 가변인수(Varargs 자바 5.0) ◇ 필요에 따라 매개변수(인수)를 가변적으로 조정할 수 있는 기술이다. □ 가변인수가 없던 시절 ◇ 컬렉션이나 배열을 이용해서 가변인수를 대체하고 있었다. 우선 컬렉션을 이용해서 가변인수를 사용하던 기법부터 보도록 하자. 다음은 인수를 Vector에 넣어서 메서드로 전달하는 예이다. ▒ 컬렉션을 이용한 가변인수(메서드) 1234567public class VarArgs.. 더보기
Dom4j를 이용한 XML Parsing Dom4j를 이용한 XML Parsing [ 예제 코드 ] import java.net.URL;import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader;public class Foo { public Document parse(URL url) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(url); return document; } } Iterator 사용하기"document"(SAXReader나 DocumentHelper를 통해 만들어진 XML객체)는 자바의 표준 Iterat.. 더보기
ArrayList와 HashMap의 차이점 (Java Collection) 1. Collection List 계열 : AbstractList, ArrayList, LinkedList, Vector Map 계열 : AbstractMap, Attributes, HashMap, Hashtable, IdentityHashMap, RenderingHints, TreeMap, WeakHashMap Set계열 : AbstractSet, HashSet, LinkedHashSet, TreeSet Collection, List, Map,Set은 모두 구현되지 않은 interface 계열로 내려가 구현된 Class를 사용해서 정의 ex) List a = new ArrayList(); * 다형성(부모는 여러가지 자식의 형태로 나타날 수 있다). List a = new List(); * error :.. 더보기