24일차 시작....

조동현·2022년 8월 3일
0

[교육] Java

목록 보기
9/12
post-thumbnail

📌 문자열 비교

  • equals()
    - 문자열 비교는 참조값과 문자열 내용을 비교하는 것이다.
    - == 비교 연산자는 참조값만을 비교하는 연산자이다.
    - 문자열이 같아도 참조값이 다를 수 있어 위의 == 비교 연산자를 사용하지 않는다.
    String 객체를 생성하는 new String()으로 문자열 생성 시 문자열은 같아도 참조값이 다르다.
    - equals() 메소드를 사용하여 문자열을 비교한다.
String str1 = "a1";
String str2 = new String("a1");

if(str1.equals(str2)) {
	System.out.println("a1");
}


📌 Thread 상속 클래스 만들기

  • Thread 클래스 만들기
    1. Thread를 상속받는 클래스 생성
    2. run() 메소드를 Override한다.
    3. run() 메소드 안에서 새로운 스레드에서 해야 할 작업을 작성한다.
    4. 만든 클래스로 객체를 생성하고 해당 객체의 start() 메소드를 호출하면 새로운 스레드가 실행된다.

  • 특징
    - 여러 쓰레드를 적용한 메소드에서는 바로 return을 한다.
    - 쓰레드 클래스의 start() 메소드가 호출되면 run() 메소드인 쓰레드 동작에 상관 없이 바로 return 하기 때문이다.
    - Thread 클래스 객체는 일회용 객체이기 때문에 필드에서 사용할 수 없다.

  • 형식
// Thread 클래스를 상속받은 자식 클래스
public class CountThread extends Thread {
	@Override
	public void run() {
		// Thread에게 시킬 작업을 명시하는 구간
		int count=0;
		while(true) {
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			count++;
			System.out.println("현재 카운트:"+count);
			if(count==10) {
				break;
			}
		}
	}
}
// Main 클래스의 ActionLister 메소드
public void actionPerformed(ActionEvent arg0) {
	// start()를 하는 동시에 cpu가 할당한 Thread에서 작업을 수행 (비동기식은 아니다.)
	new CountThread().start();
	// 한 작업이 끝나는 것과는 상관없이 해당 메소드는 바로 return된다.
}


📌 Runnable 인터페이스

  • Runnable Thread 만드는 방법
    1. Runnable 인터페이스를 구현한 클래스를 정의한다.
    2. run() 메소드를 강제 Override한다.
    3. Thread 클래스로 객체를 생성하면서 해당 클래스로 만든 객체를 생성자의 인자로 전달한다.
    4. Thread 클래스로 만든 객체의 start() 메소드를 호출해서 쓰레드를 실행한다.

  • 형식
// Runnable 인터페이스를 구현한 Thread 클래스
// 하지만 start()와 같은 Thread 메소드는 사용할 수 없다.
public class CountRunnable implements Runnable {
	@Override
	public void run() {
		int count=0;
		while(true) {
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			count++;
			System.out.println("현재 카운트:"+count);
			if(count==10) {
				break;
			}
		}
	}
}

// start()와 같은 Thread 메소드를 사용하기 위해 thread 객체를 생성할 때
// 생성자 안에 Runnable 객체를 전달한다.
public void actionPerformed(ActionEvent arg0) {
	Thread thread = new Thread(new CountRunnable());
	thread.start();
}


profile
데이터 사이언티스트를 목표로 하는 개발자

0개의 댓글