[Java] 데몬 스레드와 스레드풀
Language/Java2023. 8. 2. 00:15[Java] 데몬 스레드와 스레드풀

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 데몬 스레드(Daemon Thread) 데몬 스레드는 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드이다. 주 스레드가 종료되면 데몬 스레드도 따라서 자동으로 종료된다. 스레드를 데몬으로 만들기 위해서는 주 스레드가 데몬이 될 스레드의 setDaemon(true)를 호출하면 된다. 주 스레드와 메인 스레드는 같을 수도 있고 다를 수도 있다. 메인 스레드에서, 다른 스레드를 데몬 스레드로 설정했다면 메인 스레드는 주 스레드가 된다. 하지만 메인 스레드가 아닌 A 스레드에서, B 스레드를 데몬 스레드로 설정했다면 B 스레드 관점에서는 A 스레드가 주 스레드가 된다. 아래의 코드에..

[Java] 멀티 스레드
Language/Java2023. 8. 1. 00:01[Java] 멀티 스레드

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 2023.06.27 - [컴퓨터 구조 & 운영체제/운영체제] - [운영체제] 스레드(Thread), 멀티 프로세스와 멀티 스레드 [운영체제] 스레드(Thread), 멀티 프로세스와 멀티 스레드 이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 스레드 이 글에서 다루는 내용은 소프트웨어적 스레드이 rebugs.tistory.com 하나의 프로세스가 두 가지 이상의 작업을 처리할 수 있는 이유는 멀티 스레드가 있기 때문이다. 프로세스의 모든 스레드가 종료가 되어야 프로세스가 종료된다. 하나의 스레드에서 ..

[Java] 제네릭(Generic)
Language/Java2023. 7. 31. 00:02[Java] 제네릭(Generic)

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 제네릭의 개념 제네릭이란 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시기는 기능이다. 아래의 코드는 Box 클래스에서 결정되지 않은 content의 타입을 T라는 타입 파라미터로 정의한 것이다. public class Box { public T content; } 는 T가 타입 파라미터임을 뜻하는 기호로, 타입이 필요한 자리에 T를 사용할 수 있음을 알려주는 역할을 한다. Box 클래스는 T가 무엇인지 모르지만, Box 객체가 생성될 시점에 다른 타입으로 대체된다는 것을 알고 있다. Box의 내용물로 String 타입을 저장하고 싶으면 아..

[Java] 랜덤 숫자(난수) 얻기
Language/Java2023. 7. 30. 00:15[Java] 랜덤 숫자(난수) 얻기

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. math 클래스의 random() 메소드 이용 0.0과 1.0 사이(0.0 포함, 1.0 미포함) 범위에 속하는 하나의 double 타입의 값을 리턴 double v11 = Math.random(); //0.47464615326686044 1부터 n까지 랜덤 수를 뽑는 코드는 아래와 같다. int num = (int) (Math.random()*n) + 1; 아래의 예제는 1~45의 랜덤 숫자 중 6개 뽑는 예제이다. public class Main { public static void main(String[] args) { for(int i = 0; i < 6; ++i) { int ..

[Java] StringBuilder 클래스, StringTokenizer 클래스
Language/Java2023. 7. 29. 00:10[Java] StringBuilder 클래스, StringTokenizer 클래스

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. String은 내부 문자열을 수정할 수 없다. 아래의 코드를 보면 다른 문자열을 결합해서 내부 문자열을 변경하는 것처럼 보이지만 사실 'ABCDEF'라는 새로운 String 객체를 생성하는 것이다. 그리고 data 변수는 새로 생성된 String 객체를 참조하게 된다. String data = "ABC"; data += "DEF"; 문자열의 + 연산은 새로운 String 객체가 생성되고 이전 객체는 계속 버려지는 것이기에 효율이 좋지 못하다. 잦은 문자열 변경 작업을 해야 한다면 String 보다는 StringBuilder를 사용하는 것이 좋다. StringBuilder 클래스 Str..

[Java] 레코드, 롬복(lombok)
Language/Java2023. 7. 28. 00:08[Java] 레코드, 롬복(lombok)

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 레코드(record) 데이터 전달을 위한 DTO(Data Transfer Object)를 작성할 때 반복적으로 사용되는 코드를 줄이기 위함 Java 14부터 레코드가 도입되었다. 필드는 읽기만 가능하도록 private final로 선언됨 필드가 읽기만 가능하므로 setter가 없고, getter 이름이 단순히 필드 이름이다. 동등 비교를 위해 hashCode()와 equals() 메소드가 재정의 되어있다. toString()메소드가 재정의 된다. public record Member(String id, String name, int age) { } 이렇게 단순하게 클래스명 앞에 rec..

[JAVA] API Document
Language/Java2023. 7. 27. 00:28[JAVA] API Document

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 자바 표준 모듈에서 제공하는 라이브러리는 방대하기 때문에 쉽게 찾아서 사용할 수 있도록 도와주는 API(Application Programming Interface) 문서가 있다. 라이브러리가 클래스와 인터페이스의 집합이라면, API 도큐먼트는 이를 사용하기 위한 방법을 기술 한 것이다. API 도큐먼트는 자바 표준 모듈에 있는 패키지 중 public과 prtected로 접근 제한된 클래스와 메소드만 소개한다. 자바 표준 모듈에 있는 패키지 중에서 default와 private로 접근 제한된 클래스와 메소드는 접근 제한자에 대해 잘 알고 있다면 우리는 접근할 수 없다는 것을 알 수 있..

[JAVA] 사용자 정의 예외
Language/Java2023. 7. 26. 00:02[JAVA] 사용자 정의 예외

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 사용자 정의 예외 사용자 정의 예외란 예를 들어 은행의 뱅킹 프로그램에서 잔고보다 더 많은 출금 요청이 들어온 경우에는 잔고 부족 예외를 발생 시킬 필요가 있다. 하지만 잔고 부족 예외는 자바의 표준 라이브러리에는 존재하지 않기 때문에 직접 예외 클래스를 정의해서 사용해야 한다. 이렇게 사용자가 직접 예외 클래스를 정의하는 것을 사용자 정의 예외 클래스라고 한다. 사용자 정의 예외는 일반 예외와 실행 예외로 선언할 수 있다. 일반 예외 : 컴파일러가 체크, Exception의 자식 클래스로 선언 실행 예외 : 컴파일러가 체크하지 않음, RunTimeException의 자식 클래스로 선..

image