
[java]함수형 인터페이스
2023. 1. 4. 13:53
Developer/Java
오늘은 함수형 인터페이스에 대해서 알아보도록 합시다 함수형 인터페이스를 왜 알아야 하냐면 이 전 내용에 람다식을 알아봤죠 람다식은 함수형 인터페이스로만 사용이 가능하기 때문에 알고 있어야 하는 것입니다 영어론 Functional Interface 한글론 함수형 인터페이스 라고 말합니다 특징부터 살펴보자면 함수형 인터페이스라는 것은 1개의 추상 메소드만 가지고 있는 인터페이스입니다 java8 버전부터는 인터페이스에서 디폴트 메서드를 포함할 수 있지만 여러 개의 디폴트가 있더라도 추상 메서드만 딱 하나면 함수형 인터페이스 라고 합니다 딱 이것만 기억하시면 됩니다 추상 메서드가 한 갠가?! 한 개면 함수형 인터페이스 라고 인식 하시면 됩니다 함수형 인터페이스는 @FunctionalInterface 어노테이션을..
[java]람다식
2022. 12. 7. 13:56
Developer/Java
람다식 이란 함수를 함수 형태로 만들어놓지 않고 하나의 식으로 표현한 것입니다 이는 익명이라 할수있죠 자 한번 형태를 보자구요 우리가 기본적으로 알고 있는 함수 즉 메서드의 형태를 살펴봅시다 public static int[] report(String[] id_list, String[] report, int k) { } 접근지시자 public 키워드 static 반환 타입 int [] 함수명 report 매개변수 String []... 그러고 나서 { 이 영역에 우리는 코드를 짜게 되겠죠 } 람다식은 이렇지 않습니다 아주 간결해버리죠 ㅎㅎ () -> System.out.println("람다식 끝~"); 조금 더 유추하기 쉽도록 코드를 바꿔봅시다 (int x, int y) -> { return x+y; }..

[java]스레드2(Thread)
2022. 12. 6. 16:32
Developer/Java
스레드 두 번째 내용입니다 스레드는 6가지의 상태가 있습니다 NEW 생성은 되었지만 준비되지 않은 상태입니다 RUNNABLE 실행 중이거나 준비되어있는 상태입니다 WAITING 다른 스레드가 호출하기를 기다리는 상태입니다 TIMED_WATING 스레드가 sleep 메서드로 자는 상태입니다 BLOCK 스레드가 다른 작업 요청으로 인해 멈춘 상태입니다 TERMINATED 종료 이처럼 여섯가지의 상태가 있고 스레드는 JVM이 어떤 상태인지 기록하고 관리합니다 ㅎㅎ 음 그리고 스레드가 우선순위를 정할 수 있어요 setPriority 메서드를 이용해서 가능합니다 ㅎㅎ 먼저 스레드를 생성하는 클래스를 살짝만 수정해줍시다 생성자를 만들어주고 getName으로 어떤 스레드가 먼저 실행하는지 확인해보도록 합시다 pack..
[java]스레드(Thread)
2022. 11. 29. 16:48
Developer/Java
우리가 자바 공부를 할 때 자주 접했던 자바의 장점 중 하나가 c와 다르게 멀티 스레드가 가능하다 라는 내용을 한 번쯤은 접해보거나 들어봤을 겁니다 그럼 이제 자바의 장점 중 하나인 스레드를 알아보도록 합시다 ㅎㅎ 스레드를 이해하기 위해선 프로세스가 무엇인지를 이해해야 합니다 먼저 프로세스란 동작하고 있는 프로그램을 프로세스라 합니다 이 프로세스 내에서 실행되는 흐름의 단위 정도로 생각하시면 됩니다 좀 편하게 생각하고자 한다면 스레드가 모여서 프로세스를 이룬다고 생각하셔도 괜찮습니다 스레드는 구현하기 위해 Thread클래스를 이용하는데 java.lang.Thread 에서 import 해서 사용하면 됩니다 ㅎㅎ 스레드를 생성하기위해서는 2가지 방법이 있습니다 1. 상속받아서 쓰레드를 생성한다 2. Runn..
[java]I/O_2
2022. 10. 13. 09:45
Developer/Java
이 전 글에 작성한 코드에 보면 이미 있는 파일을 읽어 오는 부분이 있습니다 그 부분에서 개선 할 내용이 있어서 글을 하나 더 작성 하게됐는데 그 부분이 뭐냐하면 파일을 읽어들일 때 얼마만큼을 읽어올 수 있는지 지정 할 수 있습니다 코드 비교를 해봅시다 아주 간단하니 걱정마세요 while((readData = finput.read()) != -1){ // -1 이란 읽을 데이터가 더 없을때 까지라고 생각하면 된다 foutput.write(readData); // write 함수로 데이터를 읽어서 output에 쓴다 } byte[] buffer = new byte[512]; while((readData = finput.read(buffer)) != -1){ foutput.write(buffer, 0, re..