[Java] 컬렉션 프레임워크(LIFO & FIFO,  동기화된 컬렉션, 수정할 수 없는 컬렉션)
Language/Java2023. 8. 4. 00:52[Java] 컬렉션 프레임워크(LIFO & FIFO, 동기화된 컬렉션, 수정할 수 없는 컬렉션)

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. LIFO & FIFO LIFO는 스택(Stack) 자료구조를 뜻하고, FIFO는 큐(Queue) 자료구조를 뜻한다. 컬렉션 프레임워크는 LIFO 자료구조를 제공하는 스택 클래스와 FIFO 자료구조를 제공하는 큐 인터페이스를 제공하고 있다. Stack Stack 클래스는 LIFO 자료구조를 구현한 클래스이다. 아래는 Stack 객체를 생성하는 방법이다. Stack stack = new Stack(); Stack stack = new Stack(); Stack 클래스는 Vector 클래스를 상속했다. 따라서 Stack 객체는 동기화 처리가 되어있다. 즉, 멀티스레딩 환경에서 안전하게 처리..

[Java] 컬렉션 프레임워크(List, Set, Map)
Language/Java2023. 8. 3. 00:54[Java] 컬렉션 프레임워크(List, Set, Map)

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 컬렉션 프레임워크(Collection Framework)자바는 널리 알려져 있는 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제 검색할 수 있도록 관련된 인터페이스와 클래스들을 java.util 패키지에 포함시켜 놓았다.이들을 총칭해서 컬렉션 프레임워크라고 부른다.컬렉션 프레임워크는 몇 가지 인터페이스를 통해서 다양한 컬렉션 클래스를 이용할 수 있도록 설계되어 있다.주요 인터페이스로는 List, Set, Map이 있다.컬렉션 프레임워크배열은 길이가 정해지면 바꿀 수 없었지만, 컬렉션 프레임워크는 길이가 가변적이다.컬렉션 프레임워크는 인터페이스이기 때문에 인터페이스에 정의된 메소드들..

[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] 백준 17단계 - 11050번 문제 (이항 계수1)
자료구조 & 알고리즘/BOJ2023. 7. 30. 03:00[Java] 백준 17단계 - 11050번 문제 (이항 계수1)

문제설명 소스코드 import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception{ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); System.out.print(factorial(N) / (factorial(N-K)*factorial(K))); } static int factorial(int n) { long count = 1; if(n == 0) return (int)count; else { for(int i = 1; i

[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] 백준 17단계 - 10872번 문제 (팩토리얼)(재귀X)
자료구조 & 알고리즘/BOJ2023. 7. 29. 18:00[Java] 백준 17단계 - 10872번 문제 (팩토리얼)(재귀X)

문제설명 소스코드 import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception{ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); long count = 1; if (N==0) System.out.print(1); else { for(int i = 1; i

image