자바 191

자바 람다식 java 기본 문법과 함수적 인터페이스

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅부터는 람다식에 대해 공부하겠습니다. 자바8로 바뀌면서부터 함수적 프로그래밍을 위해서 람다식을 지원했습니다.따라서 코드 패턴이 많이 달라졌는데요.람다식을 함수지향 언어에 가깝고 익명 함수 생성을 위한 식입니다.자바 코드가 간결해지고, 컬렉션의 요소 필터링 or 매핑해서 원하는 결과 집계를 쉽게 할 수 있어서자바에서 람다식을 수용했습니다. 예제를 보겠습니다.Runnable runnable = new Runnable() { public void run() { ... }} ;이러한 익명 구현 객체를 람디식을 사용하면==> ..

자바 2017.03.19

자바 제네릭Java generic - <T extends 최상위타입> 제한된 파라미터 타입 / 와일드 카드 타입 / 제네릭 타입 상속

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 지난 포스팅에 이어 제네릭에 대해 공부하겠습니다.지난 포스팅이 궁금하시다면 아래 링크를 클릭하시면 됩니다~2017/03/18 - [자바] - Java generic 자바 제네릭 - 제네릭 타입 class 와 interface / 멀티타입 파라미터 class, interface / 메소드 R method( T t) 타입 파라미터에 지정되는 구체적인 타입을 종종 제한할 필요가 있는데요.예를 들어서 숫자를 연산하는 제네릭 메소드는 매개값으로 Number 타입이나하위 클래스 타입의 인스턴스(Byte, Short, Integer, Lon..

자바 2017.03.18

자바 제네릭Java generic - 제네릭 타입 class<T> 와 interface<T> / 멀티타입 파라미터 class<K,V>, interface<K,V> / 메소드 <T, R> R method( T t)

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 자바 제네릭에 대해 공부하겠습니다. 먼저 제네릭을 사용하는 이유는 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있도록 하기 위해서 입니다. 제네릭을 사용한 코드가 사용하지 않은 코드보다 좋은 점이 있는데요. => 컴파일 시에 강한 타입 체크를 할 수 있고, 타입 변환(Casting)을 제거합니다.제네릭을 사용하지 않은 코드의 경우 불필요한 타입 변환을 하므로 프로그램 성능에 좋지 않은 영향을 미칩니다.ex)List list = new ArrayList();list.add("tistory");..

자바 2017.03.18

JAVA 자바 ThreadPool 자바 스레드 풀 : 콜백 방식 작업 완료 통보 CallBack

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 콜백이란 => 애플리케이션이 스레드에게 작업 처리 요청 후 스레드가 요청받은 작업을 완료하면특정한 메소드를 자동 실행하는 기법을 말합니다.이 때에 자동으로 실행되는 메소드를 콜백 메소드라고 하는 것입니다.블로킹 방식과 콜백 방식 비교 블로킹방식은 작업 처리 요청 후 작업이 완료될 때까지 블로킹 됨. 콜백 방식은 작업 처리 요청 후 결과를 기다릴 필요없이 다른 기능 수행 가능.=> 작업 처리가 왼료되면 콜백 메서드가 실행되어 자동적으로 결과를 알 수있기 때문입니다. ExecutorService에서는 별도로 콜백을 위한 메소드를 제..

자바 2017.03.17

자바 스레드풀 ThreadPool : 블로킹 방식 작업 완료 통보 => 작업 처리 결과 외부에 저장, 작업 완료 순 통보

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅은 지난 포스팅과 이어집니다.http://altongmon.tistory.com/237 외부 객체에 작업 처리 결과 저장 : 스레드가 작업한 결과를 외부 객체에 저장할 경우도 생기는데요.ex) 작업 처리를 완료 후 외부 Result 객체에 작업 결과를 저장하면애플리케이션이 Result 객체를 사용해서 어떤 작업을 진행할 수 있음.=> Result 객체는 공유 객체가 되고, 두 개 이상의 스레드 작업을 취할 목적. 이러한 작업을 위해서 ExecutorService의 submit(Runnable r, V Result) 를..

