본문 바로가기

CS23

[JAVA] JAVA I/O, 객체의 직렬화 1. JAVA I/O 1) 개요 - JAVA는 byte와 char 그리고 추가적으로 String 단위로 입력과 출력이 이루어진다. 단위 abstract class(최상위 클래스) 하위 클래스 byte InputStream, OutputStream FileInputStream, ObjectInputStream, FileOutputStream, ObjectOutputStream... char, String Reader, Writer FileReader, BufferedReader, FileWriter, PrintWriter... - 표준입/출력은 각각 키보드와 모니터로 대응되는 Method는 System.in과 System.out이다. 즉, 표준입력 : 표준출력 = 키보드 : 모니터 = System.in :.. 2021. 1. 18.
[JAVA] Exception 1. Exception(예외) 비정상종료를 야기하는 의도치 않은 문제 따라서 예외 처리로 실행문이 계속 실행되도록 처리해야한다. 1) Exception class 자바에서는 실행(Run Time)시 발생할 수 있는 오류를 에러(Error)와 예외(Exception) 두가지로 구분한다. Error 프로그램 코드에 의해서 수습될 수 없는 심각한 오류(해결불가) Error, RunTimeException class를 포함한 자손 클래스들이 이에 해당한다 예외가 발생하면 안되는 코드이기 때문에 개발자가 반드시 if문으로 체크했어야 하는 코드이다. 따라서 try-catch문을 이용하지 않는다. Exception 프로그램 코드에 의해서 수습될 수 있는 다소 약한 오류(해결가능) RunTimeException을 제외.. 2021. 1. 18.
[JAVA] Functional Interface, Stream, String, StringBuffer 1. Functional Interface(함수적 인터페이스) 1) 개요 - java.util.function - JDK 1.8부터 지원 - 모두 인터페이스이므로 람다식 이용 2) 종류 종류 params / return 비고 consumer O / X supplier X / O function O / O data type을 바꾸어 return하는데 사용 operator 연산해서 값을 return하는데 사용 predicate boolean return value // Function // T : param type, R : return type Function f = t->t.length(); // Operator // T : params & return type Operator o = (t,u) -> t.. 2021. 1. 14.
[JAVA] Collection API 0. API란 다양한 정의가 있겠지만 "프로그램이 제공하는 함수"정도로 넓게 생각하자 1. JAVA의 data 저장 방법 3가지 변수 배열 Collection API - 하나의 data - 기본형&참조형 - 여러 개의 data - 참조형 - 동일한 type만 저장가능(다형성 고려X) - 크기변경 불가 - Index를 통한 element 접근 - 배열과 관련된 method 없음(Arrays 제외) - 여러 개의 data - 참조형 변수 - 여러 type data 저장가능(generics) - 크기변경 가능 - method를 통한 element 접근 - 다양한 method 2. Collection API 계층구조 Set 계열 List 계열 Map 계열 - 순서 X - 중복저장 X - value만 저장 - 순.. 2021. 1. 14.
[JAVA] Anonymous class, Lambda Expression, Generics 1. Anonymous class(익명 클래스) - 말 그대로 이름 없는 class - Interface 사용 시 주로 익명 클래스가 사용됨 : 가독성 증가 Interface_name variable_name = new Interface_name(params...) { @Override // abstract method } 2. Lambda Expression(람다식) 1) 목적 - Method는 Class 안에 존재할 수 있고 JAVA의 최소 단위는 Class이다. - 따라서 Method를 만들기 위해 불필요한 Class 생성이 유발될 수 있다. - 하지만 람다식을 이용하면 Class를 표현하지 않고 Method만 만들 수 있다.(Method 즉, 기능에 더 집중할 수 있다.) - 이러한 형태의 프로그.. 2021. 1. 14.
[JAVA] Abstract, Interface 1. Abstract 1) 목적 : 다른 class간에 공통적으로 사용하는 기능 효율적으로 재사용하기 위해 2) 형태 : public abstract return_type method_name(); 3) abstract class 구성요소 - 일반 variable(instance varible) - 일반 method(instance method) - 생성자 - abstract method * 4가지 다 있어도 되고 없어도 된다. cf) abstract method를 포함하는 class는 abstract 선언을 해주어야 한다. 4) 특징 - 자식 class에서 반드시 abstract method를 override 해야한다. 이를 통해 자식 class에서 특정 method를 강제하면서 통일성과 일관성을 갖는.. 2021. 1. 12.
[JAVA] 상속, 다형성, 캡슐화 1. 상속 1) 특징 - 부모의 private변수, 생성자는 상속이 안됨 - 모든 class의 최상위 부모는 Object // extends Object는 생략되어 있음 - class가 생성될 때 상속이 있다면 최상위 부모부터 생성됨 // 부모의 변수를 자식이 상속받아 사용해야하기 때문 2) 생성자 호출 형태 // 다른 class에서 객체 생성 시 new class(); // 자식 class에서 부모생성자 호출 시 // 반드시 자식 생성자 첫 줄에 쓴다 super(); // 같은 class의 특정 생성자에서 다른 생성자 호출 this(); * overloading된 생성자들은 params로 구분되어 호출된다. 3) 활용 형태 - Object의 toString() 참조변수를 print할 때 자동으로 toS.. 2021. 1. 12.
[JAVA] 데이터의 메모리 할당 순서 1. 일반변수 2. 배열 3. 클래스 * main 함수는 프로그램 실행 시 JVM이 자동으로 첫번째 함수로 호출 * 순서정리 method area static 영역 load : main > method area class 정보 load : student.java, testStudent.java (class) > stack 영역 load : 변수 s > heap 영역 load : Student instance (new Student()) 2021. 1. 12.
[자료구조] 3. Graph : MST, 최단거리, Union-Find 0. Graph 노드들과 그 노드들을 연결한 간선에 대한 정보를 저장하는 자료구조 1. Terminology 1) vertex(정점), edge(간선) 2) degree : 한 정점에 간선으로 연결된 정점 개수 2-1) in-degree : 방향 그래프에서 한 정점으로 들어오는 간선 개수 2-2) out-degree : 방향 그래프에서 한 정점에서 나가는 간선 개수 3) Simple Path : 경로 내 중복되는 정점이 없는 경로 1) Ordered/unOrdered : 간선의 방향 유무 2) Weighted : 간선에 가중치 유무 3) Connected/Disconnected : 그래프 내 한 정점에 대해서 나머지 정점으로의 경로 존재 유무 4) Cycle/Acycle : 시작점과 도착점이 동일한 Si.. 2020. 12. 3.