JAVA
-
[발번역]언제 ArrayList 대신 LinkedList을 쓰나요?JAVA/in 기초 2014. 12. 25. 00:57
질문 : 나는 대부분 간단하게 List names = new ArrayList() 이렇게 사용한다.나는 이식성이 좋은 인터페이스(Interface) 타입을 사용한다, 그래서 나의 코드가 변경이 필요할 때 변경 할수 있다. 언제 LinkedList를 ArraryList 대신 쓰나요? 또는 반대로 사용해야 하나요? 요약 답변 : ArrayList 와 ArrayDeque가 LinkedList 보다 더 많이 사용 되는 것이 선호 된다. 확실하진 않다. ArrrayList 에 대해 이야기 해보자 LinkedList와 ArrayList는 List Interface를 다르게 구현한 것이다.LinkedList는 이중 연결 목록 방식으로 구현 되어 있고, ArrayList는 동적으로 크기가 변환되는 배열 방식으로 구현 ..
-
[JAVA8]자바의 다중 상속 관련 내용JAVA/in 기초 2014. 12. 19. 13:01
자바7 버젼까지 다중 상속의 개념 보다는 확장이라는 개념이 지배적이었다. 인터페이스를 다중으로 상속받아 좀더 확장된 인터페이스가 되기 때문이다. 그런데 자바8에서는 default method를 이용한 다중상속이 가능하다. 다음은 그 예제를 구현간단하게 구현 하여 보았다. 비행카(PlaneCar) 라는 다중상속을 받은 인터페이스가 있고, 비행기(Plane)와 자동차(Car)라는 인터페이스가 있다 각 인터페이스는 다음과 같은 기능을 가진다. [비행카 클래스도] 비행카 인터페이스 에서는 다중상속에는 다이아몬드 문제라는 것이 있다, 그것을 어떻게 처리하는지를 보여주기 위해 carry()라는 default method를 추가 하였다. public interface Plane{ default void fly(){ ..
-
[JAVA8]Stream 맛보기JAVA/in 기초 2014. 12. 2. 10:04
JAVA8에서 추가된 Stream 인터페이스는 많은 기능을 제공 합니다. 특히 정렬, 필터, 통계 등을 람다(LAMBDA)표현식을 이용하여 간단하게 표출 하도록 도와 줍니다. JAVA 5,6,7 에서의 방식 List humanList = initialList(); //남자인 사람의 수 int manCount = 0; for(Human h : humanList){ if(h.isMan() ){ manCount ++; } } //10세 이하인 사람의 나이 합산 int below10_totalAvg = 0; for(Human h : humanList){ if(h.getAge() < 10 ){ below10_totalAvg += h.getAge(); } } assertEquals(below10_totalAvg, ..
-
[ OSGi ] 7 - OSGi Eclipse 실행JAVA 2014. 8. 29. 13:33
[ OSGi ] Spring DM 1, 2, 3 에서 OSGi에서 Spring을 이용한 서비스 등록과 Annotation 사용을 보았다 이번에는 이것을 Eclipse 에서 바로 실행을 해보자 . Run Configurations... 를 선택한다. OSGi Framework를 더블클릭 하면 밑에 New_configuration이 생긴다.OSGi 구동시 필요한 plugin 들을 선택하고 Run을 한다. Console 창에 다음과 같이 나오면 성공이다.
-
[ OSGi ] 6 - Spring DM 3JAVA 2014. 8. 28. 21:16
[ OSGi ] 5 - Spring DM 2 에서 Spring DM을 이용해서 service 등록하는 내용을 봤다. HelloWorldOSGiSub Project의 Activator(SubActivator.java)를 대신 하는 Spring annotation 과 DI를 적용 해보자. Target Platform 추가 1. Spring에서 필요한 library project로 등록 lib로 프로젝트를 하나 만든다. lib로 필요한 library를 넣는다. ( 여기의 lib 파일은 [ OSGi ] 4 - Spring DM 1 에서 설명한 lib이다. ) 2. 그럼 이제 해당 lib 들을 target platform에 설정을 한다. Window > Preferences 를 클릭하여 Plug-in Develo..
-
[ OSGi ] 5 - Spring DM 2JAVA 2014. 8. 26. 18:03
[ OSGi ] 4 - Spring DM 1 에서 Spring 관련 bundle을 올리고 Activator 대신 spring.xml에 설정한 init-method, destory-method 사용을 알아봤다. 여기서는 Spring 을 이용해서 OSGi의 Service에 등록하는 것을 해보겠다. ( 앞에서도 말했지만 일반적인 Service 등록은 http://xguru.net/tag/osgi 에서 OSGi 시작하기 4, OSGi 사직하기 5 를 참고하자. ) 서비스에 등록할 인터페이스 생성 1. interface 생성 HelloWorldOSGiSpringDM 프로젝트에 HelloWorldOSGiSpringDMPrinter.java와 HelloWorldOSGiSpringDMPrinterImpl.java 파일..
-
[ OSGi ] 4 - Spring DM 1JAVA 2014. 8. 25. 15:50
[ OSGi ] 3 - OSGi plugin 의존 관계 에서 서로 다른 Plugin 간의 Class 사용을 해보았다. ( Import-Package, Export-Package )그런데 이런 단순한 내용 뿐만 아니라 Spring의 핵심 기능인 DI는 IoC중의 한 종류인데 OSGi framework 에서도 IoC를 설계하여 적용 할수 있다.바로 OSGi의 서비스 등록인데 이는 http://xguru.net/tag/osgi 에서 OSGi 시작하기 4, OSGi 사직하기 5 에 잘 정리 되어 있다. 꼭 읽어봐야함!!! 여기서는 OSGi에서의 Spring DM을 이용한 서비스 등록을 보도록 하겠다. Spring DM을 할용해서 OSGi 서비스의 등록을 간편하게 할 수 있다. Spring DM은 현재..