본문 바로가기
✨ 서울대생이 면접 떨어지고 6개월간 삽질하며 정리한 'CS 정리 노트', 지금 무료로 풀립니다!

Programming Language56

[자바] 자바 입출력 - 스트림이란? 스트림은 가상 통로를 뜻하며 자바의 모든 입출력은 스트림을 통해 이루어진다. 입출력 기능을 사용하는 곳은 파일 디스크, 키보드, 모니터, 메모리 입출력, 네트워크 등이 있음 - 입력 스트림과 출력 스트림 입력 스트림: 어떤 대상으로부터 자료를 읽어 들일 때 사용 출력 스트림: 편집 화면에 사용자가 쓴 글을 파일에 저장할 때 사용 스트림은 단방향이기 때문에 입력과 출력이 동시에 이루어질 수는 없음. 종류 예시 입력 스트림 FileInputStream, FileReader, BufferedInputStream, BufferedReader 출력 스트림 FileOutputStream, FileWriter, BufferedOutputStream, BufferedWriter - 바이트 단위 스트림과.. 2021. 11. 4.
[자바] 예외 처리 - 프로그램의 오류 상황 두 가지 컴파일 오류(compile error): 프로그램 코드 자겅 중 실수로 발생하는 오류 실행 오류(runtime error): 실행 중인 프로그램이 의도하지 않은 동작을 하거나 프로그램이 중지되는 오류(=버그) - 실행 오류 두 가지 자바 가상 머신에서 발생하는 시스템 오류(error) ex) 사용 가능한 동적 메모리가 없거나 스택 메모리의 오버플로가 발생한 경우 시스템오류는 프로그램에서 제어할 수 없다. 예외(exception) ex) 프로그램에서 파일을 읽어 사용하려는데 파일이 없는 경우, 네트워크로 데이터를 전송하려는데 연결이 안된 경우, 배열 값을 출력하려는데 배열 요소가 없는 경우 예외는 프로그램에서 제어할 수 있다. - 예외 처리하기 try- catch문 try.. 2021. 11. 3.
[자바] 스트림 - 스트림 예시 // 스트림 생성 int[] arr = {1, 2, 3, 4, 5}; Arrays.stream(arr).forEach(n -> System.out.println(n)); - 스트림 연산 중간 연산 - filter(), map() filter()는 조건을 넣고 그 조건에 맞는 참인 경우만 추출하는 경우에 사용 sList.stream().filter(s->s.length() >= 5).forEach(s-> System.out.println(s)); map()은 특정조건에 해당하는 값으로 변환 시 사용 ex) 클래스가 가진 자료 중 이름만 출력하는 경우에 사용 customerList.stream().map(c-> c.getName()).forEach(s-> System.out.println(s.. 2021. 10. 27.
[자바] 람다식 활용 - 람다식으로 인터페이스 구현 람다식으로 인터페이스를 구현할 때 클래스를 따로 생성할 필요 없이 바로 메서드를 구현함. 람다식을 활용한 경우와 그렇지 않은 경우를 비교해보자. package first_project; public interface StringConcat { public void makeString(String s1, String s2); } 1. 람다식 사용하지 않고 클래스에서 인터페이스 구현 package first_project; public class StringConCatImpl implements StringConcat { @Override public void makeString(String s1, String s2) { System.out.println(s1 + ", "+s2.. 2021. 10. 27.
[자바] 제네릭 - 제네릭 프로그래밍이란? 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍 하는 것 - 제네릭 사용법 제네릭에서는 여러 참조 자료형을 사용해야 하는 부분에 Object가 아닌 하나의 문자로 표현함. ex) public class GenericPrinter 여기서 이 T를 자료형 매개변수라고 부르고 나중에 클래스를 사용할 때 이 T위치에 실제로 사용할 자료형을 지정. - 자료형 매개변수 T와 static static 변수나 메서드는 인스턴스 생성없이 클래스 이름으로 호출 가능함. static 변수는 인스턴스 변수 생성 이전에 생성. 또한 static 메서드에서는 인스턴스 변수를 사용할 수 없음. 그런데 T의 자료형이 정해지는 순간은 제네릭 클래스의 인스턴스가 생성되는 .. 2021. 10. 26.
[자바] 인터페이스 - (3) 활용하기 - 한 클래스가 여러 인터페이스를 구현 인터페이스는 구현 코드나 멤버 변수를 가지지 않기 때문에 여러 개를 동시에 구현할 수 있음. 두 인터페이스에 이름이 같은 메서드가 선언되었다고 해도 구현은 클래스에서 이루어지므로, 어떤 메서드를 호출해야 하는지 모호하지 않기 때문임. (* 상속은 한번에 여러 개 상속 받기 불가능) 예시 package first_project; public interface Buy { void buy(); } package first_project; public interface Sell { void sell(); } Customer 클래스는 Buy 인터페이스와 Sell 인터페이스를 모두 구현 package first_project; public class Customer imple.. 2021. 10. 26.