본문 바로가기

JAVA

(21)
[Java] 8-2강 - 멀티스레드 2 (Multithread method) 4. Multithread Method 0) Thread State 1> NEW : thread를 시작하고 run하지 않은 상태 2> RUNNABLE : run이 준비된 상태 3> BLOCKED : 어떤 이유로 thread가 멈춰있는 상태 (다른 thread가 내가 사용할 resource를 사용하고 있을 때) 4> WAITING : 다른 thread가 notify() 혹은 notifyAll()로 깨워주기를 기다리는 상태 (wait() 혹은 join()으로 WAITING이 된다.) 5> TIMED_WAITING : 시간이 지나면 저절로 깨어나는 경우 (join()이나 sleep()으로 TIMED_WAITING이 된다.) 6> TERINATED : run()이후 thread가 사라지는 경우 1) sleep(..
[Java] 8-1강 - 멀티스레드 1 (Multithread) 0. Background 1) process OS는 process를 만듭니다. process : program을 실행하기 위한 자원(memory)을 분배 2) Thread process보다 작은 실행 흐름의 최소 단위이다. 1> process는 최소 하나의 thread가 필요합니다. (여러개의 thread가 할당될 수 있다.) 2> process는 여러 개의 thread가 할당될 수 있으며 이를 multi-threaded process라고 합니다. 3) Multitasking 하나의 OS가 여러 process를 실행할 수 있습니다. 4) Multithreading 하나의 process가 여러 thread를 만들고 실행 (process를 만드는 것보다 thread를 만드는 것이 가볍다.) 1> 장점 [1]..
[Java] 7-3강 - 네트워킹 with 자바 3 (TCP Socket Programming) cf> TCP, UDP 0) IP IP 위에 TCP 혹은 UDP가 있습니다. IP는 우체국과 같아서 address를 가지고 message를 어디로 전달할 지 알 수 있고 connection 관련 개념이 TCP와 UDP입니다. 1) TCP reliable data transfer : data loss 없이 잘 전달된다. 1> connection-oriented :먼저 connection을 만드는 과정이 필요 (1:1만 가능) 2> order : data를 받을 때 order가 보존된다. 3> reliablity : data를 항상 안정적으로 전달 받을 수 있다. 4> speed : 전달 속도가 느리다. 2) UDP (reliablity보다는) 빠른 communication을 원할 때 사용한다. multic..
[Java] 7-2강 - 네트워킹 with 자바 2 (HTML 파일 가져오는 법, jsoup) 3. Web에 접근 1) URL로 HTML 파일에서 content를 읽어오기 이전에 배운 파일 읽기와 유사합니다. 1> url = new URL(address); URL 클래스를 만듭니다. 2> input = new BufferedReader(new InputStreamReader(url.openStream())); [1] url.openstream은 InputStreamReader라는 class를 return합니다. [2] 결과적으로 BufferedReader object를 만듭니다. 3> while부분 [1] BufferedReader의 readline 메소드 : line by line으로 컨텐츠를 읽는다. 4> try-catch문 해당 리소스(웹주소)가 없을 수도 있어서 예외문을 사용합니다. 2) ..
[Java] 7-1강 - 네트워킹 with 자바 1(network 기본 개념, InetAddress, URL) 0. Background 1) Networking 구조 1> client-server 구조 1개 이상의 server가 있고 여러 client가 server에 접속하여 필요한 서비스를 제공받습니다. ex> mail, web server(HTTP), file server(FTP), application server' 2> Peer-to-Peer(P2P) server 없이 client끼리 연결 ex> bittorrent 2) IP address 1> unique IP address가 있어야 합니다. 2> IP address는 현재 32-bit integer입니다. 3> 그리고 읽기 쉽게 dotted decimal notation 형식으로 씁니다. (e.g.) 163.239.1.17) (각 숫자의 범위 0~25..
[Java] 6-4강 - Collection Framework 4 (Map) 6. Map 0) Map [1] key는 중복을 허용하지 않는다. (no duplicate keys) [2] key 하나는 최대 1개의 value를 가진다. (each key can map to at most one value) 1> Hierarchy of interfaces 2> Interface Map에 정의된 Method 3> Map.Entry Interface Map 내부의 interface (inner interface) - Map.Entry에 정의된 Method cf> Hashtable : synchronized (탐색 시 동시에 접근이 가능합니다.) HashMap : asynchronized 1) HashMap 1> HashMap 정의 [1] HashMap 정의 내부에 Node라는 inner..
[Java] 6-3강 - Collection Framework 3 (Set) 5. Set 0) Set [1] 원소간 중복을 허용하지 않는다. (no duplicate elements) [2] 원소간 순서가 없다. (no ordering of elements) 1> Hierarchy of interfaces 2> Interface Set에 정의된 Method (Interface Collection와 동일하다.) 1) HashSet 1> Method - Constructor load factor : (float의 형태) load factor를 넘어서면, capacity를 2배로 확장시킨다. 2> 다른 Method 3> AbstractCollection의 method - addAll, containsAll, retainAll, toArray(), toArray(T[] a), toStr..
[Java] 6-2강 - Collection Framework 2 (Iterator, Arrays, Comparable) 2. Iterator Collection에서 data를 읽어들이는 방법을 제공 1) Collection 내부 구조 iterator라는 메소드로 Collection을 Iterator로 만들 수 있습니다. 2) Method remove : 최근에 Iterator에서 return한 element를 제거 1> example 1 list는 List의 메소드만 사용이 가능합니다. 3) ListIterator 1> 특징 Iterator의 subclass (뒤로만 갈 수 있었던 Iterator와 달리) 앞뒤로 왔다갔다하는 것이 가능합니다. List interface를 implement한 class에만 사용 가능 2> Method 3. Arrays array와 관련된 기능들을 제공합니다. 1) array 관련 기능 1>..