분류 전체보기
Throwable, Exception Class
https://codedragon.tistory.com/4447#:~:text=%C2%B7%20Throwable%20%ED%81%B4%EB%9E%98%EC%8A%A4%EB%8A%94%20%EB%AA%A8%EB%93%A0%20%EC%98%88%EC%99%B8,%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9D%98%20%EB%B6%80%EB%AA%A8%20%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9E%85%EB%8B%88%EB%8B%A4.&text=RuntimeException%20%ED%81%B4%EB%9E%98%EC%8A%A4%EB%A5%BC%20%EC%83%81%EC%86%8D%EB%B0%9B%EB%8A%94,%EC%98%88%EC%99%B8%EB%93%A4%EB%A1%9C%2..
Primitive Wrapper Class
자바는 모든 기본 타입은 값을 갖는 객체를 생성할 수 있음 래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없다. 만약 값을 변경하고 싶다면 새로운 포장 객체를 만들어야 한다. 자바에서 Primitive 타입을 객체화 하기 위한 rapper 클래스가 있다. 객체로 만들어 null을 넣거나, 메소드를 사용할 수 있고, toString() 메소드를 사용해 String 타입으로 바로 변환할 수 있음. List등의 컬렉션에 참조형 타입의 객체를 넣기 위해서 Wrapper 클래스로 한번 감싼것. Autoboxing : Primitive를 Wrapper Class의 인스턴스로 변환 Autounboxing : 그 반대의 과정 Integer num = 17; // 자동 박싱 int n = num; //자..
리눅스 select, poll, epoll
알아보기 전에 꼭 알야아 할 키워드들이 있다. File Desciptor : 리눅스 혹은 유닉스 계열의 시스템에서 프로세스가 파일을 다룰 때 사용하는 개념. 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값. 프로세스에서 열린 파일의 목록을 관리하는 테이블의 인덱스. 리눅스(유닉스) 에서는 모든것을 파일로 취급한다.(파일, 소켓 등) 각각의 프로세스는 File desciptors의 테이블을 가지고 있다. IO multiplexing : 하나의 통신 채널을 통해서 둘 이상의 데이터를 전송하는 기술, 물리적 장치의 효율성을 높이기 위해, 최소한의 물리적 요소만을 이용하여, 최대한의 데이터를 전달하기 위해 사용되는 기술. 멀티플렉싱이 필요한 이유는, 각 파일을 처리할 때 각각의 io통로를 통로를 만들어..
Java Collection map Interface
Java map collection에 대해서 알아보자 java docs, 코드레벨 까지 상세히 알아볼 예정이다. 아래와 같은 상속, 구현 구조를 가지고 있다. Map SortedMap NavigableMap TreeMap Hashtable HashMap LinkedHashMap Map 맵은 중복된 키를 가질 수 없다. 각각의 키는 하나의 밸류에 매핑된다. 이러한 인터페이스는 Dictionary 추상클래스를 대체한다. * An object that maps keys to values. A map cannot contain duplicate keys; * each key can map to at most one value. * * This interface takes the place of the Dicti..
java.util.collections 총정리 List편
저번의 queue에 이어 list에 대해서도 알아보자. (javadoc, 구현 코드를 중심 분석해볼 예정) Collection List AbstactionCollection AbstractList ArrayList AbstractSequentialList LinkedList Vector Stack List sequence라고도 알려진 순서가 있는 collection이다. 각각의 원소가 어디에 있는지 알 수 있다. 정수인 인덱스를 통해, 원소에 접근할 수 있고, 검색할 수 있다. Set과는 다르게, 일반적으로 중복을 허용한다. null인 원소를 허용한다. public interface List extends Collection * An ordered collection (also known as a seq..
java.util.collections 총정리 Queue편
저번의 set에 이어 queue에 대해서도 알아보자. javadoc, 직접 코드를 확인해보면서 분석해보자. 아래와 같은 상속, 구현 구조를 띄고 있다. Collection Queue Deque ArrayDeque AbstractQeue PrioirtyQueue Queue public interface Queue extends Collection 위와 같이 Collection을 확장하고 있다. javadocs에 기술된 내용을 의역해보면 아래와 같다 1.5에서 소개됨. 처리하기 전에 elements들을 담아두기 위해 설계된 collection이다. 기본적인 collection의 연산 외에 추가적인 insertion, extraction, inspection 연산을 제공한다. 각각의 메소드는 연산에 따라 두 ..
Netty란?
Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server. 2009년 Ryan Dahl은 수천개의 동시 연결을 처리할 수 있는 Apache Http Server의 제한된 성능으로 인해 Node.js를 발명. JS Engine + Event Loop, I/O를 결합함. 완전 새로운 개념은 아님. 이미 자바에 1.4 NIO가 있었음. Netty는 이를 ..
컨텍스트 스위칭시 일어나는일
P1이 실행중이고 P2가 준비상태임. 일부 중단이 발생하면 컨텍스트를 저장한 후 프로세스 P1을 실행 중에서 준비 상태로 전환하고 P2를 준비에서 실행중 상태로 전환해야함 언제 발생? 1. 인터럽트 : CPU는 디스크에서 데이터를 읽을 것을 요청하고, 인터럽트가 있는 경우 컨텍스트 스위칭은 인터럽트를 처리하는데 더 적은 시간이 필요 2. 멀티태스킹 : 다른 프로세스가 실행될 수 있도록 프로세스가 CPU에서 전환될 수 있도록 하는 멀티태스킹의 특성 3. 커널 / 사용자 스위치 : PCB : 운영제체에서 모든 데이터와 관련된 정보를 프로세스에 저장하는데 사용되는 데이터 구조, 프로세스가 생성되면 프로세스의 업데이트 정보, 프로세스의 정보 전환, PCB의 프로세스 종료 등이 있음. 1. 실행 상태에 있는 프로..