목록전체 글 (214)
열심히 끝까지
스트림(Stream) - 단 방향 - FIFO 구조 갖고있음 - 출력단위에 따라 바이트 기반과 문자단위로 분류 >출력 단위 : 1byte -> 바이트 기반 스트림 문자 -> 문자 기반 스트림 46-1 ) 문자 기반 스트림 : 16bit의 문자나 문자열을 읽고 쓰는 스트림 [1] 문자 기반 스트림의 활용 : 자바에서 사용하는 char형 변수는 2byte이므로 바이트 기반 스트림은 불편하므로, 문자 단위로 입출력을 다루는 문자 기반 스트림을 제공 Reader Writer int read() void write(int c) int read(char[] cbuf) void write(char[] cbuf) abstract int read(char[] cbuf, int off, int len) abstract v..
45-1 ) IO와 스트림(Stream) 1) IO? : Input(입력), Output(출력) 입력 : 프로그램에 데이터가 들어오는 것 출력 : 프로그램에 데이터가 나가는 것 2) 스트림? : 데이터의 흐름 : 흐름이 정해지면 그 방향으로 간다 키보드, 파일[입력스트림] ---> 프로그램 ---> 모니터, 파일[출력스트림] 스트림의 특징 - 단 방향이다. - FIFO(First In First Out) 구조를 갖고 있다. - 출력단위에 따라 바이트 기반과 문자단위로 분류된다. > 출력 단위 1byte -> 바이트 기반 스트림 문자 -> 문자 기반 스트림 45-2 ) 바이트 기반 스트림 바이트 기반 스트림? : 바이트 단위로 데이터를 입출력하는 스트림 [1] 바이트 기반 스트림의 활용 InputStrea..
스레드 : 하나의 프로세스 안에서 두 가지 이상의 일을 하도록 하는 것 - 프로세스(Process) : 실행 중인 프로그램 - 스레드(Thread) : 프로세스에서 작업을 수행하는 것 - 멀티 스레드 프로세스(Multi-Thread Process) : 두 가지 이상의 작업을 하는 프로세스 [스레드 생성 방법] - 자바 스레드로 작동할 작업이 무엇인지 코드로 작성 1) Thread 클래스 상속 2) Runnable 인터페이스 구현 - 스레드 코드가 실행할 수 있도록 JVM한테 요청 1) 인스턴스 생성 후 start() 호출 2) 인스턴스 생성 후 Thread() 매개변수 생성자에 인자값 전달, start() 호출 1) Thread 클래스 상속 class T1 extends Thread{ public voi..
스레드 : 하나의 프로세스 안에서 두 가지 이상의 일을 하도록 하는 것 - 프로세스(Process) : 실행 중인 프로그램 - 스레드(Thread) : 프로세스에서 작업을 수행하는 것 - 멀티 스레드 프로세스(Multi-Thread Process) : 두 가지 이상의 작업을 하는 프로세스 [스레드 생성 방법] - 자바 스레드로 작동할 작업이 무엇인지 코드로 작성 1) Thread 클래스 상속 2) Runnable 인터페이스 구현 - 스레드 코드가 실행할 수 있도록 JVM한테 요청 1) 인스턴스 생성 후 start() 호출 2) 인스턴스 생성 후 Thread() 매개변수 생성자에 인자값 전달, start() 호출 1) Thread 클래스 상속 class T1 extends Thread{ public voi..
42-1 ) 스레드의 정의 스레드란? : 하나의 프로세스 안에서 두 가지 이상의 일을 하도록 하는 것 - 프로세스(Process) : 실행중인 프로그램 - 스래드(Thread) : 프로세스에서 작업을 수행하는 것 - 멀티 스레드 프로세스(Multi-Thread Process) : 두 가지 이상의 작업을 하는 프로세스 [프로세스가 실행되는 방식] 1. 시간 분할 방식 : 모든 프로세스에게 동일한 시간을 할당하고 골고루 실행되는 방식 2. 선점형 방식 : 각각의 프로세스에게 우선 순위를 부여하고 우선순위가 높은 순으로 실행되는 방식 42-2 ) 스레드의 생성 [JVM이 스레드 처리 시 하는 일] => 스레드 스케줄링 - 스레드가 몇 개 존재하는지 - 스레드가 실행되는 프로그램 코드의 메모리 위치가 어디인지 ..
알고리즘 : 문제를 해결하기 위한 절차적 해결 과정 정렬 알고리즘 : 데이터를 순서대로 나열하기 위한 절차적인 과정 정렬 알고리즘의 종류 1. 선택 정렬(Selection Sort) 2. 삽입 정렬(Insertion Sort) 3. 버블 정렬(Bubble Sort) 41-1 ) 선택 정렬 : 최소값 혹은 최대값을 선택해서 가장 앞에다가 위치하여 선택할 위치를 이동하며 정렬하는 방법 장점 : 구현하기 쉽다. 단점 : 다른 정렬에 비해 시간이 오래 걸린다. 기본 로직 1) 정렬되지 않는 인덱스의 맨 앞에서부터 이를 포함한 그 이후의 값 중 가장 작은 값을 찾아간다. 2) 가장 작은 값을 찾으면 그 값을 현재 인덱스의 값과 바꿔준다. ar[min] ar[i] 3) 다음 인덱스로 이동하여 위 과정을 반복한다. ..
HashMap? : key와 Value값으로 데이터를 저장하는 형태 특징 - Map 인터페이스의 한 종류 - Map의 모든 속성을 갖고 있으며 저장 방식 동일 - 해싱(Hashing)이라는 검색 알고리즘 사용 - key의 중복은 허용하지 않으나 value의 중복은 허용 40-1 ) HashMap을 사용한 실습 고객관리 프로그램 HashMap을 활용하여, 사용자의 이름과 전화번호를 저장하는 전화번호부를 만들어보자 1. 생성 : HashMap 변수명 = new HashMap(); 2. 삽입 : 변수명.put(key, value 3. 가져오기 : 변수명.get(key) 4. key 존재 확인 : 변수명.containsKey(key) PhoneBookMain -----------------------------..
컬렉션 프레임웍(Collection Framework)이란? : 데이터를 효율적으로 다루기 위한 클래스들의 집합 - 자료구조(Data Structure) : 자료들을 저장할 때, 효율적인 구조로 저장하는 것(데이터의 구조) - 컬렉션 프레임워크 : 자바에서 제공하는 자료구조 - Set 인터페이스 : 집합, 중복된 데이터를 갖지 않으며 저장 순서를 유지하지 않은 자료구조 -> 대표클래스 : HashSet, TreeSet - List 인터페이스 : 데이터를 일렬로 늘어놓은 구조, 허용하고 저장 순서를 유지 -> 대표클래스 : ArrayList, LinkedList - Queue 인터페이스 : 선입선출의 구조, front에선 삭제 rear에선 삽입 발생 -> 대표클래스 : ArrayList, LinkedLis..