본문 바로가기

Java15

Iterator,Iterable 자바에서는 ArrayList,LinedList등 자료를 탐색할 수 있는 Collection이 존재한다. 하지만 이런 Collection들은 탐색방법을 우리가 임의로 정하지 못한다. 예를들어 총 10개가 저장돼있는 선형적 자료구조에서 짝수번째만 보고싶다하더라도 for,forEach를 통해 인덱스를 홀수번째라면 건너뛰고 확인해야 한다. public class Main { public static void main(String[] args) { ArrayList test=new ArrayList(); test.add("사과"); test.add("딸기"); test.add("오렌지"); test.add("포도"); test.add("참외"); test.add("파인애플"); for(int i=0;i 2021. 2. 13.
Thread-3 실행제어 동기화 이번글이 쓰레드의 마지막이면서 쓰레드의 가장 핵심적인 내용이다. 1. 실행제어 쓰레드는 실행시키고, 중단시키는일을 실행제어라고 한다. 쓰레드는 우리가 처리해야할 작업들을 병렬로 처리해야 할 때 사용하는데, 각 작업들의 실행을 중간에 중단시킨다던가, 아니면 중단 되었던 작업을 실행시키는것을 직접 제어해야 할 때가 있다. 이번에는 이렇게 직접 제어할 수 있는 쓰레드 메소드들을 알아보고 적당한 사용방법을 알아보겠다. 1-1 sleep 우선 쓰레드를 일시적으로 멈추는 sleep이 있다. public class Main { public static void main(String[] args) { Thread thread=new Thread(()->{ for(int i=0;i{ for(int i=0.. 2021. 2. 12.
Thread-2 우선순위 쓰레드 그룹 데몬 쓰레드 1. 우선순위 쓰레드에는 우선순위라는 개념이 있다. 우선순위는 쓰레드간의 중요도에 따라 지정할 수 있다. 예를들어 채팅과 파일전송을 하는 프로그램을 예로 들어보자. 채팅같은경우는 아주빠른 시간안에 응답을 해줘야하고, 파일전송은 채팅보다는 비교적 느려도 괜찮다. 그런데 만약 2가지의 작업의 우선순위가 같다면 채팅의 응답속도가 느려질 수 있다. 이럴때 채팅의 우선순위를 보다 빠르게 하면 우리가 채팅을하는데 큰 문제를 못느낄것이다. 그러면 자바 Thread에서 어떻게 우선순위를 지정하는지 보자. Thread thread=new Thread(()->{ // do something }); thread.setPriority(5); // 1~10 thread.start(); 자바 T.. 2021. 2. 11.
Thread-1 자바 쓰레드 사용방법 start, run 쓰레드의 효율성 1. 자바 쓰레드 사용방법 자바에서 쓰레드를 만들 수 있는 방법은 2가지가 있다. 1. Thread를 상속받아서 구현 2. Runnable 인터페이스이용하는 방법 우선 Thread를 상속받는 방법부터 보자. public class ThreadEx1 extends Thread{ //Thread의 run 메소드를 구현한다. @Override public void run(){ for(int i=0;i 2021. 2. 8.
Interface Interface(인터페이스) 인터페이스란? 인터페이스 작성 방법 디폴트 메소드와 static 메소드 인터페이스 구현 인터페이스의 본질(의존성 분리) 1. 인터페이스란? 인터페이스는 자바의 추상 클래스의 일부이다. 인터페이스는 추상 클래스(abstract)와 비슷하지만 차이점이 있다. 인터페이스는 abstract와는 달리 몸통을 가진 메소드와 멤버 변수를 가질 수 없다. 이런 인터페이스는 간단하게 말해서 설계도로 설명할 수 있다. 또한 인터페이스는 메소드의 몸통이 없이 선언부만 가지고 있기 때문에 혼자서는 기능을 할 수 없다. 인터페이스가 기능을 가지기 위해서는 이 인터페이스를 구현한 구현체가 필요한다. 구현체는 인터페이스의 모든 메소드를 구현해야 한다. 2. 인터페이스 작성 방법 인터페이스작성 방법은 .. 2020. 9. 21.
Generic 제너릭(Generic) 자바 1.5부터 제너릭이 추가 되었다. 이 제너릭이란 기능은 현재 안쓰는 곳이 없고, 제너릭을 모르면 자바 공식 문서조차 읽을 수 없을 정도로 자바의 핵심적인 기능이다. 우선 제너릭이 사용되는 기본적인 상황을 먼저 보자 일단 제너릭을 바로 사용하기전에 제너릭을 사용하지 않을때 생기는 문제점을 보자. public interface Manager { String toString(); } public class Book implements Manager { public String toString(){ return "책"; } } public class Apple implements Manager { public String toString(){ return "사과"; } } publi.. 2020. 7. 21.