자바 2017.03.17

자바 스레드풀 ThreadPool : 블로킹 방식 작업 완료 통보 => 리턴값이 없는 작업 완료 통보 및 리턴값이 있는 작업 완료 통보

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 블로킹 방식 작업 완료 통보 : Future 객체는 작업 완료 시까지 기다렸다가 최종 결과를 얻는데 사용.=> Future는 지연 완료 객체라고 함. Future()의 get()을 호출하면 스레드가 작업 시까지 블로킹 되었다가 작업 완료 후 처리 결과 리턴==> 블로킹을 사용하는 작업 완료 통보 방식임.리턴타입 메서드명(매개변수) 설명V get() 작업이 완료 시까지 블로킹되었다가 처리 결과 V리턴V get(long timeout, TimeUnit unit) timeout 시간 전에 작업이 완료되면 결과 V를 리턴, 작업이 완료..

자바 2017.03.17

자바 스레드풀 ThreadPool : 스레드 풀 작업 생성과 작업 처리 요청

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드 풀 작업 생성 : Runnable 이나 Callable 구현 클래스로 하나의 작업을 표현합니닷 위 두 가지의 차이는 작업 처리를 완료한 후 리턴값이 있나 없나의 차이입니다. Runnable 구현 클래스는 리턴값이 없습니다.Runnable task = new Runnable() { @Override public void run() { //실행 코드 }} Callable 구현 클래스는 리턴값이 있습니다.Callable task = new Callable { @Override public T call() throws Excep..

자바 2017.03.17

자바 스레드풀 ThreadPool : 스레드풀 생성과 스레드풀 종료

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드풀 : 작업 처리를 할 때 사용되는 스레드를 정해진 갯수만큼 정해놓은 뒤 작업 큐에 들어오는 작업들을 하나씩 스레드들이 맡아서 처리작업 처리가 끝난 스레드는 다시 작업 큐에 새로운 작업을 가져와 처리=> 작업 처리 요청이 엄청나게 늘어나도 스레드의 전체 갯수는 늘어나지 않습니다.==> 애플리케이션의 성능이 급격히 저하되지는 않게 됩니다~ 자바에서는 스레드풀 사용을 위해 ExecutorService Interface와 Executors Class를 제공합니다.Executors의 다양한 static method들을 이용해 Ex..

자바 2017.03.17

JAVA Thread 자바 스레드 : 스레드 그룹 이름 얻기 / 스레드 그룹 생성 / 스레드 그룹의 일괄 inerrupt() /// 스레드 그룹 생성 / 스레드 그룹의 일괄 inerrupt()

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드 그룹 관련된 스레드를 묶어서 관리할 목적으로 이용됩니다. JVM이 실행되면 system 스레드 그룹을 만들고 JVM운영에 필요한 스레드들을 생성해서 system 스레드 그룹에 포함시킵니다. 그리고 system의 하위 스레드 그룹으로 main을 만들고 메인 스레드를 main 스레드 그룹에 포함시킵니다. 스레드는 반드시 하나의 스레드 그룹에 포함되는데 명시적으로 스레드 그룹에 포함시키지 않으면 기본적으로 자신을 생성한 스레드와 같은 스레드 그룹에 속하게 됩니다. 일반적으로 작업 스레드는 대부분 main 스레드가 생성하므로 기..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 데몬 스레드

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 데몬 스레드 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드.주 스레드가 종료되면 데몬 스레드는 강제적으로 자동종료됩니다. 데몬 스레드는 주 스레드가 종료되면 강제로 종료된다는 것만 제외하면일반 스레드와 별다른 차이가 없습니다. 데몬 스레드 적용 예)워드 프로세서의 자동 저장, 미디어 플레이어의 동영상 및 음악 재생, 가비지 컬렉터 등등. 이 기능들은 주 스레드가 종료되면 같이 종료됩니다. 스레드를 데몬으로 만들어주려면 주 스레드가 데몬이 될 스레드의 setDaemon(true)를 호출하면 됩니다. public stat..

자바 2017.03.15