[Java] 바이트 기반 스트림 과 문자 기반 스트림
·
Language/Java
Stream이란? 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미한다. 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며, 중간 매개자 역할을 한다! 자바에서는 바이트 기반 스트림과 문자 기반 스트림 두개로 나뉜다. 그리고 바이트 기반 스트림과 문자 기반 스트림은 각각 스트림을 실제로 읽고 쓰는 기반 스트림과 기반스트림이 읽어온 데이터를 처리하는 보조스트림 으로 나뉜다. 보조스트림은 생성자로 기반스트림을 받아서 실제 데이터를 읽어온다. 바이트 기반 스트림 1Byte단위로 입출력을 한다. 입력에서는 InputStream 클래스, 출력에서는 OutputStream이 있다. 모든 바이트 기반 스트림은 InputStream과 OutputStream의 하위 클래스이다. 기반 스트림 ..
[Java] 자바의 바이트 기반 스트림 OutputStream / Single byte VS Byte Array 출력 비교
·
Language/Java
https://gogogohigher.tistory.com/7 이 포스트를 먼저 참고하면 좋다. 자바의 입출력은 모두 java.io패키지에서 관리한다. 그 중 바이트의 출력 스트림에 관한 모든 클래스의 부모 클래스는 OutputStream 클래스이다. public abstract class OutputStream extends Object implements Closeable, Flushable 이 외에도 OutputStream을 상속하는 클래스는 무지 많다..! 우리가 자바에서 출력할 때 사용하는 System.out도 OutputStream의 하위 클래스이다. System클래스에 가보면 out이 PrintStream형으로 선언되어 있는 것을 알 수 있다. OutputStream의 Method들 publ..
객체 지향 설계 5원칙(SOLID)
·
Backend/Spring
SOLID란? 로버트 마틴 이 객체 지향 프로그래밍 설계를 할때 지켜야 할 규칙을 정의한 것으로 SRP, OCP, LSP, DIP, ISP의 앞글자를 따 만들어진 것이다. 1. SRP 단일 책임 원칙 ( Single Responsibility Principle ) 한 클래스는 하나의 책임만 가져야 한다. Car 클래스에는 전진하기, 후진하기, 멈추기, 엔진오일 갈기, 바퀴 갈기 의 기능이 있다. 보통 차를 사용할때, 사용자는 전진하기, 후진하기, 멈추기 의 기능을 사용하고 정비사가 엔진 오일 갈기, 바퀴 갈기 와 같은 기능을 사용한다. SRP의 의미는 하나의 클래스는 하나의 actor를 담당해야 한다는 것이다. 어떤 클래스나 모듈을 변경하려는 이유를 단 하나의 이유만 가져야 한다는 뜻이다. 정비사의 기능..
[백준 1874번] 스택 수열 (메모리 초과 +StringBuilder) - java/자바
·
자료구조&알고리즘
문제 이해 1부터 n까지 오름차순으로 스택에 push할수 있다. 입력된 숫자가 스택에 있는 숫자 보다 클 경우 push를 해준다. 스택을 pop했을때 입력된 숫자와 pop된 숫자가 동일해야 한다. 동일하지 않거나 스택이 비어있는 경우, 실패이다. 풀이 import java.io.*; import java.util.Stack; public class Solution { void solution() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); Stack stack = new Stack(); StringBuil..