Java4 Java의 데이터 입출력 스트림 코딩 테스트 연습할 때를 제외하면 Java의 스트림을 이용하여 직접 입출력 코드를 작성하는 경우가 드물었던 것 같습니다. 그런만큼 Java의 스트림을 통한 데이터 입출력에 대해 리마인드하고 부족했던 부분이 있었다면 채워넣을 겸 정리하는 시간을 가져보려 합니다.입출력 스트림자바에서 데이터 입출력은 스트림을 통해서 이루어집니다. 스트림(stream)은 단방향으로 데이터가 흐르며 키보드, 파일, 프로그램 등 다양한 출발지로부터 입력되고 모니터, 파일, 프로그램 등 다양한 도착지로 출력됩니다.프로그램을 기준으로 데이터가 들어오는 것을 입력 스트림(InputStream), 데이터가 나가는 것을 출력 스트림(OutputStream)이라 합니다. 프로그램이 다른 프로그램과 데이터를 교환하기 위해서는 입력.. 2024. 4. 24. [오브젝트] 객체지향 프로그래밍 0. 객체지향 스터디를 통해 조영호님의 오브젝트를 읽고 있습니다. 2장 객체지향 프로그래밍에 대해서 정리하며 문장 하나하나가 모두 중요한 내용이었고 꼭꼭 씹어삽켜야 하는 내용들이었습니다. 본 게시글에서는 스터디를 위해 정리한 내용을 기록합니다. 해당하는 챕터는 2장 객체지향 프로그래밍입니다. 오브젝트를 읽기전에 개구리책에 대한 스터디를 진행했었기에 해당 책에서 나온 용어가 일부 등장할 수 있으나 특별한 부분은 아닙니다. 게시글에서 사용되는 그림 자료는 오브젝트에서 가져왔으며 문제가 될 시 삭제하겠습니다. 1. 객체지향 객체지향의 본질은 말 그대로 객체를 지향하는 것입니다. 이를 위해 우리는 다음과 같은 방식으로 객체지향을 바라봐야 합니다. 첫째, 어떤 클래스가 필요한지 고민하기 전에 어떤 객체들이 필요한.. 2023. 7. 26. 함수형 인터페이스와 람다 표현식 1. 함수형 인터페이스 함수형 인터페이스는 오직 하나의 추상 메서드만을 지정하는 인터페이스이다. 이 때, 디폴트 메서드, 스태틱 메서드의 포함 여부는 상관없다. 람다 표현식을 통해 함수형 인터페이스의 추상 메서드 구현을 전달할 수 있다. 그러므로 해당 표현식을 함수형 인터페이스의 인스턴스로 취급할 수 있다. @FunctionalInterface public interface Runnable { public abstract void run(); } @FunctionalInterface 애노테이션을 통해 함수형 인터페이스임을 컴파일러에 알려줄 수 있다. 만일 두 개 이상의 함수형 인터페이스를 선언한다면 컴파일 에러가 발생한다. 1.1 익명 클래스 자바는 클래스 선언과 인스턴스화를 동시에 수행할 수 있도록 익.. 2023. 6. 18. 문자열 StringBuilder 더하기 연산을 통해 새로운 문자열을 만들면 문자의 배열을 복사하면서, 새로운 문자열 객체가 생성된다. 길이가 N인 새로운 문자열을 만드는데 O(N)이 소요된다. StringBuilder는 새로운 문자열을 만들지 않고 내부 배열에서 직접 수정한다. 문자열의 길이가 너무 길어지면 배열 크기를 늘려주기 때문에 O(N)의 시간 복잡도를 가지나 이는 가끔 일어나는 작업이기 때문에 기대 시간 복잡도는 O(1)이 된다. 메서드 역할 시간 복잡도 StringBuilder.toString() 구성한 문자열을 String 형식으로 반환한다. O(N) StringBuilder.append(char c) 문자 c를 문자열 끝에 이어 붙인다. O(1) StringBuilder.length() 구성한 문.. 2023. 4. 20. 이전 1 다음