Language/Summary

Language/Summary

I/O

- Input과 Output은 JVM기준으로 실행된다. - java.io 패키지에는 Byte 기반의 데이터를 처리하기위한 Stream(InputStream, OutputStream), char기반의 데이터를 처리하기 위한 Reader, Writer 클래스가 존재한다. - JDK 1.4 부터는 NIO의 등장으로 Buffer와 Channel 기반으로 데이터를 처리하기 시작했다. 기존 방식보다 성능이 좋다. ㆍFile - File 클래스의 객체는 파일, 파일의 경로를 포함할 수 있는 클래스이다. - java7 에서 NIO2가 도입됨에 따라 java.nio.file 패키지의 Files 클래스에서 File 클래스의 메소드들을 대체하여 사용. File은 객체를 생성하여 처리해야하지만, Files 클래스는 모든 메소..

Language/Summary

Thread

ㆍThread - JVM이 시작되면 자바 프로세스가 시작이 됨. 이 프로세스 안에는 적어도 하나 이상의 쓰레드가 수행된다. - 프로세스끼리는 공유되는 자원 없이 각각 따로 메모리를 할당해주어야한다. 즉, 많은 리소스가 필요하지만 쓰레드는 상대적으로 적은 리소스가 필요하다. 따라서, 쓰레드를 '경량 프로세스'라고도 부른다. - 쓰레드를 생성하는 방법에는 크게 Runnable 인터페이스를 구현하는 것과, 이 인터페이스를 구현한 클래스인 Thread 클래스를 상속받는 두가지 방법이 있다. 이들은 모두 java.lang 패키지에 있다. - Runnable 인터페이스나 Thread 클래스를 상속받은 클래스는 run() 메소드를 구현하여 쓰레드 시작 시 수행할 작업을 지정해주어야 한다. 쓰레드의 start() 메소..

Language/Summary

Data Structure#3 - Map, Properties

ㆍMap - List, Set, Queue는 Collection 인터페이스를 구현하지만, Map은 Collection 인터페이스를 구현하지 않는다. - Set의 자료구조는 키(Key), 값(Value)으로 이루어져 있으며, Key의 중복을 허용하지 않는다.(값이 중복되는 것은 전혀 상관없다.) Map 인터페이스의 메소드 put(K Key, V value) : 키, 값이 쌍을 이루는 데이터를 저장. putAll(Map

Language/Summary

Data Structure#2 - Set, Linked List

ㆍSet - Collection 인터페이스를 확장하는 Set은 어떤 값이 존재하는지, 아닌지 여부를 따질때 유용하다. - Set의 자료구조는 기본적으로 순서를 따지지 않으며 중복을 허용하지 않는다. HashSet : 순서가 필요없는 데이터를 해시 테이블에 저장한다. 별도의 정렬 작업이 없으며, Set 인터페이스를 구현한 클래스 중 가장 성능이 좋다. TreeSet: 저장한 데이터의 값에 따라 정렬된다. red-black이라는 트리 타입으로 값이 저장되며, HashSet보다 약간 느리다. LinkedHashSet: 연결된 목록 타입으로 구현된 해시 테이블에 데이터를 저장한다. 저장된 순서에 따라 값이 정렬된다. HashSet, TreeSet 보다 더 느리다. ㆍHashSet - Object -> Abstr..

Language/Summary

Data Structure#1 - ArrayList

ㆍ자바의 자료구조 - 자바에서의 데이터를 담는 자료 구조를 크게 나누어보면 이렇다. 순서가 있는 목록(List) 형 순서가 중요하지 않은 셋(Set) 형 먼저 들어온 것이 먼저 나가는 큐(Queue) 형 키-값(key-value)로 저장되는 맵(Map) 형 - List, Set, Queue는 'Collection' 인터페이스를 확장하고 있다. - Collection 인터페이스는 Iterable라는 인터페이스를 확장했다. (Iterable 인터페이스를 사용하여 데이터를 순차적으로 가져올 수 있다) - Collection 인터페이스에 선언된 주요 메소드 목록은 다음 오라클 공식문서에서 확인하자. https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 d..

Language/Summary

Generic

ㆍ제네릭 - 타입 형 변환에 있어서 야기될 수 있는 문제를 사전에 차단하기 위해 만들어짐 (특정 타입만을 리턴할경우 확장성이 떨어지고 Object로 반환할 경우 일일이 캐스팅을 해줘야함) - 제네릭 클래스를 선언 할 때 클래스명 뒤에 와 같은 형태로 선언 (public class Sample) - 이후 제네릭 클래스의 객체를 생성하거나 리스트와 같은 자료형을 만들 때 안에 자료형을 지정해줌 (Sample sample = new Sample(); List list = new ArrayList();) ==> 객체 생성 시 명시적으로 타입을 지정해주기때문에 일일이 캐스팅을 할 필요가 없음 - 일반적으로 꺾쇠 안에는 기본 규칙이 존재함 (E: 요소(Element, Collection에서 주로 사용) ) K: 키..

KAispread
'Language/Summary' 카테고리의 글 목록