본문 바로가기
728x90

java/java86

Concurrent programming Concurrent software는 동시에 여러 작업을 할 수 있는 소프트웨어이다. 자바에서는 다음과 같은 concurrent programming을 지원한다 1. multi processing 2. multi thread 자바는 멀티쓰레딩을 설정하지 않는 한 기본적으로 main thread에서 동작한다. 자바에서 multi thread를 사용할려면 다음과 같은 방식을 사용하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class App { //클래스를 만들어서 사용하는 public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); S.. 2021. 11. 22.
Date/Time java8에서 새로 나온 날짜와 시간을 나타내는 api이다. 기존에 사용했던 Date, Calendar, SimpleDateFormat은 여러 불편함이 존재한다. 예를 들어 이름이 명확하지 않다. Date의 경우 날짜 뿐만 아니라 time stamp도 나타낼 수 있다. 또 한 Date.getTIme()은 일상적으로 사용하는 시간이 아닌 1970년 1월 1일 0시 0분 0초를 기준으로 현재시간을 뺀 값을 밀리세컨드 단위로 보여준다. 또 한 객체가 mutable하기 때문에 Date.setTime()을 통해 시간을 바꿀 수 있다. 따라서 thread-safe하지 않다. GregorianCalendar의 경우 type-safe하지 않다는 문제가 발생한다. GregorianCalendar는 연도, 월, 날짜를 인.. 2021. 11. 22.
optional optional은 java 8에서 새로 추가된 인터페이스이다. optional은 비어있거나 하나의 값을 담을 수 있는 컨테이너 인스턴스 타입이다. 아래와 같은 코드가 있다고 가정해 보자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 package me.skullkim.optional; /** * 온라인 수업에 대한 정보 * stream api 실습을 위한 클래스 * * @author yunki kim .. 2021. 11. 22.
stream stream은 collection에 있는 데이터를 처리하는 모음이다. 따라서 컬랙션은 데이터를 가지고 있고 스트림은 이 데이터들을 사용해 어떠한 로직을 수행한다. 스트림은 스트림이 처리하는 데이터 소스를 변경하지 않는다. 1 2 3 4 5 6 7 8 9 10 public static void main(String[] args) { List names = new ArrayList(); names.add("keesun"); names.add("toby"); names.add("yunki"); names.stream() .map(String::toUpperCase) .forEach(System.out::println); } Colored by Color Scripter cs 위 코드에서 map을 사용한 직후의.. 2021. 11. 21.
728x90