분류 전체보기
-
[Java] 제네릭(generic) - 제네릭 메소드CSE/Java 2015. 9. 20. 10:42
제네릭은 여러 절로 구성되어 있습니다. Intro제네릭 타입멀티 타입 파라미터제네릭 메소드제한된 타입 파라미터 & 와일드카드 타입제네릭 타입의 상속과 구현 제네릭 메소드( R method(T t)) 제네릭 메소드는 매개 타입과 리턴 타입으로 타입 파라미터를 갖는 메소드를 말합니다. 제네릭 메소드를 선언하는 방법은 리턴 타입 앞에 기호를 추가하고 타입 파라미터를 기술한 다음, 리턴 타입과 매개 타입으로 타입 파라미터를 사용하면 됩니다. 12 public 리턴 타입 메소드명(매개변수, ...) { ... }cs 다음 boxing() 제네릭 메소드는 기호 안에 타입 파라미터 T를 기술한 뒤, 매개 변수 타입을 명시적으로 지정해도 되고, 컴파일러가 매개값의 타입을 보고 구체적인 타입을 추정하도록 할 수도 있습니..
-
[Java] 제네릭(generic) - 멀티 타입 파라미터CSE/Java 2015. 9. 20. 10:00
제네릭은 여러 절로 구성되어 있습니다. Intro제네릭 타입멀티 타입 파라미터제네릭 메소드제한된 타입 파라미터 & 와일드카드 타입제네릭 타입의 상속과 구현 멀티 타입 파라미터(class, interface) 제네릭 타입은 두 개 이상의 멀티 타입 파라미터를 사용할 수 있는데, 이 경우 각 타입 파라미터를 콤마로 구분합니다. 다음 예제는 Product 제네릭 타입을 정의하고 ProductExam 클래스에서 Product 객체와 Product 객체를 생성합니다. 그리고 Getter와 Setter를 호출하는 방법을 보여줍니다. * Product.java 123456789101112131415161718192021222324 public class Product { private T kind; private M..
-
[Java] 제네릭(Generic) - 제네릭 타입CSE/Java 2015. 9. 20. 09:47
제네릭은 여러 절로 구성되어 있습니다. Intro제네릭 타입멀티 타입 파라미터제네릭 메소드제한된 타입 파라미터 & 와일드카드 타입제네릭 타입의 상속과 구현 제네릭 타입(class, interface) 제네릭 타입은 타입을 파라미터로 가지는 클래스와 인터페이스를 말합니다. 제네릭 타입은 클래스 또는 인터페이스 이름 뒤에 "" 부호가 붙고, 사이에 타입 파라미터가 위치합니다. 아래 코드에서 타입 파라미터의 이름은 T 입니다. 1234public class className { ... } public interface interfaceName { ... } Colored by Color Scriptercs 타입 파라미터는 변수명과 동일한 규칙에 따라 작성할 수 있지만, 일반적으로 대문자 알파벳 한 글자로 표현..
-
[Java] 제네릭(Generic) - IntroCSE/Java 2015. 9. 20. 09:21
제네릭은 여러 절로 구성되어 있습니다. Intro제네릭 타입멀티 타입 파라미터제네릭 메소드제한된 타입 파라미터 & 와일드카드 타입제네릭 타입의 상속과 구현 Intro Java 5 부터 제네릭(Generic) 타입이 새로 추가되었는데, 제네릭 타입을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있게 되었습니다. 제네릭은 컬렉션, 람다식, 스트림, NIO에서 널리 사용되므로 확실히 이해해 두어야 합니다. API 도큐먼트를 보면 제네릭 표현이 많기 때문에 제네릭을 이해하지 못하면 API 도큐먼트를 제대로 이해할 수 없습니다. 제네릭은 클래스와 인터페이스, 그리고 메소드를 정의할 때 타입(type) 파라미터로 사용할 수 있도록 합니다. 타입 파라미터는 코드 작성 시 구체적인 타입..
-
[Java] 컬렉션 프레임워크 - 동기화, 병렬 처리CSE/Java 2015. 9. 20. 09:08
컬렉션 프레임 워크는 여러 절로 구성되어 있습니다. IntroList 컬렉션Set 컬렉션Map 컬렉션검색 기능을 강화시킨 컬렉션LIFO와 FIFO 컬렉션동기화 & 병렬처리를 위한 컬렉션 동기화된 컬렉션 컬렉션 프레임워크의 대부분의 클래스들은 싱글 스레드 환경에서 사용할 수 있도록 설계되었습니다. 그렇기 때문에 여러 스레드가 동시에 컬렉션에 접근한다면 의도하지 않게 요소가 변경될 수 있는 불안전한 상태가 됩니다. Vector와 Hashtable은 동기화된(synchronized) 메소드로 구성되어 있기 때문에 멀티 스레드 환경에서 안전하게 요소를 처리할 수 있지만, ArrayList, HashSet, HashMap은 동기화된 메소드로 구성되어 있지 않아 멀티 스레드 환경에서 안전하지 않습니다. 경우에 따라..
-
[Java] 컬렉션 프레임워크 - LIFO와 FIFO 컬렉션CSE/Java 2015. 9. 19. 16:21
컬렉션 프레임 워크는 여러 절로 구성되어 있습니다. IntroList 컬렉션Set 컬렉션Map 컬렉션검색 기능을 강화시킨 컬렉션LIFO와 FIFO 컬렉션동기화 & 병렬처리를 위한 컬렉션 후입선출(LIFO: Last In First Out)은 나중에 넣은 객체가 먼저 빠져나가는 자료구조를 말합니다. 반대로 선입선출(FIFO: First In First Out)은 먼저 넣은 객체가 먼저 빠져나가는 구조를 말합니다. 컬렉션 프레임워크에는 LIFO 자료구조를 제공하는 스택(Stack) 클래스와 FIFO 자료구조를 제공하는 큐(Queue) 인터페이스를 제공하고 있습니다. 스택(Stack)을 응용한 대표적인 예가 JVM 스택 메모리입니다. 스택 메모리에 저장된 변수는 나중에 저장된 것부터 제거됩니다. 큐(Queue..
-
[C Language] 이클립스 C/C++ 개발 환경 구축 !!CSE/C Language 2015. 9. 16. 16:29
윈도우에서 이클립스 IDE를 통해서 C / C++ 개발 환경을 구축해 보도록 하겠습니다! 이클립스를 통해 개발을 하는 이유는... 솔직히 Visual Studio 설치하기엔 너무 무겁고, 오래걸리고, 걍 깔끔해보이지만, 그래도 이클립스가 더 손에 익어서..? 아무튼. 1. 이클립스를 다운 받아서 압축해제 합니다. http://www.eclipse.org/ 에 접속하셔서 다운로드를 누르신 후, 아래와 같은 'Eclipse IDE for C/C++ Developers' 버전으로 다운받아주세요 !! * Ubuntu 이든 64 or 32 bit 이든 맞게 받으시길 바랍니다 ! 압축해제하시면 아래와 같이 구성되어 있을 겁니다 ! 2. 아래 사이트 진입 후, Installer를 다운받습니다 !! http://www..
-
[Java] 컬렉션 프레임워크 - 검색 기능을 강화시킨 컬렉션CSE/Java 2015. 9. 14. 16:10
컬렉션 프레임 워크는 여러 절로 구성되어 있습니다. IntroList 컬렉션Set 컬렉션Map 컬렉션검색 기능을 강화시킨 컬렉션LIFO와 FIFO 컬렉션동기화 & 병렬처리를 위한 컬렉션 5. 검색기능을 강화시킨 컬렉션 컬렉션 프레임워크는 검색 기능을 강화시킨 TreeSet과 TreeMap을 제공하고 있습니다. 이 컬렉션들은 이진 트리(binary tree)를 이용해서 계층적 구조(Tree 구조)를 가지면서 객체를 저장합니다. 5.1 TreeSet TreeSet은 이진 트리를 기반으로한 Set 컬렉션입니다. 하나의 노드는 노드 값인 value와 왼쪽과 오른쪽 자식 노드를 참조하기 위한 두 개의 변수로 구성됩니다. TreeSet에 객체를 저장하면 자동으로 정렬되는데 부모값과 비교해서 낮은 것은 왼쪽 노드에,..