Java

· 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
Stream이란?연속된 데이터를 처리하는 오퍼레이션들의 모음Stream 자체가 데이터는 아니다. 데이터를 담는 저장소도 아니다.스트림이 처리하는 소스 데이터를 변경하지 않는다 => functional 하다고 표헌스트림으로  처리하는 데이터는 오직 한 번만 처리한다.데이터 양이 무제한일 수 있다. (실시간으로 계속 들어오는 데이터를 스트림으로 받아 처리할 수 있다.)Short Circuit 메소드를 활용하면 무제한의 데이터 중 특정 조건에 맞는 데이터만 골라 사용할 수 있다. (ex-선착순 10개의 데이터만 사용)중개 오퍼레이션(중단되지 않고 계속해서 이어지는 형태)들은 근본적으로 lazy하다.터미널 오퍼레이션 만날때까지 실행되지 않는다.병렬 처리를 손쉽게 할 수 있다.Parallel Stream을 받아서..
나프초
'Java' 카테고리의 글 목록 (2 Page)