본문 바로가기

전체 글

(30)
스레드 thread 프로세스와 스레드 프로세스 : 실행중인 프로그램, 프로그램 하나가 실행되는 단위 스레드 : 하나의 프로세스 안에서 실질적인 작업 처리하는 하나의 단위 프로그램을 수행하는데 필요한 데이터, 메모리등의 자원과 스레드로 구성 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 스레드 둘 이상의 스레드를 가진 프로세스를 멀티스레드 프로세스라고 함 CPU가 아주 짧은 시간 동안 여러 작업 번갈 아 수행으로 동시 작업 처럼 보임 서버프로그래밍(서블릿)의 겨우 여러개의 스레드를 생성 사용자의 요청 일대일 대응 싱글스레드로 작성 시 프로세스 생성 비용이 많이 듬(시간, 메모리 공간등) 단점으로 여러 스레드가 같은 프로세스의 자원을 공유 함으로 동기화, 교착상태 등 고려 해야함 서블릿의 겨우 WAS(Web Appli..
스트림 stream 자바8부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자 배열이나 컬렉션(List, Set, Map)으로 원하는 값을 얻을 때 for문 과도한 사용을 방지하기 위해 나온 개념 스트림은 선언, 가공, 반환 세 부분으로 구성 선언 : 스트림 인스턴스 생성, 배열, 컬렉션(list, set, map) 등을 스트림 형태로 만들기 가공 : 스트림을 필요한 형태로 가공, 필터링, 매핑등 중간 작업 반환 : 가공한 값을 원하는 형태로 가져오기 장점 사용하기 편함 코드가 간결해짐 가독성 높아짐 (for문으로 도배 된 코드를 보라~~) 단점 디버그 힘듬(한번에 수행되기 때문) 재활용 불가능(스트림은 사용후 close) 참고사이트 : https://wakestand.tistory...
람다 lambda 자바 8부터 지원하는 함수 구현과 호출 만으로 프로그래밍 하는 함수형 프로그래밍 방식 지원 이름이 없는 익명 함수 함수적 인터페이스로 구현 Kotlin, Scala 같은 언어도 객체지향 + 함수형 언어 람다식 형식 타입 생략 가능 매개변수가 한개라면 괄호도 생략 가능 매개변수가 없는 경우는 괄호 생략 불가 실행문이 한개라면 중괄호도 생략 가능 (타입 매개변수...) -> { 실행문 .. } () -> {}package chapter15; public class LambdaFunctionEx { public static void main(String[] args) { // 람다식 InterfaceEx ie = (int x, int y) -> x+y; System.out.println(ie.sum(1, 2)..