본문 바로가기

CS(Computer Science)/20) 자바28

자바를 자바 23 Background: processes and threads 컴퓨터를 키고 프로그램을 실행시키면 운영체제가 프로세스를 만들어준다. 이 프로세스가 프로그램을 돌리기 위한 자원을 분배하게 된다. 이때 중요한 것이 메모리로 프로그램 별로 메모리를 할당해주는 과정을 운영체제가 담당하게 된다. 그래서 작업관리자를 실행시키면 메모리를 프로그램별로 얼마나 할당해 주었는지 확인할 수 있다. 스레드 : 프로그램을 실행시키는 가장 작은 단위로 스케쥴러에 의해 독립적으로 관리된다. 각 프로세스 별로 적어도 하나의 스레드에서 여러개의 스레드를 가질 수 있다. 그래서 프로세스가 두 개이상의 스레드를 가지면 mulit-threaded process라고 부른다. 그림을 보다 싶이 하나의 프로세스를 보면 하나의 스레드에서 수십개의 .. 2020. 12. 30.
자바를 자바 22 Reading contents from an HTML file 우리는 데이터를 URL로 부터 읽어들일 수 있다. 이 과정은 파일로 부터 데이터를 읽어오는 것과 매우 유사하다. URL url = null; BufferedReader input = null; //특정 위치의 html파일을 읽어오기 String address = "https://icslsogang.github.io/courses/cse3040/hello.html"; String line = ""; try { url = new URL(address); input = new BufferedReader(new InputStreamReader(url.openStream())); while((line=input.readLine()) != null) {.. 2020. 12. 3.
자바를 자바 21 Background: Networking Architecture 네트워크 구조는 두개로 나뉘어 진다. Client-Server 한개의 서버에 여러개의 client가 접속하는 구조(대부분의 통신 방식) e.g) web server(HTTP), file server(FTP), application server Peer-to-Peer(P2P) 서버는 없고 client끼리 서로 통신하는 구조 e.g) bittorrent Background: IP address 독립적인 IP address가 장치별로 존재함. IP address는 32-bit로 구성(IPv4) 그래서 총 IP는 2^32=4,294,967,296개가 존재함. 이미 다 사용함 그래서 IPv6(128bit)를 사용하자고 나왔으나, 라우터들이 아직 IP.. 2020. 12. 3.
자바를 자바 20 (Collection Framework(5)) : HashMap, TreeMap 10. HashMap Map interface는 아래와 같이 구성된다. HashMap이라는 이름이 붙은 이유는 저장하는 방식이 Hashing이기 떄문이다. 그리고 탐색을 할때 빠른 속도를 보장한다. HashMap의 class정의는 아래와 같이 구성이 된다. public class HashMap extends AbstractMap implements Map, Cloneable, Serializable { transient Node[] table; ... // inner class가 따로 정의되어 있다. // Map.Entry를 구현한다. 여기에서 Key와 Value가 정의 된다. // 특이한 점은 key는 한 번 정의되면 바뀔 수가 없다. static class Node implements Map.Entr.. 2020. 12. 3.