Stream 이란? 연속된 정보를 처리할 때 사용된다. 배열에서는 스트림 사용 불가, 컬렉션에서만 사용가능 스트림 생성 : 컬렉션 목록들을 스트림 객체로 변환해준다. (stream 메소드도 Collection 인터페이스에 선언되어있음) 중개 연산 : 생성된 스트림 객체를 어떻게 처리해야 할 지 명시해줘야된다. (아무런 결과도 리턴받지 못하기 때문에 종단연산을 만들어줘야된다.) , 중개연산은 없어도 상관 X 종단 연산 : 중개연산에서 작업을 통해 결과를 리턴해 준다. 자주 사용되는 Stream 연산자 종류(map, filter, forEach) forEach() stream에서 사용하는 반복문 이라고 생각하면된다. public class StudentForEachSample { public static v..
전체 글
안녕하세요;singleton 패턴이란? 인스턴스 생성 패턴 중 하나로 인스턴스로 한 번 생성하고 인스턴스의 내용을 여러 메서드에서 공유하여 사용할 수 있는 패턴이다. public class Configuration { private static Configuration configuration; private Configuration() { } public static Configuration getInstance() { if (null == configuration) { configuration = new Configuration(); } return configuration; } } //출처 : codelatte singleton 패턴은 new 키워드로 인스턴스를 생성하지 못하게 함과 동시에 인스턴스를 생성할 ..
Garbeage Collection (GC 또는 가비지 컬렉션) GC는 JVM 안 → 런타임 데이터 영역 안 → Heap 영역 안에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역을 주기적으로 삭제하는 프로세스를 말한다. C/C++는 메모리를 개발자 직접 할당하거나 해제 하기때문에 매우 불편하다. 반면 JAVA는 JVM안에 탑재되어있는 가비지컬렉션이 자동으로 메모리를 관리해주기 때문에 개발자가 신경 쓰지 않아도 되는 장점이 있다. 그래도 단점은 존재한다. 개발자가 메모리가 언제 해제되는지 알 수 없다. 가비지 컬렉션이 동작하는 동안은 가비지 컬렉션 안에 스레드 제외 모든 스레드가 동작을 멈추기 때문에 오버헤드 문제가 발생할 수 있다. GC 대상이 되는 객체들 Heap Area는 실질적으로 ..
JVM 탄생 계기 일반적으로 개발자가 프로그램을 만듦 → 프로그램은 운영체제를 통하여 해석되어 작동함 아쉽게도 운영체제는 이 세상 단 하나만 존재하지 않음 매우 다양함 (ex 윈도우 맥 리눅스) 그렇기에 개발자가 하나의 프로그램을 만들면 각각 다른 운영체제 환경에 맞게끔 프로그램을 고치거나 만들어야 함 비효율적이라고 생각하였고 그렇다면 프로그램을 한 번만 만들면 모든 운영체제 환경에서 동작할 수 있게 만들면 되지 않을까? → JVM 탄생 계기 위 그림과 같이 JVM은 컴퓨터 운영체제 위에 존재한다. 그래서 JAVA로 프로그램을 만들어서 JVM으로 보내면 JVM이 바이트 코드로 변환해주어 각각 다른 운영체제 환경에 맞게 변환해 준다. “Write once. run anywhere” 한 번 작성하면 어디서든..