목록웹프로그래밍 (48)
bdfgdfg
자바에서 입출력을 수행하기위해 두 대상을 연결하고 데이터를 전송할 수 있는 스트림이 필요하다. -> 이전챕터의 스트림과 다른 것. -> 여기서 말하는 스트림은 데이터를 운반하는데 사용되는 연결통로. -> 하나의 버퍼라고 보면 편하다 직렬화는 어떤 데이터 구조나 객체를 바이트 스트림으로 바꾸는 것을 의미. -> 반대로 스트림으로부터 데이터를 읽어 기존의 데이터 구조나 객체로 만드는 것을 역직렬화라고 한다. ObjectInputStream, ObjectOutputStream 직렬화(Write)에는 ObjectOutputStream을 사용하고 역직렬화(read)는 ObjectInputStream을 사용한다. -> 다만 두 스트림은 보조 스트림이므로 실제 데이터를 주고받는 스트림에 지정해주어야 한다. 다만 객체..
싱글톤 패턴이란 어느 클래스의 인스턴스가 단 하나만 생성되는 패턴을 의미. -> 사실 싱글톤은 이게 설명이 전부이지 않을까 생각. 싱글톤의 가장 간단한 구현 방식. class SingleTon { private static SingleTon instance = null; // 외부에서 생성을 하지못하도록 막아야한다. private SingleTon() {} public static SingleTon getInstance() { if(instance == null) instance = new SingleTon(); return instance; } } 다만 멀티쓰레드 환경을 고려한다면, 싱글톤 객체를 얻어오기 위한 getInstance메소드를 호출할 때, 여러 쓰레드가 동시에 접근하면서 여러개의 싱글톤 객..
스트림(Stream) 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메소드들을 정의해놓았다. -> 스트림을 이용하면 배열 혹은 컬렉션뿐만 아닌 파일에 저장된 데이터도 모든 같은 방식으로 다룰 수 있다. --> 즉 간결하고 가독성있는 처리가 가능. -> 또한 가장 큰 장점은 sql 질의문처럼 데이터를 처리할 수 있는 기능도 존재한다. 스트림의 특징은 다음과 같다. 1. 스트림은 데이터(요소)를 변경하지 않는다. 2. 스트림은 Iterator와 같은 일회용. (즉 최종연산을 수행할 시 다시는 해당 스트림을 쓰지못한다. -> 재생성해야함) 3. 스트림은 작업을 내부 반복으로 처리한다 4. 스트림은 최종 연산이 수행되기전까지는 중간 연산이 수행되지 않는다. public class Hello..
람다식(Lambda expression) 람다식은 메소드를 하나의 식으로 표현한 것, 즉 함수를 간략하면서 명확한 식으로 표현할 수 있게 해준다. -> 메소드를 람다식으로 표현할 시 메소드명과 반환값이 없으므로 람다식을 익명함수라고도 한다. public class Hello { public static void main(String[] args) { int[] array = new int[10]; Arrays.setAll(array, (i)->(int)(Math.random() * 10)); } } C/C++언어와 달리 전역함수 사용도 못하고, 클래스를 만들고 메소드를 작성할 필요 없이 위처럼 간단하게 람다를 통해 메소드를 넘겨줄 수 있다. ( (i)->(int)(Math.random * 10) ) 이 ..