ProgrammingLanguage/Java
-
자바(Java) 싱글턴 패턴(Singleton Pattern)ProgrammingLanguage/Java 2021. 1. 23. 12:28
*싱글턴 패턴 ->객체가 1개의 인스턴스만 가져야 하는 경우 사용하는 자바의 디자인 패턴 중 하나이다. ->장점 : 인스턴스가 1개만 생성되기 때문에 효율적인 메모리 관리가 가능하다. ->단점 : 동시에 해당 인스턴스를 공유하는 환경(특히, Multithread 환경)에서 동시성(Concurrency) 문제 고려로 인하여 프로그램의 유연성이 감소한다. ※이러한 동시성의 문제를 해결한 것을 Thread-safe하다 라고 한다. 여러가지 싱글턴 패턴(이른 초기화 방식, 게으른 초기화 방식...)이 존재하는데, 이 글에서는 이른 초기화 방식만 다룬다. *싱글턴 패턴 : 이른 초기화(Eager Initialization) ->이른 초기화는 static 예약어를 사용하여 정적 바인딩(Static binding)을..
-
자바(Java) BufferedReader 클래스ProgrammingLanguage/Java 2021. 1. 18. 23:53
자바의 BufferedReader 클래스를 사용하기 전에, 먼저 스트림(Stream)의 개념과, Scanner 클래스에 대해 먼저 간단히 이해 하는 것이 좋다. 잘 모른다면 아래 글을 참고하여 이해하도록 하자. sskl660.tistory.com/44 스트림(Stream)과 자바(Java)의 Scanner 클래스 *입출력 스트림(Stream) ->컴퓨터 공학에서 스트림은 연속적인 데이터의 흐름 혹은 데이터를 전송하는 소프트웨어 모듈을 말한다. 이름의 의미와 마찬가지로 스트림은 도착한 순서대로 데이터 sskl660.tistory.com *vs. Scanner ->BufferedReader 와 Scanner 클래스는 대표적인 Java의 문자열을 입력받는 클래스이다. 특히 알고리즘 문제 풀이시 대용량 데이터를..
-
스트림(Stream)과 자바(Java)의 Scanner 클래스ProgrammingLanguage/Java 2021. 1. 14. 21:22
*입출력 스트림(Stream) ->컴퓨터 공학에서 스트림은 연속적인 데이터의 흐름 혹은 데이터를 전송하는 소프트웨어 모듈을 말한다. 이름의 의미와 마찬가지로 스트림은 도착한 순서대로 데이터를 흘려 보낸다. ->스트림을 통해 흘러가는 데이터의 기본 단위는 바이트(Byte)이다. ->입력 스트림(Input Stream) : 입력 장치(마우스, 키보드, 네트워크...)와 프로그램이 연결되어, 입력된 데이터가 프로그램으로 순서대로 흘러간다. ->출력 스트림(Output Stream) : 프로그램과 출력 장치(모니터, 프린터, 네트워크...)가 연결되어, 출력 데이터가 출력 장치로 순서대로 흘러간다. ※위의 그림을 통해 스트림은 단방향이며, 선입선출(FIFO) 구조임을 알 수 있다. ->자바는 바이트 스트림과 문..
-
깊은 복사(Deep Copy)와 얕은 복사(Shallow Copy)ProgrammingLanguage/Java 2021. 1. 13. 23:15
깊은 복사와 얕은 복사를 이해하기 위해서는 값 복사와 주소 복사를 이해해두어야 한다. 잘 모른다면 아래 글을 참고하여 이해하도록 하자. sskl660.tistory.com/37?category=866784 메서드 Overloading과 매개변수 *변수의 중복 선언 ->변수의 경우는 데이터의 타입이 달라도 변수 이름이 동일한 경우를 허용하지 않는다. Ex) 다음과 같은 경우는 컴파일 에러가 발생한다. class Employee { String name; // age 변수가 in sskl660.tistory.com *얕은 복사(Shallow Copy) ->얕은 복사는 쉽게 말해 주소가 복사되는 것을 말한다. public class ShallowCopy { public static void main(Strin..