old posting/Java

    [Java] 쓰레드(Thread)와 Thread Method 그리고 java.io

    쓰레드(Thread) : 동일 프로세스 내에 "독립"적인 다중 수행 프로그램 단위 * 쓰레드(Thread) 사용 목적 : 병행성 증진, 처리율 향상, 응답속도 향상 목적 자바에서 쓰레드를 만들어서 사용하는 방법 1. Thread 클래스를 상속받는 클래스를 정의 2. 정의한 클래스에서 run() 메소드를 override 해 쓰레드에서 할 일을 구현한다. 3. Thread 클래스의 인스턴스 생성 ex) Thread th1 = new Thread(test); 4. 생성된 인스턴스에서 start() 메소드 호출 * Runnable 인터페이스는 run() 가상메소드 하나만 가지고 있는 인터페이스이기 때문에 Lambda-expression으로도 구현 가능하다. Thread Method * Thread.run() :..

    [Java] 시간복잡도와 공간복잡도 그리고 내부클래스, 중첩클래스, 익명클래스

    알고리즘의 성능, 프로그램의 성능을 가늠하는 대표적인 두가지 척도 1. 시간복잡도(Time Complexity) : 얼마나 시간이 많이 걸리는지 2. 공간복잡도(Space Complexity) : 얼마나 많은 메모리를 소모하는지 #----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 내부 클래스(Inner Class) 1. 멤버 내부 클래스(Member inner class) : 다른 클래스 내부에서 선언된 클래스 * 멤버 내부 클래스의 인..

    [Java] Set과 Map 그리고 iterator(반복자)

    [Java] Set과 Map 그리고 iterator(반복자)

    * Set의 특징 1. 자료의 중복 저장이 허용되지 않는다. 2. 저장 순서가 유지되지 않는다. (인덱스가 없다.) * HashSet의 특징 : 매우 빠른 검색 속도 * HashXXX는 "검색 속도 향상"을 쓰는 자료구조이다. * TreeSet의 특징 : 데이터가 정렬된 상태로 저장(오름차순, 내림차순) * TreeXXX는 "정렬"에 특화된 자료구조이다. Set Method * set.add() : 데이터 저장 * set.size() : Set의 크기 * set에서 데이터 검색 : set은 index가 없기 때문에 get() 메소드를 제공하지 않는다. 따라서 iterator(반복자)를 사용해야 한다. * set에서 순서없이 값만 출력할 때는 enhanced-for를 사용하면 된다. * set.remove..

    [Java] Generic 클래스와 Collection 그리고 List

    [Java] Generic 클래스와 Collection 그리고 List

    Generic 클래스 : 클래스의 멤버변수나 혹은 메소드의 리턴 "타입", 매개변수등의 "타입"을 지정하지 않고 generic(일반적으로)하게 정의하는 클래스 * 동작은 같으나, 데이터 타입만 다른 경우 Generic으로 설계함으로 코드 생산성 향상 * Generic 클래스에서 사용되는 타입은 기본 자료형(primitive type)은 사용될 수 없고, Object타입의 자료형들만 사용할 수 있다. * List 특징(ArrayList와 LinkedList의 공통점) 1. 중복 저장 허용 2. 저장 순서 유지(인덱스 존재) * ArrayList 1. 저장 용량을 늘리는데 많은 시간 소요 - 단점 2. 데이터를 삭제하는데 많은 연산 - 단점 3. 데이터 참조가 매우 빠름 - 장점 * LinkedList 1...