Java

· Java
Executors란?고수준의 Concurrency 프로그래밍Thread나 Runnable처럼 Low-Level의 API를 직접 다루지 않는다.Thread 관리 작업을 고수준의 API에게 일을 위임한다.쓰레드를 만들고 관리하는 작업을 애플리케이션에서 분리Executor가 Thread를 만들고 우리는 Runnable만 제공해주면 된다.Runnable안에 해야할 일을 정의한다.Thread를 만들고 실행하고, 필요없을 때 종료시키고  없애는 일련의 작업들은 Executors가 해준다. Executors가 하는 일Thread 생성 : 애플리케이션이 사용할 Thread 풀을 만들어 관리Thread 관리 : Thread 생명 주기를 관리작업 처리 및 실행 : Thread로 실행할 작업을 제공할 수 있는 API를 제공..
· Java
Concurrent 의미동시에 여러 작업을 할 수 있다는 뜻ex. 웹 브라우저로 유튜브를 보면서, 키보드로 문서에  타이핑할 수 있다. 자바에서 지원하는 컨커런트 프로그래밍멀티 프로세싱 multi-processingProcessBuilder를 사용하면 자바에서 프로세스를 만드는게 가능하다.멀티 쓰레드 multi-threadThreadRunnable ThreadThread 만들기 1. Thread를 상속받아 run() 메소드를 구현하여 사용자가 직접 Thread class 만들 수 있다.public class App { public static void main(String[] args) { MyThread mt = new MyThread(); mt.start(); S..
· Java
자바 8에 새로운 날짜와 시간 API가 생긴 이유기존에 사용한 날짜/시간 클래스 : Date, Calendar/GregorianCalendar, SimpleDateFormat, ...Date인데 시간까지 다루고, 사실상 TimeStamp이다. => Date 클래스 이름이 명확하지 않다.날짜 및 시간을 내가 지정하여 객체의 상태를 바꿀 수 있다. => Date 클래스는 mutable하다. => multi-Thread 환경에서  안전하게 사용하기  어렵다.한 스레드가 객체를 사용하는 동안 다른 쓰레드가 이 자원에 접근하지 못하도록 막는다면 문제가 생기지 않는다.멀티쓰레드 환경에서 한 쓰레드가 뮤터블한 객체를 사용하는동안, 다른 쓰레드가 접근하여 데이터를 다른 값으로 바꿀 가능성이 있다. => Thread s..
· Java
Optional API우리가 Stream API를 사용할 때에도 Optional을 리턴하는 오퍼레이션들이 있다. Optional을 리턴한다는 말은 해당 오퍼레이션들이 중계 오퍼레이션이 아닌 종료 오퍼레이션이라는 뜻이다. (중계 오퍼레이션은 Stream을, 종료 오퍼레이션은 다른 형태를 리턴) list 예시로 다양한 Optional API를 알아보자.public class Birthday { //생일 정보를 포함하는 클래스 private String year; private String month; private String day; // ~~ getter, setter code ~~ }public class MyName { //이름, 성별, 생일 정보를 포함하는 클래스 pri..
· Java
Optioinal이란?java8에 추가된 새로운 인터페이스비어있을 수도 있고 무엇을 담을 수도 있는 컨테이너 인스턴스의 타입 public class Birthday { //생일 정보를 포함하는 클래스 private String year; private String month; private String day; // ~~ getter, setter code ~~ }public class MyName { //이름, 성별, 생일 정보를 포함하는 클래스 private Integer id; private String name; private boolean isMale; public Birthday birthday; //사용자 정의 BirthDay 타입은 생성자에서 세..
· Java
Stream API list 예시로 다양한 stream API를 알아보자.List nameList = new List();nameList.add(new MyName(1, "amy", true));nameList.add(new MyName(2, "bob", false));nameList.add(new MyName(3, "chloe", true));nameList.add(new MyName(4, "chris", false));nameList.add(new MyName(5, "david", true)); filter(Predicate)조건에 맞는 데이터만 필터링하여 스트림으로 만든다.stream pipeline의 filter를 지나갈 때, 들어가는 데이터와 나오는 데이터 모두 MyName 형으로  동일하다.n..
나프초
'Java' 카테고리의 글 목록 (2 Page)