강의 정리하기/JAVA

강의 정리하기/JAVA

람다식

람다식은 다른 말로 익명 메소드라고도 한다. 인터페이스 중에서 메소드를 하나만 가지고 있는 인터페이스를 함수형 인터페이스라고 한다. Thread를 만들때 사용하는 Runnable 인터페이스의 경우 run() 메소드를 하나만 가지고 있다. public class LambdaExam1 { // Thread가 실행될 때 Thread 생성자 안에 넣은 run 메소드가 실행되도록 해라 // 매개변수로 메소드를 전달할 수 없음(인스턴스만 가능) // -> run이라는 메소드를 가지고 있는 Runnable 객체를 만들어 전달한 것임 public static void main(String[] args) { // Runnable을 이용하여 Thread를 만듬 // 이 자체가 Thread가 생성되는 구문이므로 .start..

강의 정리하기/JAVA

데몬 Thread

데몬 : 보통 리눅스와 같은 유닉스 계열의 운영체제의 백그라운드로 동작하는 프로그램을 말한다. 데몬 Thread : 자바에서 데몬과 유사하게 동작하는 Thread 데몬 Thread는 모든 Thread(메인 Thread)가 종료되면 같이 종료된다. // Runnable을 구현하는 DaemonThread 클래스를 작성 public class DaemonThread implements Runnable { // 무한 루프안에서 0.5초씩 쉬면서 데몬 쓰레드가 실행중입니다를 출력하도록 run() 메소드를 작성 @Override public void run() { while(true) { System.out.println("데몬 쓰레드가 실행중입니다."); try { Thread.sleep(500); } catch..

강의 정리하기/JAVA

Thread와 상태 제어

Thread가 3개 있다면 JVM은 시간을 잘게 쪼갠 후에 한 번은 Thred 1을, 한 번은 Thread 2를, 한 번은 Thred 3을 실행한다. 이것이 빠르게 일어나다 보니까 Thread가 모두 동작하는 것처럼 보이는 것이다. Thread는 실행 가능 상태인 Runnable과 실행 상태인 Running 상태로 나뉜다. 실행되는 Thread 안에서 Thread.sleep()이나 Object가 가지고 있는 wait 메소드가 호출이 되면 Thread.sleep()은 특정 시간이 지나면 자신 스스로 블록 상태에서 빠져나와 Runnable이나 Running 상태가 된다. Object가 가지고 있는 wait() 메소드는 다른 Thread가 nofify()나 notifyAll() 메소드를 호출하기 전에는 wai..

강의 정리하기/JAVA

Thread와 공유 객체

Thread와 공유 객체를 간단하게 예를 들어보자면 다음과 같다. 놀이터에 그네가 하나가 있고 아이가 3명 있다고 하자. 어린이들을 Thread라고 생각하면 그네는 공유 객체라고 할 수 있다. 하나의 객체를 여러 개의 Thread가 함께 가지고 있다는 것이다. // 하나의 객체(공유 객체) public class MusicBox { // 신나는 음악!!!이란 메시지가 1초이하로 쉬면서 10번 반복출력 public void playMusicA(){ for(int i=0; i

강의 정리하기/JAVA

Thread

프로세스) 운영체제에서의 실행 중인 하나의 애플리케이션 스레드) 여러가지 작업을 동시에 수행할 수 있게 하는 것 스레드 생성하는 방법 Thread 클래스를 상속받는 방법 Runnable 인터페이스를 구현하는 방법 1) Thread 클래스를 상속받는 방법 public class MyThread1 extends Thread { String str; public MyThread1(String str){ this.str = str; } @Override public void run() { // 생성자에서 받은 문자열을 10번 출력 for(int i=0; i

강의 정리하기/JAVA

어노테이션

어노테이션이란? 소스코드에 메타코드(추가 정보)를 주는 것을 말한다. 어노테이션은 클래스나 메소드 위에 붙으며 @ 기호로 이름이 시작한다. ex) @Override 어노테이션은 자바가 기본으로 제공해주거나 사용자가 직접 만들 수 있다.(커스텀 어노테이션) 커스텀 어노테이션 이용 방법 1) 어노테이션을 정의한다. 2) 어노테이션을 클래스에서 사용한다. 3) 어노테이션을 이용하여 실행한다. import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; // JVM이 실행 시에 감지할 수 있는 어노테이션 @Retention(RetentionPolicy.RUNTIME) public @interface Count100 { } ..

강의 정리하기/JAVA

자바 IO(2)

다양한 타입의 출력 try-with-resources 블럭이란? java IO 객체는 인스턴스를 만들고 모두 사용하면 close()메소드를 호출해야 하는데 close() 메소드를 사용자가 호출하지 않더라도 Exception이 발생하지 않았다면 자동으로 close()가 되게 할 수 있는 방법 try( // IO 객체 선언 ){ // IO 객체 사용 }catch(Exception ex){ ex.printStackTrace(); } package ex4; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.IOException; public clas..

강의 정리하기/JAVA

자바 IO(1)

입출력을 위한 인터페이스와 클래스들 자바 IO는 크게 byte 단위 입출력과 문자 단위 입출력 클래스로 나뉜다. byte 단위 입출력 클래스는 모두 InputStream과 OutputStream이라는 추상 클래스를 상속받아 만들어진다. 문자(char) 단위 입출력 클래스는 모두 Reader와 Writer라는 추상 클래스를 상속받아 만들어진다. 이 클래스들의 구분은 생성자를 보면 알 수 있다. 4가지 추상 클래스(InputStream, OutputStreamReader, Reader, Writer)를 받아들이는 생성자가 있다면, 다양한 입출력 방법을 제공하는 클래스이다. 4가지 클래스를 받아들이는 생성자가 없다면, 어디로부터 입력받을 것인지, 어디에 쓸 것인지를 나타내는 클래스이다. 파일로부터 입력받고 쓰..

아민_
'강의 정리하기/JAVA' 카테고리의 글 목록