본문 바로가기

java10

Thread-2 우선순위 쓰레드 그룹 데몬 쓰레드 1. 우선순위 쓰레드에는 우선순위라는 개념이 있다. 우선순위는 쓰레드간의 중요도에 따라 지정할 수 있다. 예를들어 채팅과 파일전송을 하는 프로그램을 예로 들어보자. 채팅같은경우는 아주빠른 시간안에 응답을 해줘야하고, 파일전송은 채팅보다는 비교적 느려도 괜찮다. 그런데 만약 2가지의 작업의 우선순위가 같다면 채팅의 응답속도가 느려질 수 있다. 이럴때 채팅의 우선순위를 보다 빠르게 하면 우리가 채팅을하는데 큰 문제를 못느낄것이다. 그러면 자바 Thread에서 어떻게 우선순위를 지정하는지 보자. Thread thread=new Thread(()->{ // do something }); thread.setPriority(5); // 1~10 thread.start(); 자바 T.. 2021. 2. 11.
Stream Stream 자바에서 데이터를 저장하기 위해 배열, 리스트, 맵 등 다양한 방식을 사용한다. 그런데 이런 데이터들을 이용하기 위해 for문, iterator을 사용할때 코드가 굉장히 길어지거나 가독성이 떨어지는 경우가 있다. 이런 문제를 해결할 수 있는 것이 스트림이다. 스트림은 기본적으로 데이터를 담고있는 자료형(배열,리스트..)을 사용할때 자주 사용할 법한 메소드들을 가지고 있다. 우선 예를 들어보자 우리가 배열안의 요소들을 출력하는 방식이다. int[] arr = {1,2,3,4,5}; for(Integer i:arr){ System.out.println(i); } 이런 간단하면서도 아주 많이 쓰이는 상황을 메소드로 만들어 아래처럼 사용할 수 있다. public void printArr(int[] .. 2020. 7. 15.
lambda2 Uitl 패키지의 함수형 인터페이스 람다식에 대해 이어서 적어보자 우선 앞에서 람다식을 사용하기 위해서 함수형 인터페이스를 사용해야 한다는 것을 알았다. 하지만 여기서 한가지 불만이 있다. 함수는 앞서 설명한대로 4가지의 유형이 있는데 사실 이런 유형이 매개변수가 있는 경우에서 매개변수의 갯수에 차이가 있을뿐 유형은 그대로이다. 이런 상황에서 4가지 유형의 함수형 인터페이스를 람다식을 위해 매번 만드는 것은 좀 번거로운 일이다. 그래서 자바 1.8의 Util패키지에 미리 4가지 경우의 함수형 인터페이스를 만들어 두었다. 종류 매개변수 반환 Runnable X X Consumer O X Supplier X O Function O O 위의 4사지의 사용을 바로한번 보자 Runnable runnable = (.. 2020. 7. 10.
Lambda 람다 표현식 자바 8부터 람다 표현식이 추가 되었다. 람다표현식의 등작으로 자바에서도 함수형 프로그래밍이 가능해졌는데 이것은 자바의 큰 변화이다. 우선 람다의 기본적인 개념부터 설명해보자 자바에서의 람다는 기본적으로 익명 클래스와 동급으로 취급되는 객체처럼 사용이 된든것이다. 그렇기 때문에 변수에 대입을 하듯이 사용이 가능하고 매개변수의 인자로 전달 또한 되면서 기본의 자바의 체계에 무리를 안준다. 그렇다면 기초적인 사용법을 보자 우선 아래의 코드는 자바에서의 기본적인 메소드이다. int foo(int num){ return num; } 위의 메소드를 람다로 표현 하면 아래와 같다. (int num) -> {return num;} 보다싶이 차이점은 반환타입, 메소드명이 없다는 것이다. 그리고 메소드의 형.. 2020. 7. 9.